The Unique Roles and Mission of an Open Source Engineering Team in OSS-backed Company

  1. Set the Foundation for Core Open Source Software and Project
  • design and software quality (reliability, HA, performance, scalability, forward-looking extensibility, etc)
  • code quality (code readability, comment, etc)
  • test coverage and quality for core software (unit, integration, E2E, etc)
  • CI of core software. Usually no CD since this team doesn’t run the service themselves
  • software releases (quality, cadence/frequency, maintenance, backward compatibility, etc)
  • Software development process and best practices
  • PR review process and standard in open source
  • Completeness of documentation
  • top-down decisions do not work well in OSS as there’s no management chain or leveling authority; credibility is earned in OSS community thru individual’s past involvement
  • decisions needs consensus and reaching consensus can take days, if not weeks, as external stakeholders have different time schedules and concerns you have no control of; participants have to be patient, plan ahead for the timeline, and follow the community process; community does not accept arguments like “this is urgent and we have to decide today” except rare cases like security breach (e.g. recent log4j issue)
  • standards and bars are held high across the board, in every details, e.g. design and code review, or as small as coding styles. Things that can sneak thru in company’s private codebase can no longer make it. Newbies in OSS may feel it’s overdoing and get frustrated easily, believing they are being specifically targeted by someone which is not the case at all
  • project stability comes first. Minima breaking API changes, any major changes requires careful planning, proactive communication and warning, releases and upgrade are taken seriously and in right cadence (majority people won’t be able to upgrade more than a couple times a year), back compatibility is always desired, define well short term maintenance and long term maintenance support scope, etc
  • community health and success is the top consideration, rather than individual companies
  • etc
  • listen to and collect customer requirements/requests
  • be responsive in answering questions and helping users debug issues
  • be respectful and welcoming in communication
  • be transparent in defining processes and making decisions, enforce same process and standards across the board
  • grow OSS project adoptions
  • encourage contribution and grow OSS contributors
  • define and drive OSS governance, e.g. define titles and responsibilities (e.g. “committer”/“PMC” in Apache projects, “maintainer” in some projects)
  • lead OSS roadmap and priority with community
  • organize and speak at meetups, conferences, etc
  • with service engineering team on paid products (e.g. SaaS)and areas like reliability/HA, multi-tenancy, deployment, operation easiness, monitoring/alerting, scalability, etc
  • with product team on product roadmap and prioritization
  • with product and design team on UI and UX
  • with product, marketing, sales team to decide which feature should be in OSS version v.s. enterprise/SaaS version. There are usually 3 areas of such features, 1) security, 2) collaboration, 3) DevOps (tools of observability, monitoring/alerting, CI/CD, operations, etc)
  • with pre-sales or sales team on lead generation thru OSS channel
  • with marketing team on new feature/product announcement
  • with support and service engineering teams on customer support, SLA, oncall, etc

--

--

--

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Tips for Go — BDD Testing, Mocking, and Coverage Analysis

Azure Data Factory Error Incompatible CDC option,watermark Column is not present

1/21 Pixel Racers Weekly Update

Escaping Closures in Swift

How to Delete all posts from your Facebook Page

Validating user inputs using when building API endpoints

OOPS (Object-Oriented Programming Language) Part-3

Exam AZ-300: Microsoft Azure Architect Technologies

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Bowen L

Bowen L

More from Medium

What I learned working on Nebula Graph, an open source and distributed graph database

USE MICROSOFT INFORMATION PROTECTION TO PREVENT DATA LEAKS

Comparing X.509 Certificates with SSI

Transitioning Project OWL into Owl Integrations