To spike or not to spike?

So, what actually is a Spike?

The Agile Dictionary notes that the term Spike comes from eXtreme Programming (XP). It is a technique “to explore potential solutions.”

Ward Cunningham, XP Guru, describes how the term was coined on the C2.com wiki:

“I would often ask Kent [Beck], ‘What is the simplest thing we can program that will convince us we are on the right track?’ Such stepping outside the difficulties at hand often led us to simpler and more compelling solutions. Kent dubbed this a Spike. I found the practice particularly useful while maintaining large frameworks.”

“Agile teams use the term Spike to refer to a time-boxed research activity.”

In Scrum there is no such thing as a Spike

Instead of using Spikes, Scrum Teams use Backlog Refinement to undertake experiments to confirm ideas and hypotheses, assess risks, and undertake preparatory work before a Sprint commences.

I recall one team I worked with who were aware that an Australia Post API they were using was about to deprecate some of its functions, so we sat around a computer together and ran a few pieces of code to see what the data returns looked like from the new function calls. We time boxed the activity to an hour and by the end we had a plan of attack for the following Sprint.

Should a Scrum Team use Spikes?

When coaching new Scrum Teams, I’ll find someone will eventually make some comment about needing to do a “Spike”. What they tend to mean, more often than not, is that they’re used to undertaking extensive analysis and technical design for certain types of work and so seek to add that to a Sprint. It’s behaviour left over from traditional, linear, Waterfall work and it’s designed to give people comfort that the thinking has been done before development work begins. This kind of behaviour is only natural. It makes them feel safe. But, using a Spike in this way is an anti-pattern, just like the way people often use a Sprint 0 to undertake all of the preparation normally done in Waterfall.
Spikes aren’t a bad thing when used for their intended purpose, but I don’t encourage new Scrum Teams to mix XP with Scrum. First, I like to focus their attention on just doing good Scrum. Once they’ve mastered the basics, then (and only then) will I begin to introduce more complicated agile patterns, making them aware of types of activities, such as Spikes, that can help to improve transparency of the technical aspects of product development.

Conclusions

When coaching agile teams, and someone suggests that a Spike needs doing, I now tend to use the following pattern:

  1. What does the Definition of Ready say about the preparation needed for the successful execution of a Story or Product Backlog Item?
  2. What are the current assumptions regarding the technical aspects of any proposed solution?
  3. What is the confidence (as a %) in those solutions?
  4. If the % confidence is below 80% (or whatever the threshold the team has agreed to as part of their Backlog Refinement activities), then what actions are the team going to do to increase their confidence to 80% — if an action falls into Cohn’s definition of “research”, then it can be labelled a Spike.
  5. Define the parameters of the research in the same way you would establish a research hypothesis.

spikes-pattern.png
Using this simple pattern, you can be confident that the team isn’t slipping back into old, Waterfall behaviours, and that it will add value to the delivery of your products.
M

Leave a Reply

Related Posts:

“Netiquette” for online meetings for remote and distributed teams

As with face-2-face meetings, online meetings also have an etiquette (“Netiquette”) to make them effective. One of the 12 principles of the agile manifesto suggests face-to-face is the best option but in today’s world of social distancing and WFH, it is no longer an option.

Here are the guidelines we have found useful for having for online meetings with distributed

READ MORE

22 Stances of a Scrum Master

The Scrum Master doesn’t remove impediments from the team. Their job encompasses 22 wider stances for supporting the team to self-organise to remove impediments themselves, coaching the Product Owner and coaching the wider organisation.

READ MORE

Does agility go out the window when we work remotely?

Many organisations are making guidance on what tools to use for remote teams in response to COVID-19. The situation isn’t a tools problem. This is a people problem – how can people, who are social creatures, successfully work remotely without physical interaction?

READ MORE

Copyright © Zen Ex Machina® and ™ (2019) All rights reserved. ABN 93 153 194 220

search previous next tag category expand menu location phone mail time cart zoom edit close