We often act as if coding, and especially open source coding, is a unique activity and that’s hubris. Most human activities follow common social patterns that should inform how we organize open source projects. For example, research papers are very social and community connected activities. Especially when published, written compositions are highly interconnected activities. Even the most basic writing builds off other people’s work with due credit and tries create something worth being used by later authors.
Here are seven principles to good writing that translate directly to good open source development:
- Research before writing – take some time to understand the background and goals of the project otherwise you re-invent or draw bad conclusions.
- Give credit where due – your work has more credibility when you acknowledge and cross-reference the work you are building on. It also shows readers that you are not re-inventing.
- Follow the top authors – many topics have widely known authors who act as “super nodes” in the relationship graph. Recognizing these people will help guide your work, leads to better research and builds community.
- Find proof readers – All writers need someone with perspective to review their work before it’s finished. Since we all need reviewers, we all also need to do reviews.
- Rework to get clarity – Simplicity and clarity take extra effort but they pay huge dividends for your audience.
- Don’t surprise your reader – Readers expect patterns and are distracted when you don’t follow them.
- Socialize your ideas – the purpose of writing/code is to make ideas durable. If it’s worth writing then it’s worth sharing. Your artifact does not announce itself – you need to invest time in explaining it to people and making it accessible.
Thanks to Sean Roberts (a Hidden Influences collaborator) for his contributions to this post. At OSCON, Sean Roberts said “companies should count open source as research [and development investment]” and I thought he’s said “…as research [papers].” The misunderstanding was quickly resolved and we were happy to discover that both interpretations were useful.