Creating a developer community project is both rewarding and difficult. Many developer advocates, evangelists, and marketers either don’t know where to begin, or have trouble building momentum across the teams at their company.
We want to see more companies creating valuable things for developers, so to help with that, we’re sharing our community project planning framework. It will help you think through potential questions your team will have and guide you in planning for the resources required to build a high-impact project.
The framework has three phases, each with its own purposes and parts:
- Describe the challenge: Why do you want to build something for the community?
- Create something meaningful: What will make the project resonate with developers?
- Invest in quality: How can you execute to ensure success?
These sections all build upon build on each other, so we recommend starting at the top.
Describe the challenge
Community projects can benefit your company in lots of ways, but it’s important to first define the problem you’re hoping to solve, then describe the outcomes that will result from solving that problem.
Defining your goals will help you in two big ways.
First, clear goals will clarify your storytelling and get people excited. Community projects usually require input from lots of people and teams, and a succinct description of your goals will help rally folks who can help.
Second, your goals will help you generate ideas, then once you’re building, they will keep you focused throughout the process, serving as a north star for all involved.
Here are the major buckets of goals:
- Awareness — getting general visibility for company, product, or features
- Acquisition — getting developers to try the product (product-focus)
- Brand — building the company brand (mainly for B2D companies)
- Hiring — building the brand of the engineering team (especially useful for B2B or B2C companies hoping to grow awareness among potential technical hires)
- Culture — fostering internal collaboration, creating innovation, and overall developer empathy
Once you have the challenge and goals defined, try capturing the situation in a short problem statement, like:
“Problem: our PHP SDK sees fewer monthly installs than our other SDKs. Can we increase PHP adoption by 50% by the end of the year?”
Create something meaningful
Now that you’ve defined your goals, you can brainstorm with the confidence that your ideas aren’t random, but are working towards solving a business challenge.
But goals alone won’t inspire a great idea. After all, there are infinite possibilities for cool projects, so how do you know where to begin?
Across the community projects we’ve created or researched, we’ve uncovered 5 traits that help make projects meaningful for developers. These traits will help you think of interesting ideas while you brainstorm, and will also help you assess your potential projects once you have a list of ideas.
Any community project should stand out in at least one of these five ways:
- Informative — Does it provide useful, unique, or timely information to developers?
- Supportive — Does it provide support to the developer community, financially or otherwise?
- Enjoyable — Is it fun to play with?
- Educational — Does it teach a useful, reusable skill or concept?
- Useful — Does it solve a technical problem?
So how can these attributes inspire your ideation? First, use these buckets to explore different directions. For example, ask yourself, “What data or interesting information do we have that might be useful to developers?” (informative) or “What open source projects are we using that need financial backing?” (supportive). List your ideas along the way.
Then, once you’ve generated a bunch of ideas, assess them by giving each one a score of 1 to 5 for each factor above. Keep in mind that this isn’t about quality of a project. That depends on all sorts of things, including robustness of docs, distinctiveness of the brand, promotional plan, and more.
Rather, this assessment is all about understanding how a project impacts the developer community. If the project is something that developers can rally around, they’ll want to use it.
Now compare each of your projects to understand areas of impact, and determine how each approach is uniquely meaningful to developers.
Here’s what that might look like if you were comparing three different ideas:
The list of upcoming conferences looks really informative, and a bit supportive, as it could lead to attendance and sponsorships of conferences.
The Glitch app seems really fun and educational, while the test data generator would be really useful.
Which project would you chose? Any could make sense, because they all have strengths in different areas. But the “right” idea all comes back to your audience, goals, and strategy.
Completing this assessment, however, will make those discussions much more clear, since everyone will be speaking the same language.
For quick comparison, we like to plot the options on a radar chart for quick visual comparison. If you’d like to try that, here’s a handy Google Sheets template to get you started.
Invest in quality
Once you have clear goals and a solid idea that stands out on at least one of the five ways to be meaningful, how can you make sure your project exceeds the high quality bar most developers have? What resources should you plan for and what should be in scope?
There’s no magic bullet, but we’ve be found a handful of attributes common to successful projects. As you plan and build, make sure your project is:
This includes a unique brand, name, logo, and narrative. Doing so will help signal to developers that the creator has invested in the success of the project, and that community participation and collaboration is truly sought. Our friend Martin Gontovnikas, a veteran content product and community project creator, believes that:
“If [your project] lives in the same website [as your company], a lot of people will dismiss it thinking ‘it’s just a marketing stunt.’”
And we totally agree.
This includes documentation, guides and tutorials, ease of getting started, and well-marked paths for integrations and contributions. Good packaging helps developers quickly onboard to your project and receive value quickly.
Without a way to spread the word, even high-potential projects can sit and gather dust on the GitHub shelf. The people behind successful projects tend to be good at creating buzz, often through a combination of Twitter, blog posts, and giving talks at meetups and conferences.
As you plan your project, think of all the ways that developers should be able to discover it, and collaborate with marketing to craft a process for consistent messaging.
What’s going to make developers care about your project? Make sure to incorporate one or more of the 5 ways of being meaningful from the section above: informative, supportive, enjoyable, educational, and useful.
Community projects are rarely an overnight success. Rather, they grow over time (often months or years) at the hands of committed creators and maintainers. Don’t assume that you’ll launch the project and be done with it, but make a plan instead to maintain it, scale it and recruit others in the community to help keep it growing. Think of gathering momentum like a snowball rolling downhill, not like fireworks exploding in the sky.
An important tip here - make sure to recognize and reward community participation in your project! That’s essential to earning long-term commitment from maintainers and keeping your project welcoming and healthy.
You now have the tools for planning for and communicating about your community project. Clear goals will help align your team around the problem at hand. The 5 different ways that projects provide meaning to developers will help make sure your project has serious appeal. And when you build with these tools in mind, you’ll help make sure your project has the long-term impact you hope for.
Need help? ☎️
If you’d like to get advice on a community project idea or get some help applying this framework, DeveloperMode is here for you. Just drop us an email and we’ll be more than happy to answer questions or set up a chat.