The best way to demonstrate the simple concept of agile development is through an example:

A few months ago I traveled to India and Thailand for my honeymoon. When my wife and I arrived to Bangkok, I decided (like many other business men visiting Thailand) to seize the opportunity and get myself a real “Armani-like” suit, tailored just for me by a local elite tailor.

We visited a number of stores that specialize in sewing suits (it seems that in Thailand most tailors and garment workers are usually Indian, Chinese or Burmese – the local Thai garment workers are too expensive…), until we finally arrived to a store we both agreed on.
When we were about to close the deal, the tailor informed us that we would have to come in the store almost every day, during the 10 day process of making the suit, for measuring and fittings.
My newlywed who has planned to pet tigers at the Tiger Temple in Kanchanaburi cried out:
“Why can’t you do all the measurements on the first day and we’ll come back on the 10th day to pick up the suit?”

“Ahhh…” answered the tailor with a smile, “and if we where to make a mistake and sew a smaller suit, or if the Mister will eat well during this week, will you still buy the suit???”
We decide to listen to our tailor, and during the next 10 days, I visited on a daily basis at his store: to start with, I was given the jacket without the sleeves, for fitting and measuring. The tailor spun around me with pins in one hand and a white chalk in the other. Later came the pants, and the day after, the jacket sleeves and then the first real fitting. Again, the tailor made adjustments, second fitting, more adjustments, third fitting… and we were happily on our way home, with a sharp looking suit. The project ended on time, at the expected budget, at the preset capacity and at the expected quality.

These are in fact the principals on which the agile methodology is based on:
- Collaborating with the client during the development process
- Dividing the project into short iterations and a checkpoint at the end of each one
- Adaptive to change (my waist line…) during development stage

Why does agile development gain such a big momentum in the development world today?

The old methodologies in software development are based on the Waterfall approach. In the Waterfall approach, during a project’s first stage, more time is dedicated to analyzing requests and requirements. From the business requirements you obtain the technical requirements and the product’s architecture.

The next stage is the Design phase, development/coding, testing and production. It’s the same way architects create a project for building a bridge for instance.

Waterfall

Agile

The reason Agile development is becoming more and more popular is because a Software Development project is more similar to sewing a tailored made suit then to a project of building a bridge:

- The requirements of a Software Development project are more likely to change frequently.

- Software development is handicraft work (ambivalently!) and not automatic or mechanized
at its most, that is why human errors (bugs) are so common.

- It is very expensive to change software that does not fit the requirements, just like it’s
expensive to change a suit that is too small for its owner…

- Software that did not arrive in the market on time becomes a white elephant, just like a suit
that was done after the client had returned home.

On my next posts I will provide a case study of a provisioning system developed by Ignite to demostrate how Agile methodology and and offshore development go hand in hand.