web developer & system programmer

coder . cl

ramblings and thoughts on programming...


agile is dynamic

published: 11-11-2011 / updated: 11-11-2011
posted in: development, programming, projects, tips
by Daniel Molina Wegener

Agile methods require the same effort than other methodologies. The fact that you usually do a better job because you can handle requirement changes dynamically — instead of handling requirement with a strict development process, that stops your development on each milestone that suffers changes in the requirements — and allowing you to deliver good software with proper milestones and letting the customer to know how is being developed each component. All those features of agile methodologies does not mean that you will work less than using other methodologies.

Agile is useful with that kind of customer that can provide you early feedback and works closer to you and the development process. Strict methodologies, like CMMI, are useful once the requirements cannot change along the development process. Since CMMI and related methodologies have a very strict documentation normative, you must update each document along the development process, and usually falling in re-induction of the project requirements. So, you must recover time, assigning more developers to complete the project milestones, or paying for overtime.

Once the customer understands that he must participate of the development process, delivering early feedback and giving his opinion to the product owner, you will not be unoccupied. The customer finally will provide you enough tasks to be very busy if he is really interested on the software piece that you are developing. The difference is the fact that you will not waste your time developing software pieces twice, because you will be receiving the feedback that the product owner — who plays the analyst role receiving the customer requirements directly — on each piece that you complete.

So, being agile is not relaxed, just is more optimal to handle requirements dynamically, allowing you to often react over requirement changes. So, you have fixed milestones and small ones to complete, where each sprint or milestone should represent a deliverable product with feasible goals to complete, with less components than the final product, but a deliverable product with tested and proven pieces that are approved by the customer or the product owner. There is not surprises in the final product, because the customer knows how is being development his requirement.

Agile is more evolutionary than cascade model. You will be delivering software pieces constantly, but finally you will be free from doing overtime and paying more for unhandled requirements. Requirement implementations are often reviewed by your product owner, and the customer itself, so you cannot deliver the wrong software piece.


one comment to “agile is dynamic”

  1. You’re a real deep thinker. Thanks for shanrig.

post a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>