Today Agile methodology is getting used widely across
companies to handle software development effectively. Agile is more adaptive to
changing realities surrounding a project. Such projects are able to respond to
unpredictability and changes effectively.
While Agile is more adaptive, Waterfall methodology is more
predictive. In a predictive method, there is detailed planning done for the
future and thus it is easier to predict where the project will be at the end of
a farther point of time.
I would like to share my personal experience in working in a
project that managed to blend both of these methodologies for effective
management and succeed in achieving customer delight. This project started off
in the waterfall model. There was a very clear mandate on when this project needed
to be rolled out. Accordingly a very detailed project plan was created with
details of different phases that need to be executed with dates, deliverables,
dependencies etc.
Today all CRM green field implementations are complex
involving many semi-independent tracks having their own deliverables and interdependencies.
The current scenario I am talking about involved a program that was rebuilding
the entire infrastructure for their business partners and hence involved
development of multiple applications that were to be integrated using an identified
middleware. Also corresponding data conversion programs for sun-setting of
current systems were to be executed simultaneously. So there were multiple
tracks and teams in the program handling application development, middleware
development, infrastructure, data conversion etc. There was an intense need to
make the different teams work together as a well oiled machine with effective
communication and tracking of the dependencies.
This is where we managed to utilize Agile methodology while still
progressing forward on the milestones set by our waterfall methodology project
plan.
The most acknowledged advantage of
Agile methodology is the ability to provide tangible deliverables to the
customer in short time periods utilizing incremental releases. Here we
were no going to utilize this advantage. However another great advantage of Agile,
the ability to ensure effective communication and collaboration between
different teams and management, was what we wanted. Agile allows for effective flow of feedback,
acknowledgement and assistance between the project teams allowing for creation
of a more responsible and cohesive unit.
I will explain how we managed to do so in detail in my next
post. If anyone has similar experiences or wants to share suggestions on Agile methodology, please feel free to comment.