Friday, November 10, 2006

Agile Software Development VS Waterfall Model

Always there is an argument on what should be the best way of developing software within the time given and with less conflicts & issues on customer's requirement. My company has been adopting a 4-step enhanced SDLC methodology which belongs to waterfall model all the while. I have no comment on the result of this methodology but i can tell you what happen to one of our recent project. It was originally scheduled to be running live on around 3rd quarter of year 2006. However, it hab been delayed and the UAT might take > 6 months to finish. This project was officially started on May 2005 and part of its function/module had already been completed before that as a matter of assuring customer that we are able to work well on it. So what can you see with the current methodology applied?

Below is the excerpt from Wikipedia for the definition of Agile Software Development:

Some of the principles behind the Agile Manifesto are:

  • Customer satisfaction by rapid, continuous delivery of useful software
  • Working software is delivered frequently (weeks rather than months)
  • Working software is the principal measure of progress.
  • Even late changes in requirements are welcomed.
  • Close, daily, cooperation between business people and developers
  • Face-to-face conversation is the best form of communication.
  • Projects are built around motivated individuals, who should be trusted
  • Continuous attention to technical excellence and good design.
  • Simplicity
  • Self-organizing teams
  • Regular adaptation to changing circumstances
Suitability of Agile methods:
  • The culture of the organization must be supportive of negotiation
  • People must be trusted
  • Fewer but more competent people
  • Organizations must live with the decisions developers make
  • Organizations need to have an environment that facilitates rapid communication between team members
Criticism
  • lack of structure and necessary documentation
  • only works with senior-level developers
  • incorporates insufficient software design
  • requires too much cultural change to adopt
  • can lead to more difficult contractual negotiations
Agile Methods: