Magpie develops software solutions for a variety of clients. When we secure a new client project, it requires a lot of learning to understand the project domain, legacy code, project tool chain, and other project technologies. Since we run our projects via agile methods, much of this learning is captured in task cards called “Spikes”.
Since our business success depends upon our ability to ramp up quickly, we have to make sure to work these spike cards efficiently so we learn quickly.
Here’s what we do:
- Discuss Spike tasks during our task breakdown of a story in detail. What is the goal of this spike? What are the outputs? How will we communicate the information we find to the team?
- Time-box the Spike. It is very easy to spend extra time on spike cards as they are learning tasks. Developers love to learn…which causes some to spend more time on spikes than necessary.
- Speed!- Since delay is waste in software projects, the time it takes to do all the spikes can greatly impact the project success. Figure out ways to go through the learning process quickly. Maybe you need to take a class, or bring a class on-site, or hire a consultant who is an expert in what you need to learn. The cost for classes or consultants can easily offset the cost of the learning effort and the delay caused by the learning time.
- Partner! We often will partner (pair) our developers with client developers that have expertise in the domain and project tools and technologies. Reduces risk and speeds up the program.
- Make sure to communicate the learning to the whole team, not just the person who did the spike. Everyone needs to know.
In summary, spikes represent learning that is required and represent risk in your project. Manage that risk by managing your spike cards carefully.