Write a vision and mission statement for your project
You probably rolled your eyes when you read the title of this post. “Vision statement” and “mission statement” probably call to mind empty corporate phrases. That’s fair. But the fact that most implementations are poor doesn’t make the concept bad. A well-crafted vision and mission statement help your community and your users understand what the project is — and isn’t. It goes beyond the technical details of the software you make to the underlying philosophy driving your community.
What is a vision?
A vision is your project’s aspirational goal. It should describe the world you want to see, not how you’ll get there or how you’ll measure yourself. It shouldn’t be something you can achieve in a year or five or ten. A good vision can only be approached asymptotically, and it’s bigger than your project’s scope.
For example, if I were to write a vision for the Duck Alignment Academy, it might look something like this:
Duck Alignment Academy envisions a world where every open source projects is led with intentional decisions made with community consensus.
Note that I don’t say anything about what the project does or how it does it. I just say what I want the world to be like. I’m not going to accomplish this goal by myself. It will take collective effort to happen (if it ever does).
So what’s the point? It tells everyone why the project bothers to exist. It’s the why of this site, not the what. It’s there to motivate the community.
If you want to build a ship, don’t drum up the workers to gather wood, divide the work, and give orders. Instead, teach them to yearn for the vast and endless sea.
Antoine de Saint-Exupéry
What is a mission statement?
A mission statement describes what your project does in support of that vision. It shouldn’t fully complete the vision; if it does, your vision isn’t ambitious enough. It should be something that you’re doing regularly, not a goal you want to achieve. So “MyCoolProject is the most popular cool project” is insufficient. Continuing with the Duck Alignment Academy example:
Duck Alignment Academy creates usable, engaging content to educate open source leaders.
This is something that is never going to be “done”, but it won’t fulfill the mission on its own. There’s room — and need — for others to do their part as well.
How to write them
The worst way to write a vision and mission statement is to hand the community a blank page. That’s not to say that you don’t want their buy-in, but if you give them a blank page, you’ll never get anywhere. If you’re founding the project, write a draft before you write your first line of code. If it’s an existing project, then start by working with one or two trusted people to write a first draft. Then go to a broader circle, and finally the community at large.
When the Fedora Project adopted its vision statement in late 2019, it started with the Project Leader, the (outgoing) Community Action and Impact Coordinator, and me sitting down together and writing a first draft. I don’t remember the specifics at this point, but I think it took us at least an afternoon of work to come up with two or three sentences that we felt captured our experience in the community. Then the full Fedora Council spent the better part of a day discussing it. We debated almost every word, including discussing how it would be understood by our community members who speak English as a second language.
It was a lot of work that felt kind of silly in the moment, but I’m proud of what we ended up with.
The Fedora Project envisions a world where everyone benefits from free and open source software built by inclusive, welcoming, and open-minded communities.
Fedora Project vision
Between that vision and the mission statement, the Fedora community has a well-articulated context for making decisions. Just as important: it has implicit permission to not try to fix everything because the mission clearly defines the scope.
This post’s featured photo by Brendan Church on Unsplash.