Design Pattern: Multi Key Lock (aka AND condition)
2016-06 | **** stars
Tech Bytes: Unravelling the Stack
2012-06 | **** stars
Review: The 'Dabangg' Debacle
2010-10 | ** stars
Outer Space, Inner Space
2008-10 | *** stars
Pride and Prejudice
2008-10 | ** stars
War of Emotions
2008-10 | ** stars
Team Psychology
2008-10 | *** stars
Dance of Emotions
2008-09 | ** stars
A Common Dilemma
2008-09 | ** stars
SQLite: A Truly Open Source Endeavor
2008-07 | ** stars
The 'IBCD' Face of New India
2008-06 | *** stars
Subtle Confessions (of my friends)
2008-06 | *** stars
(Fr)Agile Software Development
2008-06 | ***** stars
Is Microsoft past its glory
2008-05 | *** stars
Feminine Traits
2008-04 | ***** stars
Problem in Paris
2008-04 | *** stars
Book Review: Why Men Don't Listen and Why Women Can't Read Maps
2008-04 | **** stars
Managerial Traits
2008-03 | **** stars
Idol Worship
2008-03 | ** stars
Be Natural = Be Different
2008-03 | ** stars
The Scariest Moment of My Life
2008-03 | **** stars
Powered by Attitude, Driven by Hormones?
2008-02 | **** stars
Tech Bytes: Memory Loss in Java
2008-02 | ** stars
If Software Developers built an Airplane...
2007-11 | ** stars
The Wild Goose Chase
2007-10 | ***** stars
Developers are from Mars, Testers are from Venus!
2007-10 | *** stars
Tech Bytes: 'Resurrecting' Objects in Java
2007-09 | *** stars
Democracy - The Biggest Hoax of Modern Times
2007-09 | ** stars
Atomic Architecture
2007-08 | **** stars
Carefree Software Development
2007-08 | ***** stars
Taj Mahal - A Beautiful Scar
2007-07 | *** stars
Performance based Evaluation - A Review
2007-07 | ** stars
Author: Kiran
• Saturday, June 07, 2008

Having worked for more than a year in an environment ‘infected’ by Agile virus, where dogmatic managers don the role of Agile evangelists, preaching the Agile religion – blessing the faithful souls and forcibly converting the other hapless infidels, I have come to believe that Agile is not the way to go; for, the reasons are one too many. Wary that I might incur a curse from the Agile priests, I venture out to indulge in blasphemy.

Agile is all about developing software iteratively, with iteration spanning a few weeks and involving the whole community (clients, who consume the deliverables, testers, documentation writers, UI designers…), throughout. Making frequent deliveries is meant to add value to the customers and somehow enable you to deliver in ‘Internet Time’. Further, it would also enable the team to cope with changes in requirement, and in minimizing the risk.

No Panacea
This is like the software development conundrum has been cracked; “Software development is easy! Huh?” Perhaps, they have happily forgotten or never heard about the ‘No Silver Bullet’ prophecy.

Of course, the whole idea seems noble. But, that iteration thingy is nothing but a small project in itself – starting from requirements and design, to coding and testing, and making a full-fledged release (with all that bureaucracy involved). It does make life more miserable, for one has to bear the stress that is involved with an official release. It is much more than just checking in code, and running some test scenarios.

Mad rush
Quicker releases need not necessarily imply qualitative releases. To satiate the ever-demanding customer and the greedy management, iterations are packed with new features to be delivered; and, resolving bugs take a back seat. Again, the hapless developers come under heavy pressure.

It is a mad rush out there. These companies have become factories producing sprinters that are just happy to run, and run faster. The only purpose of their existence is achieving the iteration milestones. Nobody has enough time to mull over various design alternatives, let alone writing a spec. At any point of time, a kind of reply would be “Well, that is how it would eventually be, an independent adaptor. But, for the current milestone, such a dependency would be acceptable. We are yet to figure out how to realize interaction with such an adaptor”. Things are never in a reasonably presentable shape.

Chaos Reigns
Come next milestone, the whole idea would have changed. Adaptor concept is now replaced with a full-fledged pluggable framework - A new layer of abstraction that is generic; for, it can allow third party tools to plug in as well. Isn’t that cool? Obviously, this means, trash all that you have done until now and write more code for this coolest feature. Yeah, you are privileged enough to be working on coolest framework!! Needless to say, this would eat away few more milestones in the schedule. In bigger projects, such scenarios show up almost every milestone, messing up the whole thing. Chaos rules!

Couple this style of development with globally distributed projects, and it’s an implosive mixture, capable of bringing down the project or transform it into a treacherous beast. Of course, each of these sites would like to be credited with the delivery of the coolest feature, and on time. There is more to it; teams are keen to prove they are worthy and that they can design ‘independently’. Why else do they need those fancy-titled architects for? Yet, nobody has that single big picture. All in all, the conceptual integrity takes a beating. Naturally, the seamless user experience or quality of product suffers.

There is every chance that one of those Agile bigots around might stumble upon this article. Fearing that, they would barge in anytime, fully armed, and that I have incurred their wrath, am reserving the rest of my Agile thoughts for some other time.

Shhh!! Time to put on that Agile-loving mask and wear a friendly smile! :-)
This entry was posted on Saturday, June 07, 2008 and is filed under , , , . You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response , or trackback from your own site.

1 comments :

On 10 June 2008 at 18:59 , Pranam said...

I agree to your points. But one good thing that comes out of Agile is everyone (at least the developer) understands the status of the project. I raise my "impediments" in scrum. I make sure others know where I stand instead of assuming that I will fix the problem.