For a finite-size system to persist in time (to live), it must evolve in such a way that it provides easier access to the imposed currents that flow through it. (Adrian Bejan)
If you’ve never heard of the Constructal Law, a good place to start is Wikipedia. While we can criticize at length its universal validity as a “law”, there’s some pretty good evidence that it applies well to human-made processes and designs. And software is a human-made design. How does this apply to open source software?
Software is a system and like all systems it needs to evolve to remain relevant. When does a new software replace an old one? Some examples are when it’s:
- Easier to install, copy, redistribute, modify.
- Giving better results.
- More stable.
Take two identical software systems. One is proprietary, while the other one is open. When all variables are equal (speed, cost, output, whatever), an open architecture will win, because by definition open systems facilitate the flow of information more than closed ones. It’s very important to understand that simply making a software open does not result in a better system. If a proprietary software is faster, easier to use and gives better results, that system is better and will survive.
Why isn’t open source software dominating the world? Why are companies like RedHat and MongoDB still the few successful outliers and with capitalizations so small compared to companies that base their business around proprietary offerings?
I think part of the reason is that only recently people have started to find ways to create a sustainable business model around open source software. That model is not as straightforward as the old proprietary business models and honestly, we haven’t figured it all out (we did figure out lots of ways that don’t work, say, donations or crowd-funding).
Another reason is that open source maintainers are often software developers. As software developers we do what we love best: code. Business planning? Sales? Marketing? Often it’s thanks, but no thanks. We release our software and tools to the world and we hope they will be helpful to others. We get angry and burnt out when thousands of people start using our software and expect to receive free support. For all of our efforts, we receive exactly nothing. But we cannot blame the people for not “giving back”. It’s our fault, as we simply failed to capture value. For open source to succeed (and it is already succeeding), we need to be creative and find new ways to capture value. We need to get involved in the business side, or involve people that are good at that. We need to polish our interfaces. Jeff Atwood probably summarized it best:
If people aren’t willing to install and use your software for literally nothing, how can you possibly expect them to pay you anything […] ?
The quote is from Jeff Atwood on Growing Discourse to $120,000/mo (recommended reading).
Evolution does not happen from one day to another. It takes years, sometimes decades or more. But change is always happening. The evolution of software toward more openness and new business models is not something that will happen in the future. It’s already happening, and it’s happening fast.
Just look at what Microsoft is doing.
Such exciting times.