This post is an excerpt from https://zombiecodekill.com/2016/10/06/the-legacy-of-pieter-hintjens.
He [Pieter Hintjens] begins with the point that most code we write gets thrown away, and it’s because we don’t know what we’re doing. New means unknown so by definition we have no clue when we are starting out.
Most developers have dabbled with open source but virtually no-one finds it easy and successful.
The solution is to build a community by putting people before code. Code is useful, but it’s secondary to the people who make it.
That’s the first rule. The next is to make progress before you get consensus and Pieter speaks about giving your contributors an emotional kick by making them feel that their contributions are valued.
He notes that the best developers tend to be those with good character and the ability to work well with others. These are the people who you want helping you with your project.
Rule 3 is problems before solutions. As engineers, we often like to design solutions. But we’ve seen time and again in our industry that big up front designs do not. Design is assumption. Pieter says its like navigating with no compass: the further you go, the more wrong you are. We should view every change as a solution to a problem and ask “what is the problem that it solves?”
Rule 4 is contracts before internals. We have contracts between people. Implementation details are not as important as the way the software functions. If the end user experience is good, users don’t care about the internals. Pieter talks about licenses for removing barriers, and giving everyone equal rights.