Presentation delivered @Atlassian Summit 2012. Balancing the coordination of many Agile product delivery teams on the same major release cycle -- and still allowing these teams to self-organise -- is a craft Agile Enterprises must master. JIRA, GreenHopper and Confluence provide a rich platform that accommodates cross team co-ordination and the flexibility required for teams to self-organise. In this talk, David will walk the audience through the process of breaking down a Kanban value chain into steps and transitions, mapping out compatible workflows, and building the combined board. David will also share details of how Constant Contact provides visibility into the progress of teams and the release cycle. Constant Contact was able to deliver 15% more often in 2011 than prior years by refining their Agile practices.
A Journey Into the Emotions of Software Developers
Scaling Kanban in the Enterprise with GreenHopper
1.
2. Scaling Kanban in the Enterprise
with Jira/Greenhopper
combining multiple work items and spanning agile teams
with a common delivery schedule
David Jellison
Director, Quality Engineering
Constant Contact, Inc.
djellison@constantcontact.com
3. • “Engagement Marketing” company with a suite of SaaS
applications, serving over 500,000 customers.
• Employs ~1000 people, with ~300 in Engineering &
Operations, covering 4 locations.
• Has ~20 agile product delivery teams 8-12 people per
team, and a ~3:1 ratio (Dev:QE).
• Scrum major release cycles, Kanban software
development practices, and TDD in new teams
4. Our Needs
• Sprints were feeling like
mini-waterfalls
• Too many systems (project,
defect, requests)
• Impediments and
bottlenecks persisting to
next sprint
5. Game Plan
• Kanban key ideas • Applying to
Jira/Greenhopper
• Agile enterprise
• Program Management role
• Jira/Greenhopper solution
• Breaking down the Kanban
value chain into workflow
steps and transitions
6. Why Kanban?
• Football 3 yards at a time => far better odds
Rush 3 yards at a time
Hail Mary Pass
7. Kanban Key Ideas
• Pull work from queue, based on capacity constraint
• Streamline completing work (bottleneck visibility)
• SLA (service level agreement) classes of service
Scheduled
Queue Done
Backlog
• Card • Card • Card
• Card • Card • Card • Card • Card • Card
Unscheduled
• Card • Card
WIP WIP
Backlog
WIP Limit WIP Limit
9. Agile Enterprise Challenges
• Prescriptive structure
• Managing work dependencies across teams
• Measuring progress and readiness to deploy
RISK
team team team team
12. Electronic Dashboard Needs
• Represent value chain per team
• Combine different types of work
• Share across teams
• Common structure
• Extensible with plug-ins
• Aggregate visibility
14. Enterprise Steps
1. Declare common defect workflows
2. Suggest common card workflows
3. Declare shared statuses (must appear in each project
workflow)
4. Declare constraints (e.g. all Defects have a priority)
15. Key Statuses
• ToDo / User Story
• Create event
ToDo /
• Project backlog (scheduled) User Story
• Start throughput
• In Development
Throughput
• Start cycle time
In
• Closed
Cycle Time Development
• Close event
Closed
• Ends cycle time, throughput
16. Defect Resolution Field
• Jira system field
• Required when
visible *
• Resolved event
• Configurable values
18. Defect Workflow
Resolution
Set
Resolution
Cleared
Use post functions in transitions to set and clear Resolution field
19. Defect Workflows
_Defect Workflow Steps 1 _Defect Workflow Steps 2 _Defect Workflow Steps 3
ToDo / User Story ToDo / User Story ToDo / User Story
Ready for Dev Ready for Dev
In Development In Development In Development
Ready for Test Ready for Test Ready for Test
In Test In Test In Test
Test Done
Closed Closed Closed
22. Transitions as Buttons
• Defect: Ready for Dev
• Defect: In Development
Clear Resolution:
transition back to itself
& post function to clear
field value
26. Team Steps
1. Diagram team value chain (tune „queue/work‟ pattern)
2. Reduce steps when issue types and fields make more sense
3. Flow diagram (white board) key steps and transitions
4. Map shared statuses to steps in the flow diagram
5. Create new workflow(s) in Jira/Greenhopper
6. Transitions named as action taken (button labels)
7. Map step columns in Task Board and Rapid Board to statuses
27. Feature Workflow Steps Feature Statuses Components
• Marketplace
ToDo / User Story • Community
• Dev Website
Ready for Dev • Experts
• Blog
In Development
Custom Fields
• Stakeholder
Ready for Test • Stakeholder Review
• Reject Reason
In Test • QA Required
Test Done Issue Types
• Dev Forward
External Dependency • WIP Defect
• Defect
User Acceptance • Subtask
• Automated Test
Closed • Prod / Expedited
• Programs / Promo
28. Feature Statuses Defect Statuses
Statuses ToDo / User Story ToDo / User Story
Ready for Dev Ready for Dev
In Development In Development
• Match up the same
steps in different Ready for Test Ready for Test
workflows with In Test In Test
common Statuses Test Done Test Done
External Dependency
User Acceptance
Closed Closed
29. Task Board Column Mapping
• Add column headings from whiteboard steps
• Status selected from combined workflows list
33. Program Manager
• Scheduling and coordinating • Leading post release point
routine releases releases and hot fixes
• Gathering readiness and risk • Coordinating continuous
assessments from teams improvement exercises
• Leading deployment procedure • Metrics
• Coordinating cross-functional • Coach Kanban & workflow
meetings design
35. Benefits: Consolidating Issues
• Issue tracking {Features, • Dependency management
Defects, Requests} across teams
• One platform with multiple types • Common roll-up of progress
of work
• Metric aggregation
• One board for team to see all
work together
• Linking like things together
39. Defect Reduction
• Defects as failing tests or
subtask WIP Defects
• If escaping, promote from
WIP Defect to Defect issue
type
• Track Escaping, no more
than can count on 2 hands
40. 2011 Results
• Migrated separate {Defects; Stories; Requests}
=> Jira issues ranked in task board (team visibility)
• Tracking {WIP Defects; Escaping Defects}
=> defect debt reduction (cut defect backlog by ½)
=> preventing defects (far less escaping)
• Cycle time (Start Dev <> Closed)
=> improved metrics drove cycle time reduction
=> 15% more delivery per year
41. What we covered
• Kanban key ideas • Applying to
Jira/Greenhopper
• Agile enterprise
• Program Management role
• Jira/Greenhopper solution
• Breaking down the Kanban
value chain into workflow
steps and transitions
43. References
• Practical JIRA Administration, Using JIRA Effectively:
Beyond the Documentation; Matt Doar, O‟Reilly Media,
May 2011
• Kanban football analogy, Gil Irizarry, Constant Contact,
Inc.
• Agile Defect Prevention (WIP Defects)
http://davidjellison.wordpress.com/2011/09/23/agile-
defect-prevention
Hinweis der Redaktion
Moving the ball 3 yards at a time => far better oddsConsistency => predictability
Agile Manifesto culture across the enterpriseRelease cycles with uncertainty and managed riskAgile teams are self organizingPlanning details at the last responsible momentContinuous integration and regression testingContinuous feedback and improvementEnterprise governanceBusiness value priorities and obligationsAlignment to standards, practices, schedulesKPI metric collection and visibility
Provide the release schedule cadence and prioritized backlog, and teams can self-manage work within teams. Teams operate on their own, working towards a common schedule. The Program Manager leads the teams to prepare for release, assess overall risk, and provide a green light to update.
The enterprise has a roadmap and prioritized project list
The physical task board (whiteboard with taped grid & sticky notes)Columns with prioritized backlog & steps in developing and testing work items (smallest testable chunks)Work items represented by color coding (different class of service)Combining planned work, defects, and request tickets (footprints)Work In Process Limits (WIPL) constrains concurrent workPolicies document describes the working rules within the team
Represent the physical value chain board per teamCombine different types of work in the same task boardShare related work across teamsProvide structure to team organizationExtensible to integrate other toolsAllow for self-directed workAggregate visibility across the organizationProvide efficiencies in continuous improvement
Standardize on workflows and constraints for key issue types
Throughput: Time when an issue enters the assigned backlog until closedCycle Time: Time when work begins on the issue until closed
Integrate the Jira Resolution field values with the workflow.
Identify key statuses that are shared. Alternate key statuses can be defined if some teams are using them and some are not. Of those using the alternates, you want them to be the same.
Add all the transitions to move between statuses, including backwards only if your organizations allows for it.Add separate transitions for each Resolution valueRemove the Resolution value when moving a card upstream to where the Resolution is set or before.
Comparing alternate workflows with their optional statuses…
Basic Defect Workflow in Jira
Workflow schemes are a collection of workflows. Assign specific workflows for specific issue types, and default if you want to use a workflow for all other issue types.
In this case, we don’t want the team fixing defects in a backlog version.
In this case, we added aValidator to require only one Fix Version/s value for defects.
This is an example of setting the first value in the Resolution field during the transition.
The team should follow these steps to figuring out what will be placed on the task board in Jira and how the issues will move through the board.
Whiteboard the workflow in a flow diagram, identify matching statues, identify refinement of the board by using components, custom fields, and different issue types.
Validate that the statuses of each workflow of the project match up appropriately.
Build the task board.
This is what the task board looks like.
Build the Rapid Board.
This is what the Rapid Board looks like.
The Program Manager role is key to the enterprise success of managing cross-functionally and coordinating major releases.