Welcome to the desk of an Engineer......

For an optimist the glass is half full, for a pessimist it’s half empty, and for an engineer is twice bigger than necessary.

Friday, January 6, 2012

Open Source Software: Transforming Business

Open source is having a huge impact on the software development business, and it is going to continue to have a huge impact on the future of software development. Just as computer hardware has become a commodity over the last couple years as manufacturing and production efficiency have increased, the same thing is going to happen with the software development industry. Many may decry this statement. But it is true and it is happening already. The thing is, we don't need to fear this commoditization of software.

Open source is changing software development at a fundamental level. Once software developers were highly paid to build specialized software systems. These included things such as databases, interface libraries and other fundamental and foundational software packages. At that time, these tools didn't exist, so they had to be created. This created a foundation that other people could build on.

When you look at these systems, take databases for example, they may be extremely complex systems, but on a larger scale, they don't really do anything by themselves. They are a piece, a tool that can be used as a foundation to build a more complex system. A database by itself is nothing. In and of itself a database has little value. It has to be utilized by another system before its true value becomes apparent.

I believe that the commoditization of software is going to create a "Lego" effect. A database or an image manipulation library could be considered "blocks". They do one thing, it is very specific and they do it well. They are very specialized pieces of code. But like a Lego block, by itself, a single library is rather useless.

The value of having all these specialized open source projects that are out there, means developers have more options. There are more blocks to build with. The fun stuff happens when you take these various blocks and you start bringing all the pieces together. Individual pieces of specialized software can be brought together to form complex systems that will do some amazing things.

At this point, developers become more like architects. They don't have to worry so much about how and what little pieces of code are doing. They can focus more on the macro level, and making sure the entire system is doing what needs to be done. They focus on putting the blocks together in the right order. When this happens, the important skills for software development are going to change. It will be important to know what packages are available, and to have the programming knowledge and experience to pull everything together into a coherent system.

There, of course, will always be the need for people to build more or specialized "bricks". But as more and more open source software packages become publicly available, developers will be able to worry less about the nitty-gritty internals and focus more on the wider scope of a their projects.

No comments:

Post a Comment