After returning from awesome weekend in Stockholm I felt a bit rusty. I picked a topic which is more or less familiar to me from the past research (and my PhD thesis): Developers love open source. But why?
Traditional B2C customer just install the app and use it. Or that is the desired result. The features in the app are naturally limited. If the app is a good one, it most likely fills in around 80% of the customer needs. That’s good enough. The consumer can not adjust the app, they adjust their own behaviour or try to find an alternative. The alternative probably is better in something than the first, but most likely lacks something the first app was able to provide.
Build own tools because I can
Now the developers are not the same. You need to understand that developers build their own tools. They have the needed skills. They do not need to settle with something that others have built.
Developers can develop custom made surgical razor sharp tools which fit perfectly to their needs.
It’s common that developers build tools even daily. The tools might not be complex application with 50 000 lines of code but simple things in the beginning. It can be a script which helps to run certain command faster and more easily. That simple script might eventually become a “professional tool” used by thousands of developers after it has been tweaked and enhanced by a few dozen developers.
Don’t be fooled though. Most of the open source projects end up being one man shows. Just a small percentage of open source projects “hit the nerve” of hundreds or thousands of developers. “Build it and they will come” does not work in app markets with B2C, and neither does it work with developers.
Developer tool markets
If you are thinking of building business on of the developer tools markets, you might want to consider a few points. The open source model works really well for developer tools. This is because
- open source works best when developers are their own customers and
- developers working on open source developer tools receive a tremendous amount of social recognition, the true business model of open source Developers like writing their own tools and hate paying for things that they think they can build themselves, even when the cost to build far exceeds the cost to buy.
- Because developers can write their own tools, this makes them hypercritical of cost and inflexibility.
- Developer tools end up being heavily subsidized by other business lines. Apple, Google and Microsoft spend hundreds of millions of dollars a year to create tools for their developer ecosystems. This makes it difficult to create an independent business unless your tool bridges these ecosystems in way that independent players aren’t inclined to do.
Provide the tools for free with source code
Even if it might sound tempting to do additional sales in your platform for developer tools, that probably is not a good idea. Develop tools for developers internally and often you can offer them to 3rd party devs as well and get more traction. Free (open source) tools act as pulling factor. Pushing closed source solutions is better than nothing.
If you select also to use open source, the 3rd party developer can make personal adjustments and improvements to fit the tool better in own toolchain and workflow. Some might even push back the improvements as pull requests. But don’t fooled here either. A lot of the improvements are not contributed back. The developer could consider the improvement too personal, no need to polish the code to push it, lack of time. There’s plenty of reasons. Stuff just does not get pushed to upstream.
Why do developers participate in open source development?
Altruism is a variant of intrinsic motivation in which one seeks to increase the welfare of others. It is the personal disposition at the opposite pole from selfishness — “doing something for another at some cost to oneself”. Since open-source programmers provide something for others (writing programs with open-source code) at their own expense (time, energy, opportunity costs, etc.), they belong to this category.
Programmers may regard working for open-source projects as an effective way to demonstrate their capabilities and skills. No wonder a lot of programmers have pretty amazing projects in Github which they can use in job hunting.
Open-source software provides many opportunities for selling related products and services. But remember what was discussed above. The open source market opportunities is getting polarised due to global giants.
Programmers may also participate in open-source projects to expand their skillbase. Economists use the term “human capital” to designate personal skills,capabilities, and knowledge. Increasing one’s human capital by means of edu-cation, training, learning, and practicing leads to better job opportunities, highersalaries, and more fulfilling jobs (Investment in Human Capital: A Theoretical Analysis).
Peer recognition derives from the desire for fame and esteem. The success of open-source software is to a great extent due to its early, fast, and frequent releases. Similarly, open-source programmers receive rapid, constructive feedback about the quality of their work. The feedback mechanism is self-reinforcing, for it encourages the authorto expend additional effort to perfect his code, which in turn attracts morefavorable feedback.
As the history of open-source software shows, open-source projects are often initiated because a programmer has a personal need for a certain kind of software. According to legendary The Cathedral and the Bazaar every good work of software starts by scratching a developer’s personal itch.
Short term experimentations
The last one was the reason for the development of “Code example generator tool for API Docs”. It’s a tool we developed in Platform of Trust to automate generation of code examples in API documentation. There are some ready made tools for that, but nothing exactly what we wanted and needed. Thus we decided to make an experiment; to see if such tool can be easily developed for us. Our default is to build and release in open source. We did not know if this is going to succeed of not and leaving the experiment (even if failed) for others to see would probably have value for the open source community. But it was success and it’s open source. That’s the story I’ll write next.
Douglas Adams once wrote “The answer to the ultimate question of life, the universe and everything is 42.” Open source is the 42 in developer tooling.
Some more to read from 100 Days DX
- #85 - Great Developer eXperience requires fluent internal workflow
- #84 - Theory of Economics of Developer eXperience
- #83 - The Space of API Design Decisions is missing
- #82 - Purpose of API Evaluation Framework
- #81 - Should We Move to Stack Overflow?
- #80 - Four data driven ideas for improving API documentation
While you are here...
Check out Platform of Trust in which I've worked to enable best possible developer experience!