Agile Project Management With Kanban
Introduction
- Kanban definition: Use a visual board with columns representing workflow stages
- Core benefit: Visualize work and bottlenecks to improve flow efficiency
- Agile enhancement: Apply Kanban to make any agile process more effective
- Simplicity focus: Start simple and evolve your process based on team needs
- Universal application: Implement Kanban in any development environment
- History note: Understand Kanban originated in Toyota manufacturing and was adapted for software
- Results orientation: Focus on delivering value, not following process dogma
- Expectations setting: Recognize that Kanban implementation takes practice and iteration
Getting Started with Kanban
- Start simple: Begin with a basic three-column board: To Do, Doing, Done
- Visualize all work: Put every work item on the board, including non-feature work
- Card essentials: Include title, owner, and estimated effort on each card
- Physical vs. digital: Choose board type based on team co-location and needs
- Team agreement: Get team buy-in on initial board design and rules
- Board placement: Make board highly visible to entire team
- Initial WIP limits: Start with simple limits like “number of team members minus one”
- Tracking creation: Track when items are created to measure lead time
- Quick wins: Look for immediate process problems revealed by visualization
Work Items
- Define work items: Create clear, manageable chunks of work
- Right-size items: Make items completable within a few days
- Item attributes: Include title, description, acceptance criteria, and estimate
- Item types: Differentiate between features, bugs, technical debt, and other work
- Estimation approach: Use simple T-shirt sizing or story points for estimates
- Splitting technique: Split large items vertically (thin slices of functionality)
- Dependencies: Clearly mark dependencies between items
- Definition of Ready: Ensure items are fully prepared before entering workflow
- Definition of Done: Define clear completion criteria for items
Workflow
- Map your process: Create columns that reflect actual workflow stages
- Keep it visible: Ensure entire workflow fits on one visible board
- Column policies: Define clear entry and exit criteria for each column
- Handoff clarity: Make handoff points between team members explicit
- Buffer columns: Add buffer columns before bottlenecks if needed
- Testing integration: Incorporate testing throughout the workflow, not just at end
- Done means done: Once in Done, items should need no further work
- Expedite lane: Create a separate lane for emergency items if needed
- Continuous improvement: Refine workflow visualization as understanding improves
Work in Progress (WIP) Limits
- Set WIP limits: Apply limits to workflow columns based on team capacity
- Purpose understanding: Recognize WIP limits exist to improve flow, not restrict team
- Start conservative: Begin with tighter limits and adjust as needed
- Column-specific limits: Set different limits for different workflow stages
- Respect the limits: Treat WIP limits as hard constraints, not suggestions
- Bottleneck detection: Use breached WIP limits to identify bottlenecks
- Team swarming: When a column reaches its limit, swarm to help clear it
- Adjustment process: Regularly review and adjust limits based on observed flow
- Personal WIP: Encourage team members to limit their personal work in progress
Metrics and Reporting
- Lead time: Measure time from request creation to completion
- Cycle time: Track time from work start to completion
- Throughput: Count items completed per unit time (week/month)
- Cumulative flow: Use cumulative flow diagrams to visualize workflow health
- WIP correlation: Notice correlation between high WIP and slower delivery
- Bottleneck identification: Use metrics to identify and address bottlenecks
- Predictability: Use historical cycle time to predict future delivery
- Improvement tracking: Measure effectiveness of process changes
- Simple approach: Start with basic metrics before adding complexity
Setting Expectations and Forecasting
- Probabilistic forecasting: Use cycle time distributions for realistic forecasts
- Avoid date commitments: Provide probability-based forecasts instead of firm dates
- Percentile thinking: Express forecasts as “85% likely to complete by X date”
- Monte Carlo simulations: Use historical data to simulate possible futures
- Scope management: Manage scope actively to achieve time goals
- Forecast updates: Update forecasts as work progresses and data improves
- Confidence explanation: Help stakeholders understand probabilistic forecasts
- Warning signs: Watch for early indicators that forecasts may be at risk
- Trust building: Use reliable forecasts to build stakeholder trust
Dealing with Meetings and Interruptions
- Meeting minimalism: Eliminate or streamline unnecessary meetings
- Stand-up format: Keep stand-ups focused on flow and blockers
- Interruption handling: Create explicit policies for handling interruptions
- Meeting preparation: Ensure meetings have clear agendas and goals
- Outside requests: Establish process for intake of requests from outside team
- Expedite policies: Create clear criteria for what can bypass normal flow
- Context switching: Measure and minimize harmful context switching
- Meeting rhythm: Establish consistent cadence for necessary meetings
- Continuous improvement: Make process improvement discussions regular events
Scaling Kanban
- Team of teams: Connect multiple team boards to visualize larger workflow
- Hierarchical items: Decompose large items into team-level work items
- Cross-team dependencies: Make dependencies across teams visible
- Escalation paths: Create clear paths for resolving cross-team blockers
- Consistent metrics: Use consistent metrics across teams for comparability
- Roll-up reporting: Aggregate metrics for program-level reporting
- Synchronized cadence: Consider synchronizing key meetings across teams
- WIP limits at scale: Apply WIP limits at program level as well as team level
- Improvement communities: Share Kanban improvements across teams
Advanced Topics
- Classes of service: Create different service classes for different work types
- Explicit policies: Document all process policies on or near the board
- Flow efficiency: Measure active time vs. waiting time for items
- Cost of delay: Consider prioritizing based on cost of delay
- Little’s Law: Understand the relationship between WIP, cycle time, and throughput
- Queue management: Actively manage queues to improve flow
- Slack allocation: Build in capacity for improvement and unexpected work
- System thinking: Optimize the entire system, not individual parts
- Upstream Kanban: Extend Kanban to idea generation and prioritization
Mixing Kanban with Other Methods
- Scrum+Kanban (Scrumban): Add visualization and WIP limits to Scrum
- Kanban for XP: Visualize flow while maintaining XP engineering practices
- Waterfall+Kanban: Improve traditional processes without full methodology switch
- Method pragmatism: Focus on principles and outcomes, not method purity
- Selective adoption: Take the best elements from different approaches
- Continuous delivery: Align Kanban with continuous delivery practices
- Process evolution: Start where you are and evolve toward better flow
- Cultural considerations: Adapt Kanban to work within existing culture
- Team empowerment: Let teams evolve their process based on experience
Sustaining and Improving Kanban
- Continuous improvement: Make regular process improvement habitual
- Metrics review: Regularly review metrics to identify improvement opportunities
- Retrospectives: Hold focused retrospectives on flow issues
- Flow experiments: Run controlled experiments to improve process
- Team ownership: Encourage team to own their process improvements
- Celebration: Recognize and celebrate process improvements
- Knowledge sharing: Create channels for sharing Kanban learnings
- Leadership support: Ensure continued leadership support for Kanban
- Value focus: Keep focus on delivery of value, not process compliance
Key Takeaways
- Visualize work: Make all work visible on a board to reveal process issues
- Limit WIP: Reduce work in progress to improve flow and quality
- Manage flow: Optimize for smooth, predictable delivery of value
- Make policies explicit: Document and display process rules
- Implement feedback loops: Create mechanisms for regular improvement
- Start where you are: Begin with current process and improve incrementally
- Right-size work: Break work into small, manageable pieces
- Data-driven decisions: Use metrics to guide process improvements
- Probabilistic forecasting: Provide realistic date ranges based on historical data
- Team empowerment: Let teams evolve their process based on real experience