5. Agility in Practice – Part 2
Now that we've discussed foundational aspects of agile methodologies like Scrum and Kanban, it's time to dive deeper into practical applications of these frameworks in real-world scenarios. In this section, we’ll look at strategies for optimizing workflows, improving team productivity, and enhancing communication in agile teams.
1. Identify Opportunities for Improvement in Your Workflow
One effective approach when entering a new team or organization is to evaluate the current workflow and ask some key questions:
- Are we planning effectively? Is there a clear mechanism for setting priorities?
- Is the work transparent? Can everyone easily see what tasks are being worked on?
- Do we have ways to reflect and improve? Are there regular moments for reflection, like retrospectives?
- Are we managing dependencies with other teams? Is there a process for addressing and resolving external dependencies?
- Are we clear on what is most important? Is prioritization clear and well communicated?
These questions will help you map out the team’s workflow and identify areas that need attention. Visualizing these workflows using tools like Jira or Trello is a great starting point to see the flow of tasks and understand bottlenecks.
One useful tip is to create a matrix of objectives for each interaction or meeting within the team. For example, the planning meeting might focus on prioritization and alignment, while a customer forum might be more about discussing actions and results. If any meeting doesn’t have a clear objective, it’s likely a candidate for removal.
2. Conduct Regular Retrospectives
To ensure continuous improvement, regular retrospectives are essential. These sessions should focus on:
- What brought us here?
- What obstacles did we face?
- How can we improve the process?
- What risks should we consider?
By reflecting on these questions, you can identify opportunities for change and better understand the context of the team and the current workflow. Even when joining a new team, conducting a retrospective in your first week can provide valuable insights into what’s already working and where improvements are needed.
3. Apply the STATIK Model
One effective approach to optimizing workflows is using the STATIK (Systems Thinking Approach to Introducing Kanban) model, which involves five steps:
- Understand sources of dissatisfaction: Talk to team members to identify what’s not working.
- Analyze types of work: Classify tasks by type, such as features, defects, risks, and technical debt.
- Understand the workflow: Map out how different types of work flow through the system.
- Prioritize work: Establish clear criteria for prioritizing tasks.
- Prototype a new system: Create a visual system to manage and optimize the flow of work.
By understanding the team’s current dissatisfaction and refining their workflows, you can make incremental improvements that respect the current structure and culture.
4. Measure and Optimize the Workflow
Effective agile teams rely on metrics to understand their productivity. Three key metrics are:
- Lead Time: The total time from when a task is started to when it is completed.
- WIP (Work In Progress): The number of tasks being worked on at any given time.
- Throughput: The number of tasks completed in a given period.
By tracking these metrics, you can analyze the team’s workflow and identify areas for improvement. For example, if WIP is too high, the team may be spreading itself too thin, leading to delays. Limiting WIP can help maintain focus and ensure tasks are completed more efficiently.
Using graphs and charts to visualize these metrics is crucial. For instance, a WIP aging chart can show how long tasks have been in progress, helping you identify which tasks are at risk of becoming stalled. A lead time scatterplot can provide insight into how long different tasks take, offering a way to predict future delivery times based on historical data.
5. Describe and Classify Work Effectively
To ensure that tasks are well understood and easy to manage, it’s essential to define them clearly. When describing tasks, include:
- Context: Why is this task needed?
- Acceptance Criteria: What conditions must be met for the task to be considered complete?
- Objective: What is the goal or impact of completing this task?
For example, an epic might have the context of allowing customers to update their address through an app, with the goal of improving the user experience and reducing call center workload.
Using frameworks like User Stories ("As a customer, I want to [action] so that [outcome]") or BDD (Behavior-Driven Development) ("Given [context], when [action], then [expected result]") can help ensure clarity and alignment across the team.
6. Use Percentile Analysis to Manage Lead Time
One valuable tool for managing lead time is percentile analysis, which can help predict how long tasks will take. For example, if 95% of tasks are completed within 15 days, you can confidently predict that most future tasks will follow a similar pattern. This allows the team to answer the classic question, “When will it be done?” with greater accuracy, while also considering the risks associated with deadlines.
7. Analyze Throughput and Value vs. Failure
Throughput is another critical metric that shows how much work is being completed. It’s essential to break down throughput by type of work to see whether the team is spending most of its time fixing bugs or delivering new features. This can reveal if the team is "firefighting" rather than delivering value.
A useful metric here is the percentage of value vs. failure. If a team is spending 95% of its time fixing failures, it may indicate deeper issues with product quality that need to be addressed.
Conclusion
To sum up, here are the key takeaways for applying agility in practice:
- Visualize the workflow and ensure tasks are transparent and prioritized.
- Conduct retrospectives to reflect and improve continuously.
- Apply the STATIK model to make incremental improvements.
- Measure key metrics like lead time, WIP, and throughput to assess team productivity.
- Classify and describe work clearly to ensure alignment across the team.
- Use percentile analysis to predict delivery times and manage deadlines.
By focusing on these practical approaches, you can optimize workflows, improve team performance, and ensure that your agile processes deliver real value to customers.