Before I speak of Pieter Hintjens, I want to talk about Legacy and what it really means.
When I watched Chad Fowler’s GOTO Amsterdam 2014 Keynote it got me thinking about what our aims should be in life.
He mentions Joel Spolsky’s post from 2001: Good Software Takes Ten Years. Get Used To It, and says software typically only lasts five years so rarely gets to be very good.
He asks, what does it take create legacy software with a positive meaning, that is software so good that you are fondly remembered for it for many years to come.
How many very famous developers, or ex-developers are there in the world. You may disagree, but I would argue that Bill Gates is the only living person with worldwide fame partly associated with writing code.
Only big company CEOs have any chance of becoming a household name. Even Sir Tim Berners Lee has only about half as many Twitter followers as Grumpy Cat.
In the talk, Chad asks this interesting question:
What are the oldest surviving software systems you regularly use? GNU Linux comes to mind. What else?
What software still in use today continues to have a massive impact around the world? Some examples that come to my mind include iOS, Android, the Facebook social network, Google Search and Google Maps.
All of these pieces of software have involved huge teams. When the iPhone project first began, there were 1,000 employees working on it. There are an estimated 1,800 developers working on it now.
If you are going to work on something big, it’s absolutely essential that you collaborate.
Pieter was a man who knew all of this. His deep passion for optimal collaboration lead to the creation of C4: The Collective Code Construction Contract. Not only was he very talented technically, he also understood people and how to foster a strong community.
He gave keynotes for many different conferences over the course of many years. His last published talk is on Building Open Source Communities.
He 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.
I also highly recommend listening to his interview on Overcast.fm, and I have never recommended a podcast that goes on more than an hour before. There are so many strong points and so many insights given throughout the show that it feels wrong to try to summarize them here.
Pieter not only lived the way he wanted, he died the way he wanted as well.
Although he lived a short life, he used it to accomplish far more than most of us. So we can draw a lot of inspiration from the way he chose to live and use his ideas to live better ourselves.
And that, is a legacy.