December 18, 2009

Don't let Agile Beguile !

December 18, 2009 Posted by Vijay , No comments
I have been more than curious as to why Agile methodology is so sought after in software development. With very little knowledge on the thought and the process behind it, I could well be misinforming my far and few in between readers.

As the name suggests, the need of the hour is fast paced development. And agility in any form can always bear rich dividends. When it comes to business, the benefits are manifold. So it is no surprise that there is a constant push for an Agile model of project execution in software development. To put it simply, Agile methodology lays emphasis on incremental, iterative software development with rigorously frequent reviews between all the project resources. The pretext for the push for Agile is the rapid progress in each of the phases of a typical SDLC.

Imagine a scenario when the requirements gathering is going on, and simultaneously the design also is kickstarted. Typically in a sequential development project, the development team would wait until the requirements from the customer are frozen. Once this is done, the design and implementation starts. Thus, a project which is simple and has medium complexity would need, say 6 months from start to end. But with Agile, the end objective is to do parallel activities starting from requirements till the end.

There won't be any lag time which will mean less idle resources and reduced project costs. There will be higher and more efficient utilization of the resources, owing to frequent and constant reviews, scrum meetings and so on. It is rapid development process, with high emphasis on peer programming. It will certainly be a common sight to have requirements gathering going in tandem with design or coding phase.

The advantages of the Agile methodology in my personal view are:

Higher productivity and utilization.
Focused implementation cycles
Rigorous review processes
High quality deliverables
Faster project execution cycles
Business Profitability

However, I would like to play devil's advocate here and review the Agile methodology. Though the advantages are very enticing for any customer or business, there is a definite short sightedness that Agile brings along. In the race for bettering the present, there is a lurking danger of ruining the future. The most startling aspect that Agile fails to address is knowledge retention. With the pace of development and implementation, there is always the danger of quality in documentation. The final product or application might be extremely good and efficient. But, the level of documentation does tend to get compromised.

The other aspect around knowledge retention is retaining the resources themselves. Since there is excessive involvement in terms of meetings and reviews, almost all the knowledge is with the resources which is not documented either. Especially in the Indian IT industry scenario, where attrition levels can be quite high, the risk of losing a knowledgeable employee can hurt the long term prospects of a project. As a result even the engagement with the client could be in jeopardy. The mitigation plan for this could be augmenting the resource pool in the project in the event of attrition. This would however mean more resources in the knowhow of the project, while still managing any attrition risks. The flip side is obviously higher project costs owing to wages for the excess resources.

Where there is a challenge or a concern, there is always an opportunity as well. A majority of clients, who outsource IT work to Indian IT players, are pressing for Agile project execution these days. Since outsourcing is the prime business model, Indian IT players have to oblige and gain business. But there is always a value proposition that the IT firms can suggest by highlighting the risks around the Agile model. A simple suggestion can be, to have a role for each Agile project of that of a scribe. A project scribe will be party to all the technical, functional and client discussions and would have the prime responsibility to document notes and circulate amongst the project team. This will ensure knowledge retention and efficient knowledge base creation within the project. This will certainly mitigate attrition risks, because a certain level of knowledge is being documented anyway.

Likewise, technology should be used and invested more aggressively when rapid paced discussions happen. Methods such as recording meetings, either visual or audio should be encouraged and followed diligently. This would serve as a means of knowledge retention, as well as a knowledge base for reference purposes. Such suggestions and ideas will enhance client confidence and in turn bring in more business.

I am not experienced enough to either validate what I have mentioned in my post, or elaborate more. But, what is certain about Agile is a rising level of short sightedness which can be detrimental to the business in the long run. While one should certainly encourage and adopt newer business models, there is always an opportunity around the challenges that such a model can likely pose.