The Palos Publishing Company

Follow Us On The X Platform @PalosPublishing
Categories We Write About

Best Practices for Technical Spikes

A technical spike is a type of research or exploration activity aimed at gaining the necessary knowledge to make informed decisions regarding a particular aspect of a project. It’s a term widely used in Agile and Scrum methodologies, particularly for addressing technical uncertainties or challenges that arise during the development process. These spikes help teams evaluate potential solutions, identify risks, and ultimately determine the most effective way forward. However, conducting a technical spike is not a free-for-all; it needs to be structured and deliberate to be valuable.

Here are the best practices for managing and executing technical spikes effectively:

1. Define the Purpose Clearly

Before jumping into any technical exploration, ensure the spike has a well-defined purpose. This includes understanding the problem, the uncertainty, and what specific knowledge or validation the spike aims to achieve. Without clear objectives, the spike can become aimless, wasting valuable time and resources.

For instance, if you’re investigating a new technology, your purpose could be to determine if it’s suitable for integration into your project or if it can scale efficiently under the required load.

2. Set a Time Box

Spikes are time-boxed, meaning they are given a specific amount of time within which to produce results. Setting this time box ensures the team doesn’t get lost in endless experimentation, and it encourages focus. Typically, the duration could range from a few hours to a few days, depending on the complexity of the issue.

A time box allows for faster decision-making and keeps the team from veering off track with over-research or over-optimization.

3. Limit Scope to Key Areas

It’s easy for a spike to spiral into a broad and unmanageable investigation. To prevent this, narrow down the scope to the most critical aspects that need exploration. Prioritize the highest risks or uncertainties related to the project.

For example, if you’re testing a new database, rather than testing every feature, focus on its performance under your expected workload and its compatibility with existing systems.

4. Identify Clear Deliverables

Every technical spike should have measurable outcomes. These deliverables could include findings, proof of concepts (POCs), benchmarks, or documented technical constraints. The idea is to produce something that directly informs the next step in the project.

For example, the deliverable could be a detailed comparison of two frameworks, indicating which one better meets the team’s performance and scalability needs.

5. Document Findings Regularly

As spikes usually involve research and experimentation, it’s essential to document everything, especially insights gained along the way. This documentation can help future team members avoid repeating the same research and can serve as a reference when making future decisions.

This documentation should include:

  • What was tested

  • The results of each test or experiment

  • Any trade-offs identified

  • The pros and cons of different approaches

  • Potential solutions or directions for further investigation

6. Involve the Right Expertise

To ensure the spike is effective, involve individuals with the necessary expertise. This might not always mean the entire team is involved, but ensure the right people, such as senior developers or specialists, are consulted. A spike often requires deep knowledge in specific areas, so leveraging experts can make a significant difference in the quality of the results.

For instance, if you are evaluating cloud services, you might want cloud architects or DevOps experts involved, rather than general developers.

7. Revisit the Spike Results Regularly

Once the spike is completed, the results shouldn’t just sit in a document. Revisit the outcomes in team meetings and incorporate any key findings into the project planning. This ensures that the effort put into the spike translates into real, actionable insights.

Revisit the results in review sessions or sprint planning meetings, and discuss how they affect the product roadmap, features, or architecture.

8. Evaluate the Outcome Against the Original Problem

After the spike concludes, assess how effectively the outcome addresses the problem. Did the spike answer the questions it set out to? If not, was the time box sufficient, or should a follow-up spike be planned? This reflection is important for continual improvement in the approach to technical spikes in the future.

9. Don’t Use Spikes to Avoid Decisions

A common pitfall of spikes is using them as a way to delay decision-making, especially in a high-uncertainty environment. While spikes are meant to explore unknowns, they shouldn’t become a procrastination tool for decision-making. Make sure the spike is leading towards actionable results, not just endless exploration.

If you find yourself continually deferring decisions to future spikes, it might be a sign that the problem isn’t well-defined or the team is avoiding risk-taking.

10. Avoid Overengineering the Solution During a Spike

The goal of a spike is to gather knowledge, not to deliver a polished, production-ready solution. Spikes should aim to validate ideas and explore alternatives. Overengineering during the spike can lead to wasted time and unnecessary complexity, especially when the technology or approach may ultimately not be used in the project.

For example, if you are testing a new framework, focus on setting up a simple proof of concept that answers whether the framework works in the given context, not a fully functional feature built with it.

11. Collaborate and Communicate

Spikes should never be done in isolation. Collaborate closely with the team throughout the process to keep everyone informed and involved. Open communication ensures that findings are shared in real-time, and if anything goes off course, adjustments can be made sooner.

This also helps to ensure that any results or insights gained during the spike are shared with all relevant stakeholders, which can include product managers, designers, and even marketing teams, depending on the nature of the spike.

12. Follow Up with Concrete Next Steps

Once the spike is completed, take time to plan the next steps. This could include:

  • Proceeding with the chosen solution

  • Identifying a need for further spikes to dive deeper into other aspects

  • Developing an action plan for implementing the findings

By establishing a follow-up process, you ensure that the spike results are applied strategically, contributing directly to the project’s success.

13. Review Spike Results with Stakeholders

To close the loop, review the findings with stakeholders to align expectations and confirm that the results meet the needs of the project. Stakeholders may include project managers, business analysts, or even clients. Their input can validate whether the spike results are practical and aligned with project goals.

Conclusion

Implementing technical spikes in a structured way can bring great value to an Agile team. When done properly, they reduce uncertainty, help manage risk, and ensure the team is making informed decisions based on facts, not assumptions. By defining clear objectives, limiting scope, documenting findings, and communicating with the team, technical spikes become a powerful tool for navigating the complexities of development.

Share this Page your favorite way: Click any app below to share.

Enter your email below to join The Palos Publishing Company Email List

We respect your email privacy

Categories We Write About