{{blog.title}}
{{blog.date}} | {{blog.stars}} 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! :-)
Author: Kiran
• Saturday, July 21, 2007
It is an increasingly competitive world. And, competition knows only one direction - Northwards.

Global business is a crowded place. With companies vying to gain a bigger share of the pie, they are definitely feeling the heat. 'Innovate or die' is the new mantra. It demands that the companies have to perform better and constantly improve. This heat has nowhere to go, but upon its (hapless) workforce - till the grass roots of the corporate 'food chain'. They leave no stone unturned in trying to squeeze out that last drop of performance from its people. 'Better' people get the 'Carrot' while the others get the 'Stick' (Carrot and Stick principle). Naturally, people stretch themselves to get the 'Carrot'. Darwin's theory 'Survival of the Fittest' applies equally well in today's corporate world - be it organizations or its people. No doubt, this serves to bring the best among people and organizations. However, it is not without drawbacks. Here are a few things that I can think of.

Team vs Individual
An interesting, but conflicting thoughts, are at work, constantly. While the organizations understand that gone are the days of individual brilliance; 'Team Work' is the new mantra. However, at the same time, the individual contributions could not be condoned. It is indeed a tight rope walk - a delicate balancing act that many organizations falter upon.

Some managers go to extent of glorifying their 'so-called' top performers. There are instances where these pampered 'demi-gods' get so inebriated that they stop heeding to fellow team members (and perhaps, even abuse them). In contrast, when the organization downplays an individual's contribution, it is not a healthy scenario either. There is always the risk of them getting demotivated.

Unfortunately, the (majority of the) corporate world has failed to strike a right balance.

Forcing your own Talent Landscape
Many organizations have a some sort of performance evaluation process in place, which is revised and 'upgraded' every few years. It is more likely that they copied it from other successful companies or from one of those management books. Invariably, people are rated on a scale of, say, 1 - 5 or A - E, or something like that. The criteria used to measure is equally rigid - "Deliver quality work on time" or "File 100 patents this year!!".

It is a known fact that every individual comes bundled with a unique set of attributes (which we call 'Talent'). This inherently implies that performance is a Relative phenomenon. Add to it the varying circumstances that people and organizations go through. Measuring performance is not just difficult, but volatile too.

Having said that, it is rather difficult to employ a 'standard' procedure to measure a 'volatile' thing. Also, the rating you receive is one of the criteria that determines your bonus, increment and other perks. Further, some companies try to fit its people into a pre-defined geometry - The Bell Curve. This puts a cap on the number of people in a given category, thereby forcing the shape of the talent landscape in your organization. For god's sake (rather, company's sake), why don't they just accept the natural landscape that exists, and help it evolve.

1. This methodology only serves to generate unsatisfied employees - those who thought they would make it, but narrowly missed. They are likely to start updating their resume!.
2. Another important but subtle thing that often goes unnoticed (by managers) is that it is sometimes really unfair. As Joel writes in his article,
"... For example, one friend of mine was a cheerful catalyst, a bouncy cruise director who motivated everyone else when the going got tough. He was the glue that held his team together. But he tended to get negative reviews, because his manager didn't understand his contribution. Another friend was incredibly insightful strategically; his conversations with other people about how things should be done allowed everyone else to do much better work. He tended to spend more time than average trying out new technologies; in this area he was invaluable to the rest of the team. But in terms of lines of code, he wrote less than average, and his manager was too stupid to notice all his other contributions, so he always got negative reviews, too. Negative reviews, obviously, have a devastating effect on morale. In fact, giving somebody a review that is positive, but not as positive as that person expected, also has a negative effect on morale."

Conclusion
Well, the question to be asked is that: Is the modern corporate world mature enough to evolve a better performance evaluation system? Will we ever discover it?
The moral of the story is: Do not take such ratings too very seriously, for it might not be what you ought to do. As Steve Jobs says, "You Have Got to Find What You Love".