Agile Demand Management, Part II
Reading Sanjiv Augustine's excellent Managing Agile Projects recently I was reminded of some Lean principles that portfolio and program managers could apply at their level to manage the flow of work to product teams:
Small Batch Size. Agile teams use iterative development to avoid the issues caused by large batch size—lack of early feedback, large inventory, and associated potential waste of time and resources. Small releases and iterative development provide two levels at which batch size can be controlled. At the portfolio level you can work with customers to define, create and release system functionality in small batches (feature sets, project phases, etc.).
Steady Rate of Arrival and Delivery. All backlogs are queues. There are queues at the portfolio level, the product backlog, and the sprint backlog. Large queues are an indication of inefficiency. Gathering inputs in the form of requirements and requests at a rate that exceeds the delivery rate creates long queues. I think you can see large queues in place now in the form of a large number of project requests (some pretty old and stale), a large number of stories in sprints waiting for QA or dependent on other teams (e.g., DBA, CAB). There are ways to tackle queues, but one measure is to not continue to add to one that is already large and growing.
Slack, or not loading a team to 100% capacity. Business and technology leaders coming from a plan-driven project management mode think in terms of resource capacity and utilization. Often a program or project manager is incentivized to load all resources to 100% utilization. We know from experience that, beyond a certain optimal point, the closer a system gets to 100% utilization the slower it is to deliver outputs, and queues tend to grow.
Common ways a PMO violates these principles include:
- Taking on large, not-well-defined projects and assigning them as Epics or Themes to a team.
- Not communicating to business stakeholders the team-level constraints on batch size and WIP limits
- Not having a design and/or refinement process in place and thereby allowing too much work in too large batch sizes to get to the team's backlog
- Frequent meetings with business stakeholders to accept project proposals/ideas and accumulating them not in proportion to the rate of work being completed.
- Considering individual team members to be available resources independent of their teams and giving them work assignments outside their team's backlog.