Praise Quotes
Acknowledgments
Foreword
Introduction
1.Defining Agile and Lean Program Management
- 1.1Review the Twelve Principles of Agile Software Development
- 1.2Review the Seven Lean Principles
- 1.3Agile and Lean Together Create Adaptive Programs
- 1.4A Program Is a Strategic Collection of Several Projects
- 1.5Program Management Facilitates the Program to Release
- 1.6Program Management Coordinates the Business Value
- 1.7Agile Program Management Scales Collaboration
- 1.8Agile and Lean Effect Change at the Program Level
- 1.9What Program Managers Do
- 1.10Take a Product Perspective
- “I Think ‘Product’ Now”
- 1.11Principles of Agile and Lean Program Management
2.Consider Your Program Context
- 2.1Cynefin Helps with Decisions
- 2.2Understand Your Product’s Complexity
- 2.3Know Which Program Teams You Need
- Do You Have A Process Program?
- 2.4The Core Team Provides Business Leadership and Value
- 2.5Do You Need a Core Team?
- 2.6Principles of Consider Your Program Context
3.Organize Your Program Teams
- 3.1Create Your Core Team
- 3.2Beware of Forgetting Core Team Members
- 3.3The Product Owner Role Is Key to the Program’s Success
- 3.4Organize the Software Program Team
- Avoid Coordination Chaos
- Do You Need a Hardware Program Team?
- 3.5Don’t Manage More than One Program Team Yourself
- 3.6Principles of Organizing Your Program Teams
4.Start Your Program Right
- 4.1A Program Charter Sets the Strategy
- 4.2Develop the Program Charter with the Core Team
- 4.3We Can’t Afford the Travel
- 4.4Lead the Program Chartering Effort
- “Working Agreements Helped Us Charter”
- 4.5Create Your Own Program Charter Template
- Do You Need Landing Zones?
- Specify Neutral Dates
- 4.6Iterate on the Program Charter and Plans
- 4.7Create the Agile Roadmap
- 4.8Create the Big Picture Roadmap
- 4.9Principles of Start Your Program Right
5.Use Continuous Planning
- 5.1Differentiate Between Internal and External Releases
- 5.2What Do You Want to Release This Month?
- 5.3Create Minimum Releasables
- “Our Product Grew Differently Over Time”
- Continuous Delivery and Quarterly Planning
- 5.4Plan for External Releases
- 5.5Deliverable and Rolling Wave Planning Helps
- 5.6Small is Beautiful for Programs
- 5.7How Often Can You Replan?
- “It’s not the Plan; It’s About Planning”
- 5.8Separate the Product Roadmap from the Project Portfolio
- 5.9Ways to Rank Items in the Roadmap or Backlogs
- 5.10Decide How You Will Evaluate Value
- 5.11Update the Roadmaps Often
- 5.12Principles of Continuous Planning
6.Create an Environment of Delivery
- 6.1Visualize Program Team Work
- 6.2Keep the Program Team Work Small
- 6.3How Features Flow Through Teams
- 6.4How Often Can You Release Your Product?
- 6.5Release Internally, Even with Hardware
- 6.6Are You Integrating Chunks or Products From Others?
- “Gantts Helped Everyone See Deliverables”
- 6.7Manage the Risks of Integration from Other Vendors
- 6.8Create a Culture of Delivery Throughout the Program
- 6.9Principles of Create an Environment of Delivery
7.Encourage Autonomy, Collaboration, and Exploration
- 7.1Software is Learning, Not Construction
- 7.2Scaling Agile Means Scaling Collaborative Practices
- 7.3Create Autonomous Feature Teams
- 7.4Create Small-World Networks to Optimize Learning
- 7.5Communities of Practice Create Connection and Collaboration
- 7.6Avoid Hierarchical Titles
- 7.7Continuous Integration and Testing Supports Collaboration
- 7.8Beware of Technical Debt
- 7.9Invite People to Experiment
- 7.10Principles of Encourage Autonomy, Collaboration, and Exploration
8.Conduct Useful Meetings for Your Program
- 8.1Explaining Status: Do Not Use Standups at the Program Level
- 8.2Define a Rhythm for Your Program Team
- How Often Should Your Program Team Meet?
- How to Manage Long Lead Items
- 8.3Organize Your Program Team Meetings
- “Right Size” Your Program Team Meetings
- 8.4Program Team Meetings Solve Problems
- 8.5Retrospect at the Program Team Level
- 8.6Principles for Conduct Useful Meetings for Your Program
9.Estimating Program Schedule or Cost
- 9.1Does Your Organization Want Resilience or Prediction?
- 9.2Ask These Questions Before Estimating
- 9.3Targets Beat Estimates
- 9.4Generate an Estimate with a Percentage Confidence
- 9.5Present Your Estimate as a Prediction
- 9.6Spiral in on an Estimate
- 9.7Supply a Three-Date Estimate
- 9.8Do You Really Need an Estimate?
- 9.9Beware of These Program Estimation Traps
- 9.10Estimation Do’s and Don’ts for Program Managers
- 9.11Principles of Estimating Schedule or Cost
10.Useful Measurements in an Agile and Lean Program
- 10.1What Measurements Will Mean Something to Your Program?
- 10.2Never Use Team-Based Measurements for a Program
- 10.3Measure by Features, Not by Teams
- 10.4Measure Completed Features
- 10.5Measure the Product Backlog Burnup
- 10.6Measure the Time to Your Releasable Deliverable
- 10.7Measure Release Frequency
- 10.8Measure Build Time
- 10.9Other Potential Measurements
- 10.10Measure Performance or Reliability Release Criteria
- “We Learned to Measure Performance”
- 10.11How to Answer the “When Will You Be Done/How Much Will Your Program Cost” Question
- 10.12Principles
11.Develop Your Servant Leadership
- 11.1Program Managers No Longer “Drive” the Program
- 11.2Consider Your Servant Leadership
- 11.3How Servant Leaders Work
- 11.4Some People Don’t Want Servant Leadership
- “I am the Wall Around the Program”
- 11.5Welcome Bad News
- “Think of Bad News as an Opportunity”
- 11.6Use the Growth Mindset
- 11.7Ask For the Results You Want
- 11.8Principles of Develop Your Servant Leadership:
12.Shepherd the Agile Architecture
- 12.1Architects Write Code
- 12.2Many Developers Become Architects
- 12.3Encourage Iterative and Incremental Architecture
- 12.4Architects Can Help Expose Risks
- 12.5What the Program Architect Accomplishes Daily
- 12.6Architecture is a Social Activity
- 12.7Problems You May Encounter With Architecture
- When Should You Consider Architectural Stories?
- 12.8Break the Architecture with Purpose
- 12.9Principles of Shepherd the Agile Architecture
13.Solve Program Problems
- 13.1Ask For the Problems or Impediments First
- 13.2People on the Core Team Don’t Deliver What They Promise
- 13.3Your Product Owners Have Feature-itis
- 13.4People on Teams Are Multitasking
- 13.5How to Start a Program With More People Than You Need
- “Consider a Hackathon”
- 13.6Principles of Solve Program Problems
14.Integrating Hardware Into Your Program
- 14.1Hardware Risks Are Different Than Software Risks
- 14.2Understand Cost and Value for Hardware
- 14.3Understand Each Part’s Value
- 14.4See the Work
- 14.5Design Incrementally and Iteratively
- 14.6Use Continuous Design Review
- 14.7Integrate Hardware Often
- 14.8Manage Hardware Risks
- 14.9Develop the Software Before the Hardware Is Available
- 14.10Principles of Integrating Hardware Into Your Program
15.Troubleshooting Agile Team Issues
- 15.1The Teams Are Not Feature Teams
- 15.2Teams Think They Are Agile, But They Are Not
- 15.3The Teams Have Dependencies on Other Teams
- 15.4Your Features Span Several Iterations
- 15.5You Don’t Have Frequent-Enough Deliverables
- 15.6Teams Don’t Finish When They Say They Are Done
- 15.7Principles of Troubleshooting Agile Team Issues
16.Integrating Agile and Not-Agile Teams in Your Program
- 16.1Waterfall Teams Are Part of Your Program
- 16.2You Have Teams that Produce Incrementally, But Not in an Agile Way
- 16.3You Have Teams that Prototype and Don’t Complete Features
- 16.4Principles of Integrating Agile and Not-Agile Teams in Your Program
17.What to Do If Agile and Lean Are Not Right for You
- 17.1Try an Incremental Life Cycle
- 17.2Organize by Feature Team
- 17.3Learn to Release Interim Deliverables
- 17.4Learn How to Reduce Batch Size With a Large Program
- 17.5Try Release Trains
- 17.6Principles for What to Do if Agile and Lean Are Not Right for You

