The World According to Chris Wellens

Monday, April 22, 2013

General Theory of Open Source Software -- So Much is High Quality ... How is this Possible?

There is a lot of open source software available for various tasks -- a
shocking, surprising amount. For example, yesterday I used GIMP -- a
graphics image manipulation program. GIMP runs on Linux and Windows. I
find it easier to use than the equivalent commercial products. How
can GIMP exist for free? How can there be so much good quality open source software?

Following is a theory about how open source software comes into existence ...

#1 An experienced software engineer needs a tool to use to help him
write code for his day job, where he is working on Project X.#2 He cannot find a tool that does what he wants. Or, there is a
commercial tool that meets his needs, but his management will not buy it for
him. Therefore, he creates his own tool, during the day, while his
EMPLOYER IS PAYING HIM TO WORK ON PROJECT X (but he could not work on
Project X without a tool). So inadvertently, his employer funds the
creation of this tool.
#3 The engineer will implement exactly what he
needs and no more to create the tool, and then he is done. He spends about two months on
it, because that's the maximum amount of time he can allocate before his
boss asks "where is the code for Project X? Show me your work for
Project X!"
#4 That same engineer then uses the tool he just created to accelerate
the work on Project X in his day job. By using the tool, he is finding
bugs in the tool, and fixing them, so he is doing his own quality assurance and testing on the tool.
#5 Other engineers see the tool or ask about the tool, and pretty soon
they are using it. They are helping fix bugs with the tool. Some of
them go to other companies and ask if they can use the tool.
#6 The original engineer knows that he cannot give code to others outside the company, so he asks his manager. He
describes this thing he threw together to get Project X done on time and
asks his manager if he can contribute it to the open source community. The
distracted manager says "yes".
#7 The original engineer creates an open source project and
contributes the tool. Then he tells other engineers that asked about it
where they can get it.
#8 The original engineer still has his day job, but now he
has fan base and pride because he is the AUTHOR of the cool open source
tool. So, as a matter of pride, he devotes much of his personal time
(and he sneaks time from his day job) to continue updating the tool.

This open source software development model works because:

A) The funding comes from BigCo
B) The experienced software engineer developing the tool was motivated by a real need
C) The project was sufficiently simple so that it could be done in ~300 hours

Contrary to popular belief, a group of altruistic software engineers do not band together for a few years to create an open source software product that they magnanimously provide at no charge to the general public and cheerfully support and update (although I suppose that does happen on occasion).