800px-Lego_Color_Bricks

Programming is easy, the hard part is not mastering a programming language or a set of tools or frameworks. In fact those are probably the easiest parts. If that is the case then why software development is a very complex and demanding process?

Managing Complexity

The problem is not writing code or mastering tools, the problem is managing complexity. Programming is easy as long as the application you are working on is simple enough to fit inside your head in its entirety. The reality of the world however is that applications consist of many parts and aspects. That makes it really hard while working on a certain aspect of your application to have all the other aspects in your head at the same time and to anticipate how all of these parts will fit together and how will they affect each other.

Over the years many attempts were made to introduce disciplines, design patterns and methodologies to alleviate the suffering of managing complexity in software development. These attempts were indeed successful in helping with this goal to some extent, but they are barely enough. There is no doubt in my mind that we are living in the stone age of software development.

The big emphasis here is on modularization, decoupling and reuse. If you are a professional software developer, please tell me how many times were you able to truly grab a certain modular part of a previous application like login logic for example and plug it in a new application?

The Lego O2 Process

The aim of the Lego O2 Process is for you to be able to exactly achieve that. As the name suggests, the Lego O2 Process Manifesto tries to define a formal process that enables you to compose new software out of existing components that you yourself or others have wrote. It aims to have you -- while writing, debugging or maintaining a certain component -- focus on the domain problem of that component of the application separately without worrying about how other parts of your application or system will affect it.

How it Relates to Ra-Software

Although that we at Ra-Software are behind the initial spark of the Lego O2 Process and that we have our own implementation of that process as part of our Software Factory concept,  we want it to be very clear that this is not something that we own or control. This process is a discipline in software development and it is not tied to specific technologies, companies or individuals. Contributions and refinements from experts in the software industry are needed and welcome. Adoption from any software house using any technology is encouraged.

The Lego O2 Process Manifesto

The first draft of the Lego O2 Process Manifesto is now available and is licensed under Creative Commons Attribution-No Derivative Works 3.0. Please read it and come back with suggestions and feedback.

Share this post :

Technorati Tags: ,