As a keen observer of the IT industry, I come across numerous buzzwords and phrases to describe new and improved technology products, services, and implementation methods.
In the software development world, one of the most prominent buzzwords has been "Agile" or the Agile Software Development Methodology, which enables developers to constantly assess if a project is on track through the entire development cycle.
Words and phrases like interactive and incremental, accommodative, cost-effective, faster development lifecycle and reduced project failure rate — among others — are used to sell the Agile concept. It's even been called the 'smart' methodology.
But quite frankly, Agile is just another methodology not a solution to all your software development challenges.
Let's start with iterative and incremental development where a little more is added into design and development each time more requirements are understood.
If we look closely, this nature of the Agile model combines the phases of the Waterfall model, such as, analysis, design, development and testing within an ongoing loop. It does not offer or add any new phases or elements.
A good project team should always be aware that requirements will change as they design and develop. The team should be smart enough to accommodate the changes with minimum disruption within the existing software development phases irrespective of which methodology is followed.
Agile also allows users to respond to features and review the product for changes on an ongoing basis. This is certainly a good feature but development teams often struggle to think about the bigger picture while they are busy addressing these ongoing reviews.This is because they are focused on the current agile iteration goals to avoid frequent negative feedback from the development manager or users.
Also, over-involvement of users do not always bring simplicity — it can introduce complexity as users constantly change their minds. Thus, software development 101 teaches us that there has to be a cut off point for analysing requirements or adding new features.
Add a large scale development team to this scenario and the accommodative features of Agile diminishes as the complexity overweighs the benefit.
Is Agile more cost-effective?
The cost-effectiveness of agile is also often misinterpreted. Have you noticed that the testing team is always involved as per the methodology or that the Agile coach often consumes a share of your mainstream development budget? You may also need to buy extra stationery to create and manage an Agilestory wall, as well as software to manage the Agile process. Don't forget, you also need to pay the project lead!
Is Agile faster?
Agile apparently builds faster and requires less or no documentation — far less than Waterfall.
Agile practitioners often disagree but when the methodology is put into practice, the development team struggle to keep pace and documentation suffers.
Sign up for CIO Asia eNewsletters.