LERDORF.COM

The Software Industry in 2010

What if...

What if all software came with its source code and full rights to modify and redistribute any changes?

The Community

A community of people known interchangeably as the open source community and the free software community has been asking this question for years. The actual wording of the question varies between the two portions of the community. I am deliberately choosing to lump these two factions into a single community as to me the final outcome will be the same.

The Free Software Foundation and the Open Source Initiative explain their somewhat opposing views through well-written essays on their respective sites. To me the main difference between the two groups is that the FSF wishes to mandate software freedom (in the sense of liberty not price) while the OSI wants to frame redistributable software in a way that makes it attractive to the commercial world.

Critics of the FSF argue that the GNU Public License is viral and too restrictive in the sense that it infects any software it is combined with and forces the entire work to be distributed under the GPL or a GPL-compatible license. Critics of the OSI argue that the Open Source Definition does not protect the freedom of the software. Both criticisms are valid, but in the long term it doesn't make a difference.

The Key

Communication is the key. The Internet allows a person sitting in Canada to work closely with a person sitting in Australia. Together they can solve a common problem and share the tools and knowledge that the solution generated. As people are added to the equation instead of two people working on a problem make it 500. Tools such as CVS, mailing lists and IRC make it possible for such large groups to interact and co-develop large software packages.

What about India, China and other developing nations?

India and China both have a massive amount of people and very limited Internet access for most. When these and other developing nations come online and as the next generation of programmers emerge from the already connected countries the potential size of the community will grow by at least an order of magnitude.

Once connected the wonderful characteristic of the open source/free software community is that the barrier of entry is ability, not money. A single student with access to a computer and the Internet can write or contribute to code that is used by millions of people around the world.

Building Blocks

The open source/free software community will be the providers of the basic general-purpose building blocks required to develop any end-user solution. Some existing examples include Linux, Apache, PostgreSQL, Perl, PHP, Python, sendmail, bind. There are thousands of others. A handful of these are dominant to the point that any closed-source proprietary software company would be hard pressed to launch a product in the same space.

As the community grows and gains momentum more and more building blocks will be targeted. Commercial proprietary software vendours will feel increasing pressure as free alternatives to their proprietary software materializes. Many vendours won't have anything to worry about for a while, but as the community organizes itself and starts focusing then vendours such as Oracle, Microsoft, BEA and others are certainly going to feel the pressure. How do you compete with a community which can throw 5000 highly talented, self-motivated and passionate programmers on a project?

Where is the money?

Most people wonder how this community of programmers can put food on the table if they do not charge for the software they write. The obvious answer is that a lot of them have very normal jobs for traditional commercial proprietary software vendours. These programmers will typically avoid writing something that directly competes with their employer's products but are usually free to dabble in other areas. A small percentage work for companies that are specifically targetting this open source/free software marketplace and they get paid directly to participate in this community.

Is it sustainable?

Ok, wait. If this community is slowly going to be eating away at commercial proprietary software vendours who end up in the unfortunate position of competing with a well-organized community project, then won't they be cutting off the revenue source? Basically the answer is that as this community grows and starts producing more and more building blocks to replace commercial proprietary building blocks, then there will be more and more companies stepping up to provide support and integration services for them. And solution-oriented companies that target specific vertical markets will need help with applying these building blocks. Either sector would be extremely happy to employ people who have made key contributions to any of these crucial building block components.

In the end all software is designed to be tools for solving problems. Some problems are general and cross boundaries. For example, the Apache web server is a general-purpose building block provided by the community. Governments, companies of all sizes, libraries, hospitals and just about any sector you can think of uses this building block today. Everyone also needs an operating system, drivers for disk arrays, high availability solutions and many other things. When someone who is putting together a solution for a specific vertical there will be a high fiscal incentive to try to use as many freely available components as possible. If a certain component is missing or doesn't quite interoperate with others, it is likely cheaper to employ a programmer or two to create or enhance this deficient building block than it is to go to a commercial proprietary software vendour. Since the solution provider is not in the business of writing building block software there should not be any issue with them contributing this work back to the community, especially if they are enlightened enough to understand that by doing so they help sustain and advance the community on which they depend.

Is it inevitable?

I would like to say yes to this question, but I am not quite ready to. The developing nations, specifically India and China, will be crucial. I have travelled to India to speak at conferences a couple of times now and at least from the limited direct contact I have had with a couple of hundred young Indian programmers they firmly believe in this concept. They feel empowered by the fact that they can sit down in front of a computer and quietly make a name for themselves. I met a number of recent graduates in India who had multiple job offers from both North American and European companies. And encouragingly there are now also a number of Indian companies very interested in hiring these same community-driven programmers.

Most programmers would much prefer to work in the open source/free software community where their individual talents are showcased rather than being a faceless human resource hidden behind a corporate facade. However, without enough people believing in this concept and pushing it forwards it could easily fall apart. At a certain point we will reach critical mass and there will be no stopping it. I do not believe we have reached that point yet. It will take continued vigilance from leaders in the community to help steer newcomers in the right direction. And it will take significant organizational skills as the community continues to grow.

RASMUS

CHRISTINE

SØREN

HANNE

MADS & TRACY

LASSE

HENRIK

MARTIN

MICHAEL

INGER BOYE

JENS CHRISTIAN

LINDA