Velocity a misnomer – Implications for agile software development

June 2, 2014 at 2:09 pm | Posted in Best fit Agile, Blogroll, Out of my mind, Real-life experiences | Leave a comment

I saw a news item yesterday about freight train movement between Mumbai and Delhi. It has only one stop at Vadodara in the total distance of around 1400 Km. The track ahead is kept free to ensure “Sustained pace”. This reminded me of my childhood days spent in a railway town. The primary mode of travel for us was the trains, and I still remember the poor goods train waiting patiently in a loop line while a mail train thundered by.

Over all these years, both the throughput and velocity of freight trains have substantially increased. The freight train mentioned in the news is two KM long and carries substantially greater weight from origin to destination. It also moves in an “Expedite” mode in preference to other trains. The terms sustained pace and expedite that came to my mind shifted my attention to agile software development, and I started thinking whether the way we use “Velocity” is correct. Isn’t size delivered per sprint a measure of throughput rather than velocity? I looked up the definition of velocity and found that it is “The rate and direction of the change in the position of an object”. It is closer to speed than throughput.

That shifted my attention back to trains. A passenger train which stops at every station and an express train stopping at only the major stations may carry more or less same number of passengers (throughput), but they cover the same distance in substantially different times (velocity). A passenger train might attain, for a brief period, speed similar to an express train. But its average speed is much lower because of, not only the waiting time at the stations, but more so because of the frequent acceleration and deceleration involved.

This explains why there is so much importance given in agile for a team to take up only a few items at a time, and take up additional items only when those in hand are fully “Done”. Unlike the trains which follow physical laws, agile teams made up of humans have an additional challenge. Once our attention is diverted to something else, it takes time and effort to switch it back to what we were doing earlier. In addition the information we used might have also become stale in the meantime. So if the agile teams want to achieve high velocity and maintain it, they should be aware and manage the number of items being worked on at a time.

I also remembered that when I was waiting in a passenger train for an express / mail train to pass, sometimes the wait was quite short while at other times it was considerably longer. This was because of the dependency on the time at which the higher priority train would pass. And we had no information when that would happen. Agile encourages transparency. A perfectly flat transparent glass allows a viewer to see on the other side very clearly. Similarly, all those involved in any work should have the information, without filtering or distortion, when they need it. Agile processes and tools provide high degree of transparency, and it is for us to make sure that it remains so.

Another way to minimize the harmful effects of dependency is with enhanced and effective collaboration. When cross-functional team members work on the same item, speed and quality with which it gets completed is phenomenal. Hand-offs are the worst enemy of velocity.

In earlier days, there were single tracks between two stations. This resulted in only unidirectional movement at a time. The other train had to wait at the station. Presently with parallel tracks in both directions this is not an issue. Hence in agile we should think of velocity (a vector) and not just speed (a scalar). Rework moves in the opposite direction to the normal work and slows it down considerably.

There is a saying “Words make the world”. We should not mix throughput and velocity or use one in place of another. Commonly used words package lot of information and meaning with it. More importantly, the words also package the emotions. A mere mention of such a word starts the train of thoughts and images associated with it, and recreates the emotions involved as if they are being experienced now. Wrongly using the velocity when we actually mean throughput deprives us of the immense benefits mentioned above that can make our work simpler and life easier.

Advertisements

Leave a Comment »

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.
Entries and comments feeds.

%d bloggers like this: