Blog Archive

Blog posts for September 2007

The Business Benefits Of Open-Source

Open-Source has been labeled as a philosophy, a set of practices related to software development and even a theory on how best ideas can spread. I will be arguing that above all, the success of Open-Source models stems from the fact that they make perfect business sense. 

What is Open-Source about? 

For us, Open-Source is about letting people's energy flow and transform into a whole that is way more than the sum of its individual components. 

For us, Open-Source is about being bold and showing entrepreneurial spirit. 

For us, Open-Source is about freedom. 

For us, Open-Source is freedom.

And in today's world, freedom means business opportunities. People no longer want to get stuck into situations where they have to endure the lasting side-effects of a single remote poor decision. Enterprises want to be able to choose the solutions that offer the best answer to their needs and to build on them as required to get those solutions to do so. Nobody likes to be trapped into a dead-end. 

For us, Open-Source means the end of dead-ends.

We will explain why in posts to come. Stay tuned.

This article is the introduction of a series of articles about Open-Source that will be published on this blog on every monday for about 2 months. These perspectives are a reflection on what we have learnt from developing an Open-Source software.

Perspective Number 1: It's All About The Community

"What's worse than closed-source software? Closed-source software of which support has been discontinued by its owner."

Longer Lasting Software

Indeed, those words will sound familiar to anyone who ever had to rely on software which development got stopped without warning, with messages sent to its original developers remaining to no avail and leaving useful code unavailable. Take the following scenario: you've been using that cool RSS Reader for some time now. It boasts most of the features you need and what you know of its roadmap suits your expectations. Then one day its development gets stopped because the company refocused its activities on its core competency, accounting software. All of a sudden the bugs you thought would get fixed soon keep popping up while the software does not receive any further improvement. With Open-Source software, things could have come out quite differently. Once the original company had stopped its work, the community would have been able to take over and keep bringing improvements to the software. Good software needs not die because of one single decision.

Fewer Security Issues

The importance of having a vibrant community is not limited to the fact that someone exists who can keep software development going. Indeed, closed-source paves the way for a number of behaviors that do not make for good software. Says this recent TechCrunch article

  ...it is often claimed that open source software is more secure than closed source software, since there are many more eyes auditing the code and obfuscation can't be used as a security measure.

Meaning, members of your community will help you spot stuff you would never have noticed on your own. Meaning, they will be spending time reporting bugs, nailing usability issues, offering their advice and their help for free. Meaning, some of them will even come up with complete and definitive bug-fixing patches. For instance, Mozilla Firefox's bugs get patched five time faster than Internet Explorer's ones. 5 times less to take advantage of a flaw: there is no surprise why hackers do prefer closed-source software.

Higher Adoption Rate

On top of helping getting rid of bugs, a community offers a lot of fresh ideas as well as suggestions on how to improve a software's ergonomics. Happy users are involved in the project and therefore more likely to help the software spread, making its diffusion network wider. On the whole, a community helps saving on marketing costs by providing both valuable feedback and promotion effort. Says JBoss' Marc Fleury

But FOSS turns that equation on its head, again we have a better way to develop and distribute. An optimally functioning FOSS business model needs 20 cents of sales and marketing to acquire 1 dollar of maintenance, where a traditional software company will have to spend around 2 1/2 dollars. Get it?

Could things be made any clearer?

To summarize, enjoying a great user community is probably the best thing that will ever happen to your software, boasting improved notoriety and better security among the benefits it brings it.

Perspective Number 2 : Better Development Practices

Openness, effectiveness, reactivity...

Aren't those some of the qualities you'd like your software provider to show? Aren't those some of the qualities it will not even come close to display, protected by the fact that you cannot do anything about it? This is not the case any longer.

Vibrant Open-Source project have emerged, where those qualities are the rule rather than the exception. This occurs for a simple reason: in the world of Open-Source, you're either living at the edge - or you're dead. There is so many high-quality new projects emerging every day, building on every other to deliver more value to their users, that the day an alternative faster and more effective than yours pops up you're likely to disappear. What is more, people who work on Open-Source project often do so on their free time.

Meaning, they do it because they like it and they feel involved in it. You wouldn't let down a project you care about. Neither do they.

Which is part of the reason why innovative development practices are used and enhanced by Open-Source projects. Working with people contributing part-time from all around the world creates collaboration and coordination challenges that are tackled in innovative ways to get things done in the end. Time-boxed development provides decentralized developers with defined slots of time when they can contribute their code to the software. Every release (sometimes one release comes out as close as every 3 weeks) comes with its batch of new features, keeping the development rhythm on a fast pace. Even more important, you cannot hide flaws in your code under the pretext of closed-source. Says TechCrunch

In closed source applications it is common that developers rely on the closed nature of the application to obfuscate poor design elements and the structure of the application. An attacker getting access to the source code more often than not leads to further security holes being discovered.

As was stated in my previous post, this could not happen with Open-Source software since every security issue known about gets reported and fixed in a few days' time.

What closed-source software can claim such an achievements' record?

Perspective Number 3: You won't ever be separated from your code again

So you're a software developer.
You spent your last 3 months working on great code, going to painful extremities to take advantage of every way you could find to make your code efficient. You created libraries just so that the functions you wrote could be used again easily when needed. You spent countless hours trying to create an architecture that would fit well for other purposes than initially planned. And today, you're leaving your company to launch a new business venture you feel could change the way people look at software. In theory, at least.

Uh - oh.

Indeed, for you project to work you need to use part of that code you spent days to polish. Part of that closed-source code that your previous company has copyright upon and won't let you use now. Maybe you shouldn't have left, no matter nobody let you try and experiment on your project back there. In a quick survey he ran a few years ago against Apache developers, XWiki's CTO Vincent Massol asked people whether they were working on an Open-Source project for the sake of humanity. One of the answers he got:

"Not really. Mainly it is selfish thing as I was sick of rewritting the same code over and over as I moved from company to company. Apache gives me a chance to have some stability between jobs and reduce the amount of duplication in code."

Open-Source does not make sense because of grand principles, it makes sense because of its practical benefits. 

To sum it up, Open-source means freedom.
It means that the effort you make today will remain available for others to enjoy tomorrow. It means that nobody will suffer from the lack of vital information retained for some obscure reason hidden under the seal of closed-source copyright. And that's not the only way to look at the problem. When you write your code for your company, it keeps the copyright and the code, meaning that nobody will ever know that you wrote that great program. Recognition goes to an entity rather than to individual contributors. In Open-Source development, you always get credit for what you achieved as an individual.

Outstanding work deserves great recognition.

The world is waiting for talent to emerge, the Open-Source philosophy lets it stand out.