The open source community manager is one of the most diverse roles in the industry. Each community manager has an opportunity to define their role and areas of focus based on their skills and interests, and on the specific needs of their community.
As a result, they are often not a natural fit in any part of a traditional software organisation, but have a dotted line relationship into a number of teams.
There are many traditional software and product development roles that a community manager can fill for an open source community.
Here are five I'd like to highlight:
- Partner/ecosystem development
- Developer enablement
- Product/release management
- Product strategy
The most visible and obvious aspect of the community manager's role is to promote the project and grow the user base. This involves representing the project publicly at conferences, writing or recruiting others to write articles about the project for blogs, online news sites, and print media as well as giving presentations to spread the word about the project.
Another aspect of the marketing function that often falls to the community manager is the curation of the community website—including content, web design, and maintenance of the web infrastructure. If you're lucky, these things can be done by different people, but since the website is the visible face of the project, it is the community manager's job to ensure that its contents reflect well on the project, and help new users with their most basic questions—what is it, why should I care, where do I get it, and how can I use it?
As a result, community managers often report into the head of marketing. However, this publicly visible part of the job is a fraction of the tasks which can fall to the community manager.
Partner and Ecosystem Development
Community managers do not only care about growing the user community, they also care about growing the developer and contributor community for a project. Some community growth will come organically through users from your community getting more involved, but a key part of the community manager job will be the recruitment and maintenance of corporate partners to work on the project.
Most of the contributors to open source software projects for enterprise infrastructure are professionals—either employed by large users of the software, or engineers working for companies who are selling products. The community manager pays attention to the power dynamics in a community, and understands that a successful open source project provides a level playing ground for many companies to build products on the community-released platform.
As a result, a big part of the community manager role will be dealing with the representatives of participating companies. This involves two constituencies: the senior leadership, and the developers who are active in the project. Maintaining advisory board memberships, user group meetings, and generally ensuring that your project remains a strategic priority for the companies investing in it is an important part of the job.
The second part of growing the developer community is ensuring that the grass roots developers, the people who are actually contributing to the project, can get their job done effectively. This means being aware of any water cooler effects among the incumbent developer team as new developers arrive, ensuring that contribution guidelines are documented and understood by all, that the same standards are applied to all developers regardless of who they work for, and so on.
Maintaining community health can involve a fair share of conflict resolution, identifying flash points in community discussions and heading them off, and if the need arises, taking action to ensure that the community conforms to and respects the community's code of conduct (which the community manager is usually responsible for introducing and maintaining).
In general, developer communities work best when the friction to contributing is as low as possible, without degrading the technical quality of the community commons. The technical, developer-focused documentation on getting started, submitting patches, making changes to documentation, and so on, all fit into this. All community activity is monitored by the community manager, and any bottlenecks or pain points should be identified, and, if possible, removed. To identify these, the community manager will usually gather a large collection of data points about activity, and use this raw data to extract actionable information.
Another task that some community managers end up with is the maintenance of developer infrastructure—build farms, bug trackers, source control systems, patch management, and release management. In short, part of the job is to ensure that the community is a nice place to be. That includes tools, submission processes, and the curation of human interactions.
Product and Release Management
In community projects started by a company, with commercial products built on top, there is a tension between community users and sales teams who are compensated for sales to product customers. It is all too common for the free community offerings to be considered competition to the paid product offerings which build on them.
The community manager is ideally positioned to mediate this internal conflict. It is important for everyone's success that the goals of the project support the goals of the products being sold by the primary sponsor. There are a few potential negative outcomes to getting it wrong—an undernourished community project will never achieve the critical mass which would allow a successful community ecosystem, nullifying the potential benefits. Similarly, a project which succeeds, but without a viable business model for the founding company, results in an eventual starvation of the project, and a disincentive to future companies considering an open source approach in the future.
Maintaining the project roadmap, curating releases to triage issues appropriately, ensuring that community users are not disappointed with the quality of the release or community support, are all tasks which can end up on the community manager’s plate. These look a lot like the role of the product manager for traditional software products.
The foundation of a good open source strategy is an understanding of what the goal of the community project is, what the value proposition of a product will be, and how these relate to each other. There are many potential goals for an open source project, including market education and seeding a new market, encouraging the adoption of a new or emerging standard, growing a large user base to build mindshare, or technology incubation in an emerging technology. The core point is that the company executives, sales, field teams, and product management, understand how project success will benefit them.
The product value proposition must be something other than the features and ability to use the project. There are many possible ways for a company to generate value with an open source project—offering it hosted as a service, providing an ecosystem of certified and supported third party products on top, offering support, or capturing usage data of a large community for an adjacent business offering. You may even recognize in the description several large companies, some of whom are considered "open source vendors" and some who are not, in these descriptions.
Once the community goal is understood, and the company understands how it will create additional value for customers of products related to the open source project, you have a basis for deciding, given multiple courses of actions, which one best furthers the goals of the project, and you will also have ensured that the project will receive the resources necessary to help it succeed, as this success will not be seen as a threat by the companies involved.
Connected to All, But Outside
Different community managers will emphasize different aspects of these five core functions. The community manager has many of the skills required for marketing, partner management, developer management, product strategy, and product management, but will usually find themselves outside of all of these groups. At best, the community manager may have a dotted-line relationship to these departments, because while all of these things are important, none are sufficient to help the community succeed.
Deciding where to focus efforts across each of these areas is not an easy task—different communities, at different stages of their development, will need different things. Each project will need a strategy tailored to its target audience, industry vertical, and market maturity. Sometimes the most important thing will be to focus on awareness, mindshare, and the growth of the user community. At other times, enabling the developer community to scale will be the primary focus.
This is the lot of the community manager. The role requires an eclectic mix of skills, and you will be connected to all parts of the company. Where you focus will depend on the skills and interests you bring to bear. There are very few people who have the opportunity to span users, developers, sales, field engineers, product management, and product marketing—the community manager is one of them. This makes it a richly rewarding, but at times isolating, position, connected to, but outside of, everyone.