Wednesday, November 19, 2008

Agile vs. Waterfall

Starting from the first day dealing with system development, Ive been involve with various type of things that require new knowledge. And now im adopted with this two development model and I would like to share the experience with all of you about analysis by the models.

Benefits of Each Model

Waterfall:
•Sets expectations up front for cost, schedule.
•Requirements must be validated and exit criteria must be met before proceeding to next phase.
•Customer can focus on other things in the meantime.
•“Measure twice, cut once”means less potential for rework.

Agile:
•Continuous delivery and feedback cycles (iterative and incremental development).
•Changing requirements are welcome.
•Early testing and continuous integration.
•Customer collaboration and acceptance of each feature as it's developed.

Gone Bad of Each Model

Waterfall:
•Oversights and flawed design don’t become apparent until the end
•Testing at the end introduces more risk
•“We must be done testing because the ship date is today!”–the Testers
•“Just document a work-around. I’m already on another project and don’t have time to fix this.”–the Developers
•“This is what I asked for, but it’s not really what I want.”–the Customer

Agile:
•Mini-dictatorships
•Death marches to meet iteration commitments
•Lack of automated testing means that “potentially shippable”could translate into “potentially a big buggy mess”
•Cowboy coding
•No documentation whatsoever
•“You’ll get it when you get it.”–the Team
•“You’re self-organizing—you figure it out.”–the Project Manager


For me both of model have their own functions, depends on the project and the way we manage. Some common themes that always let the system go wrong is:
•Communication failures
•Lack of proper testing
•Lack of training


“The discipline dealing with what is good and bad, and with moral duty and obligation”
-Merriam Webster definition

0 comments: