The Passion Behind the Software

It must have been about ten years ago now, perhaps a little more. At the time, I was conducting a self study of TCP/IP. The motivation behind the study had little to do with economic gain. I simply had a curiosity for how networks functioned – especially the Internet. I had set up a few small websites and written some freeware programs. The excitement of someone viewing my web pages or downloading my programs still makes me curious. Why was it so satisfying?

During this same time frame I developed a small Win32 application that performed an ICMP Ping. It worked very similar to the command line version on Unix. It differed from the command line version on Windows in that it provided much more data about the results of Ping operation. Most notably, it was an elegant (for the time) GUI application. The reason for writing the program was simply to allow me to advance my knowledge of TCP/IP.

Upon completion of the program, it was made available to the public via a few freeware websites. It was downloaded frequently. Every day upon returning from work, I would rush to the computer to go to the website and see how many people had downloaded it. On the days with a high number of downloads, I would feel energized and motivated. This frequently motivated me to enhance the program. Never once was profiting from this utility seriously considered.

A few months passed, there was an email in my inbox from one day a company in Australia. The letter told indicated this company was deploying a standard desktop software environment to the entire company. All 30,000 desktop computers would have the exact same configuration. The letter was requesting a price to allow them to include the ping program as part of their standard desktop environment. They were interested in a feature in the program that allowed the user to export the ping results to a text file where it could easily be attached to an email an email. The letter went on to say the company was wrestling with network issues. They needed an easy way to help resolve network problems. The users were not advanced and asking them to capture output from a command line Ping utility was proving to be difficult.

At this point, I was overwhelmed with excitement over the thought of up to 30,000 people having my software installed on their desktop computer. It simply did not occur to me to try to sell them the program. It was free software. It just was not about making money. I responded back to the company allowing them to use the utility free of charge. It was quite gratifying just knowing they were using my code. In the end, I am certain the company would have happily paid me for the software.

Almost every time I tell this story, someone talks about the money that was missed. The response is always the same. It was not about the money. It was about the satisfaction of knowing my code was in use, knowing someone found it useful, and knowing I helped this unknown company with their network problem.

This very simple example has millions of occurrences amongst open source and freeware developers. A few months ago, I purchased a MacBook Pro laptop. Not long after the purchase, it seemed to run very hot. Attempting, to solve the problem, I googled “MacBook” and “Heat”. One of the top results contained a link to a free program called “Fan Control”. This utility allows the user to control the fan speeds such that the system runs much cooler.

About two weeks ago, Apple released their new operating system known as “Leopard”. Upon install, I noticed the laptop was hot again. Back to google, I went. This time I added “Leopard” to the search. Sure enough, there was a link indicating there was a fix to the fan utility which made it compatible with Leopard. Not only did the author of “Fan Control” provide the utility free of charge. He also provided support and patches faster than most large software companies.

The over arching question is “Why?”. What is it that drives people to work for free? What motivates them to create high quality deliverables? Is it the satisfaction of participating in a broader universe? To belong? Is it a desire to leave a legacy? Or perhaps, a desire conquer or create something? Is it the ability to control ones own destiny?

Regardless. of the answer, software organizations have a unique opportunity to understand what drives software engineers and introduce those key characteristics into the work environment. For example, if it is true that leaving a legacy is important to developers, companies should create an environment which publicly (internal or external) acknowledges the work that has been accomplished by individuals.

Is it possible bring the passion of free software development into an environment where people are paid to produce?

2 Responses to The Passion Behind the Software

  1. Mike Lunt says:

    I’ve seen developers motivated by the following:

    1) Learning something new. (Ex. your blog post)
    2) Creating something truly innovative.
    3) Creating something that helps the “general good”. (Ex. your blog post)
    3) Working with people who they enjoy and can learn from.

    Without 1 or 2 of these motivations, there is a dramatic increase in the monetary reward required to keep them productive.

  2. Israel says:

    To Mike’s third point “working with people who they enjoy and can learn from”: there are numerous studies indicating high correlation between smail unit (e.g. platoon) cohesion and excellence in battle.
    While I am far from considering software development
    as war, I believe the analogy holds quite well
    for small Agile teams.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: