Wednesday, January 27, 2010

Nature of Software Evolution

Building software is not very orderly as one might imagine as an end user/ consumer. Depending on the type of application, it takes herculian efforts and managing chaos to bring shape to the thought process that goes on in building sophisticated software systems.
Many attempts (successful and failed) result in what we use as software products/ systems as end users.
I want to bring out the role of software configuration management and root cause analysis in building reliable software in this post.
It is easier to answer the question what if there was no software configuration management. It means software in chaos, no order and no reliable software that can be used by end users as well as developers.

Root cause analysis is an analytical approach to determine what went wrong during software development. It is possible that a particular functionality has resulted in erroneous outcome/ bug while using the software. In depth study of the area can unfold related problems in the area which might require rebuilding the software. Such study is generally called root cause analysis.

Both the above are valuable tools in ensuring reliable software systems.