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

About the author

Related Posts:

Better together: Agile + Lean UX

How do you make Design Thinking, Lean UX, and Agile work together. Sprint 0? Design Sprints? Upfront design and planning tends to delay the delivery of value, so there must be a better way to use Scrum but also engage in discovery work at the same time without devolving into parallel design work. Integrating design, user research, and experimentation into Sprints is the key.

READ MORE

How do I run a Sprint Review?

The Sprint Review is one of five events in Scrum. It’s purpose is to inspect the Increment of work, get feedback, and then adapt the Product Backlog. And while many people refer to the Sprint Review as the “demo” or “showcase”, this is only one aspect of the Sprint Review.

READ MORE

How do I run a Daily Scrum?

Many people use the Daily Scrum to provide a status report to the Product Owner or Scrum Master, and even to stakeholders, but this event plays a more critical part in ensuring that the team continues to stay focussed on their goal and adapt their work so they improve their chance of achieving it.

READ MORE

Setting up a New Agile Team

When setting up new agile teams we have found that starting small with the basics and adding patterns as they start to develop capability has helped us get new teams up and running within 2-3 days and acheive a baseline of agile capability within 3 months

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