Skip to content Skip to sidebar Skip to footer

The Role of Enablers in Agile Development

Role of Enablers in Agile Development

In Agile development, user stories are the primary means of capturing user requirements and driving the development process. However, there’s another type of story that plays a crucial role in supporting the successful delivery of user stories: the enablers. Let’s dive into what enablers are, how they support infrastructure and exploration, and some techniques for writing effective Enablers.

What are Enablers?

Enablers, also known as technical stories or infrastructure stories, represent work that needs to be done to support the development of user stories. While user stories focus on delivering direct value to the end user, Enablers focus on the technical work needed to enable that value delivery.

Enablers can take many forms, but they typically fall into one of two categories:

1. Exploration Enablers: These stories involve research, prototyping, or proof-of-concept work needed to better understand technical feasibility or design options. Examples might include:

   – Investigate options for integrating with a new third-party API

   – Prototype a new UI component library

   – Research performance optimization strategies for a critical algorithm

2. Architecture Enablers: These stories involve building or enhancing the underlying architecture, infrastructure, or frameworks needed to support user story development. Examples might include:

   – Upgrade the application framework to the latest version

   – Implement a new continuous integration pipeline

   – Refactor a legacy component to improve maintainability

Two other types of enabler could be; 

Infrastructure – support the creation and optimization of the development and runtime environments that host the systems used to build, validate, deploy, and operate solutions 

Compliance – facilitate managing specific compliance activities, including Verification and Validation (V&V), audits and approvals, and policy automation

How Enablers Support Infrastructure and Exploration

Enablers are critical for ensuring that Agile teams have the technical foundation and knowledge they need to deliver high-quality user stories efficiently.

Exploration Enablers help teams reduce technical risk and make informed design decisions. By investing time upfront to research and prototype technical options, teams can avoid costly rework down the line. These stories also help teams build a shared understanding of technical trade-offs and constraints, which is essential for effective collaboration.

Architecture Enablers ensure that teams have a solid, scalable foundation on which to build. By proactively investing in architecture and infrastructure improvements, teams can avoid the technical debt that can slow down development velocity over time. These stories also help teams maintain a clean, modular codebase that is easier to understand, test, and extend.

Techniques for Writing Enablers

While Enablers have a different focus than user stories, many of the same best practices apply when it comes to writing them effectively. Here are some techniques to keep in mind:

1. Keep them focused and granular: Like user stories, Enablers should be small, focused, and deliver a specific increment of value. Avoid the temptation to create large, monolithic Enablers that are hard to estimate and deliver.

2. Use clear, technical language: Enablers will often involve more technical terminology than user stories. That’s okay! Use clear, precise language that will be understood by the development team. Avoid jargon or acronyms that may not be familiar to all team members.

3. Define clear acceptance criteria: Just like user stories, Enablers should have clear acceptance criteria that define when the story is considered complete. These criteria might involve code quality metrics, performance benchmarks, or specific technical outcomes.

4. Prioritize based on user story dependencies: Enablers should be prioritized based on the user stories they support. Work with the Product Owner to understand which Enablers are most critical for enabling high-priority user stories.

5. Don’t forget about testing: Enablers often involve changes to core architecture or infrastructure, which can have far-reaching impacts. Make sure to include thorough testing and validation as part of the acceptance criteria for these stories.

6. Collaborate with the whole team: Enablers often span multiple technical disciplines, from front-end development to DevOps. Involve the whole cross-functional team in the creation and refinement of these stories to ensure a shared understanding and alignment.

By following these techniques, Agile teams can create Enablers that effectively support the delivery of high-quality, valuable user stories.

The Importance of Balancing User Stories and Enablers

While Enablers are crucial for Agile success, it’s important to strike the right balance between Enablers and user stories. Too many Enablers can lead to a backlog that feels disconnected from user needs, while too few can result in technical debt and instability over time.

Agile teams need to work closely with their Product Owner to ensure that Enablers are prioritized appropriately alongside user stories. The goal should be to maintain a steady flow of value to the end user, while also investing in the technical foundation needed to sustain that value delivery over the long term.

One effective strategy is to dedicate a portion of each iteration or Planning Interval (PI) to Enablers. For example, a team might allocate 70% of their capacity to user stories and 30% to Enablers. This ensures that the team is continuously delivering user value while also making steady progress on technical improvements.

Another strategy is to tie Enablers directly to specific user stories. For example, if a team is working on a user story to add a new feature, they might also create an enabler story to refactor the code that the new feature will depend on. This helps keep the team focused on delivering end-to-end value, rather than getting bogged down in technical work that feels disconnected from user needs.

Conclusion

Enablers are a critical component of successful Agile development at scale. They ensure that teams have the technical foundation, architectural runway, and knowledge they need to deliver high-quality user stories efficiently and sustainably.

By mastering the art of writing and prioritizing Enablers, Agile teams can strike the right balance between delivering user value and investing in the technical health of their systems. This balance is essential for organizations that want to realize the full benefits of Agile at scale and deliver continuous value to their customers.

So as you continue your Agile journey, don’t forget about the power of Enablers. Embrace them as a tool for enabling technical excellence, fostering collaboration, and delivering value that lasts. And always remember, the goal is not just to build software, but to build software that makes a real difference in the lives of your users.