With due apologies to and acknowledgement of the lyrics archive, there is perhaps no other suitable title for this post. It is a bit of a contrived co-incidence that, at a time of what I can only cutely call a “loss of faith“, I stumbled upon this blog entry and thereon moved on to an interesting thread that I’ve been (re)reading for a while. And finding slightly amusing in the current scenario.
The supreme importance of individual velocity (metrics – call it whatever you can relate to) in a certain percentage of software development companies that I have seen stems from the somewhat honest intention of providing a proper means of predictability to the software development process. If a team lead can drill down to the velocity at the individual level, the logical afterthought is that a collation of such velocities would provide the manager with an insight into progress and additionally factor in cost and time overruns. Additionally, metrics allow creation of shiny and spiffy graphs which look awesome during slidedecks which get passed around on mail. The question that is never asked is: what do those numbers mean ? A follow-up question that never gets asked either is: what does the focus on individual velocity achieve ?
Any form of software development is built around a team and any team should bring diverse skillsets to the table. Thus, the way individual tasks are approached, collaboration happens between teams to achieve a consistently high standard of project delivery are not something that gets put into the numbers crunched to arrive at a datapoint. Some random examples could be, a high-profile customer has an issue which gets resolved within a business day through a sub-optimal fix, or, the same issue taking slightly longer than a earlier time but being fixed through a level of optimal code that is high quality, consistent and coherent with existing work. Or, what is a good indicator of content quality on a content management system: the number of lines/words put in or, the number edits that increase, enhance and maintain the quality of the content. Individual velocity driven metrics more often than not sacrifice quality at the expense of quantity. Since the latter is relatively easy to attempt, the system appears to be tuned towards providing better results for people who crunch rather than people who hunker down and produce good work.
The other glaring issue with individual velocities is that in the Indian context I have seen that been used for in-house politics. And that’s where the fallacy of focus on numbers just falls apart. All I see the numbers as generally encouraging participants in the system to be dumb, not apply thought processes and thus walk-the-line. This message perhaps aptly sums up the paradox.
From what I see task driven development which is measured solely by individual velocity with compensation tied to it does in no way encourage an all-round development of a contributor to do something that is of consistently high quality and that makes a difference.