Thursday, September 6, 2007

Traditional WaterFall or Agile Methodologies?

Before answering this question, it helps to understand the nature of software systems evolution. Let's remind ourselves that complex IS systems take birth, grow and evolve just like human beings. Several environmental factors influence the growth of the human being. IS Systems too have a life cycle which is influenced by several software environmental factors.

The intent to bring the above point to the table is the following. There is no right or wrong way of adopting a particular type of the methodology to enable the growth, ensure successful life and peaceful end of Information Systems. Atleast, it is not established in the Software Engineering communities. Complex Information Systems development processes need to be thought of, debated as to which process suits what aspect of the specific Information System development. Learning and sharing about experiences, conducting postmortems and continually embracing areas that work could improve the outcomes in the long run.


Waterfall model was embraced when the software engineering communities belief was that the phases of the SDLC could be strictly enforced and signed off. Lessons learnt with several complex IS development experiences helped realise that this belief is not the greatest and best among varied Software engineering environments. Several things can change beyond the control of engineering environments during the course of systems development is the main lesson learnt over time.

Many approaches emerged as a result of better understanding of the processes. Sometimes strong beliefs overtook facts in decision making.

Software Engineering communities also realised that there is no single magic bullet to achieve success in software systems building. The reason for this is quite simple. It is because systems are about people, processes and technologies.
Systems development is influenced by several factors - shifts in thinking, learning, business changes, changes in approaches, methodologies, techniques and tools at a minimum.


There are two take away points from this post. The Systems Thinking helps understanding the complex nature of the issues involved. The disciplinary issues involved in building robust IS systems are about analysis, modeling, feedback, corrections and adapting to change. The second point is that IS systems building processes of today are possibly just a few steps ahead of what they were 25 years ago. It would not be a surprise if the next 25 years would condemn or embrace several processes of today.