Need for speed

Need for speed

Time is money

With the ever-increasing rate of change, there seems to be a craze for measuring and improving velocity for agile teams. After all many switched for the promise of "twice the work in half the time" in the first place.

Here is some empirical data about how quickly can a unit of work be done and whether or not that “velocity” changes with the duration over which the work needs to be done. Although machines can cover repetitive work at constant velocity, human beings cannot, based on this empirical data. In the following diagram, focus on the nature of the information (i.e. curve type, relative values) rather than absolute values (as the data is averaged over technologies, periods in time, team sizes and industries/domains).

No alt text provided for this image

Time value of money

What this shows is that work over small duration can be done comparatively quicker by humans – this could be because new things are exciting/motivating. It could also be because if something is for a shorter time horizon, quality may have been compromised as the consequence of poor quality disappears quickly (think about paper plates vs fine china, or use-and-throw vs pass-down-generation). However, as soon as the work horizon tends to expand, things seem to take longer and longer. Again this could be because work becomes boring or more time is invested in ensuring long term durability of the end result.

There is an additional complexity in software when working on the same element (i.e. a product or platform that is enhanced over years and years) – technical debt starts to accumulate. New changes become harder to implement, until the platform is classified as legacy and a replacement is brought in place. Most likely with a significant paradigm shift.

Project vs product/platform

The following diagram gives you an overview of where projects (i.e. work with fixed scope limited in time) vs products/platforms (i.e. work with an open ended scope and time) live on this spectrum:

No alt text provided for this image

As you can see, projects have a shorter horizon of investment in the result, a product/platform has a longer horizon. In a project context, you are incentivized to meet a certain point-objective (i.e. at end of project) whereas products need longer term commitment and investment.

Houston, we have a problem

The problem, as-is evident in the pictorial view, is that management looks at theoretical benchmarks over one set of conditions and applies the benchmark under a different set of conditions – then they are frustrated why agile is not faster.

No alt text provided for this image
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. - Agile Manifesto

The general observation is that a team’s average velocity will depend on the scale of operation. While theoretical maximum can be met over shorter horizons, a stable velocity over long periods of time may be somewhat slower than the theoretical maximum. This is why:

  • Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. (Agile Manifesto)
  • Scrum is a framework for developing, delivering, and sustaining complex products. (Scrum Guide)
  • Scrum is used to develop and sustain Cloud (online, secure, on-demand) and other operational environments for product use (Scrum Guide)
  • Scrum is used to sustain and renew products (Scrum Guide)

OK - what then?

This is where advancement of engineering processes and tools come in. The objective of improving engineering processes and practices is to see if any of these help in improving average velocity over longer time horizon. It is no surprise that that automation and CI-CD are so popular within agile teams. For example,

  • By automating all tests, regression tests can be completed automatically (i.e. without the team’s active intervention) so that it does not take incrementally bigger time for the team to validate that new change has not destabilized existing feature. You will then be able to maintain a constant pace over time. Else (i.e. we have no time/budget/skill for automation), with every iteration that you bring in, the overhead of validating that past features work will be so high that you will not deliver enough value. Eventually, someone will decide to skip the validations and also eventually something will actually go wrong in live environment. The solution would then end up being not using agile and going back to waterfall (because you cannot manually validate everything once every 4 weeks - you can only make such an investment once every year)!
  • By following modular design and coding approach (i.e. services/microservices and APIs), functionality can be kept segregated and interfaces clean so that changes can be contained – both for analysis, build and test … and so on.

When you can implement practices that align with the principles and you can articulate the change within your team, adoption will become easier - transformation will not be a dream. Everyone can understand why velocity is not sustainable without these practices and processes and how they can help you meet the underlying objective.

Disclaimer

Although I strongly believe in sustainable development, the data that I have used to make my points are not from IT development at all. I apologize for leading you on. The conclusions still stand.

The data that I had used handle some elements of being able to sustain a velocity over different horizons. See the original data below.

The X-axis is the distance in metres for a race – starting at 100m and then going on for 200m, 400m, 800m and so on until 100km! The Y-axis is the average of the best time (i.e. world record) taken to complete 100m in that race. For example – the world record for 100m is 9.58s. The world record for 200m is 19.19s – so the average time to cover 100m was 9.6s.

No alt text provided for this image

Source data: https://www.iaaf.org/records/by-category/world-records

The picture shows that while we can see some astounding times over short distances (100, 200, 400m), things start to drop gradually until it stabilizes at about 18s for every 100m (almost half the velocity if the race was only 100m). If we are looking to run the marathon (i.e. products and platforms), we cannot compare with the benchmark of short distance races (projects). This is true in every discipline of sport where a single instance of the sport is played over very short to very long span. Another example of such variability can be found in the game of cricket (runs scored per 100 balls) which can be played over as short as a couple of hours to as long as 5 days.

Its time for us to learn from other disciplines as we do not have time to make all of the mistakes ourselves!

To view or add a comment, sign in

More articles by Tapas Mishra

  • House of cards

    The beast is unleashed I try to follow Mike Cohn's posts and tips reasonably regularly. His most recent post caused a…

    1 Comment
  • Look in the mirror

    As we enjoy our summer holidays, it would be a good time to reflect on the year so far and assess ourselves – how did…

  • Means to an end

    Introduction I have had the opportunity to observe many teams at close quarters trying/doing/being agile. Apart from…

    5 Comments
  • Run Lola Run

    Introduction As I was teaching a beginner’s course for agile, I was trying to understand why the team wanted to do an…

    3 Comments
  • Decision-making and agility

    A racing context Formula 1 is a very competitive car racing series. Over a lap, approximately 5 – 6 km depending on the…

  • A knotty problem

    I am/was a bit perplexed about the usage of blockchain. In theory, it is “cool technology” and it obviously works (at…

  • Experimentation using feature toggles

    Why experiment? One of the core principles of being agile is to be able to inspect and adapt. When multiple, apparently…

  • AWS Public Sector Summit, Brussels 2019

    The AWS Public Sector Summit (https://aws.amazon.

  • What is your team's color (and shape)?

    T-shaping for agility It is not only nice to have T-shaped team members for teams aspiring to be agile, it is essential…

    13 Comments
  • To do or not to do ...

    Foreward I recently read an opinion which stated that in contexts where agile is “adapted” it has proven to be more…

    1 Comment

Explore content categories