HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
Agile techniques have demonstrated immense potential for developing more effective, higher-quality software. However,scaling these techniques to the enterprise presents many challenges. The solution is to integrate the principles and practices of Lean Software Development with Agile’s ideology and methods. By doing so, software organizations leverage Lean’s powerful capabilities for “optimizing the whole” and managing complex enterprise projects.
A combined “Lean-Agile” approach can dramatically improve both developer productivity and the software’s business value.In this book, three expert Lean software consultants draw from their unparalleled experience to gather all the insights, knowledge, and new skills you need to succeed with Lean-Agile development.
Lean-Agile Software Development shows how to extend Scrum processes with an Enterprise view based on Lean principles. The authors present crucial technical insight into emergent design, and demonstrate how to apply it to make iterative development more effective. They also identify several common development “anti-patterns” that can work against your goals, and they offer actionable, proven alternatives.
Lean-Agile Software Development shows how to
The book’s companion Web site, www.netobjectives.com/lasd, provides updates, links to related materials, and support
for discussions of the book’s content.
Series Foreword xvii
Preface xxi
Acknowledgments xxv
About the Authors xxvii
Introduction xxix
How This Book Will Help You xxx
The Roots of Agility xxx
The Software Development Pendulumxxx
Principles and Paradigms xxxiii
A Pragmatic Approach xxxiv
Critique the Process, Work Together xxxiv
Lean Provides the Way Forward xxxv
Evaluating Paradigms xxxvi
We Do Not Know It All xxxviii
Lean Provides More than Beliefs xxxix
Going beyond Lean xl
Summary xl
Try This xli
PART I Extending Our View beyond Projects 1
What Is Software Development? 1
The Software Development Team and Flow 2
Chapter 1 An Agile Developer’s Guide to Lean Software Development 5
Lean 5
Lean Applies to Many Levels of the Organization 6
A Quick Review of Some Lean Principles 7
Look to Your Systems for the Source of Your Errors 8
Respect People 9
Minimizing Complexity and Rework 10
Eliminating Waste and Deferring Commitment 10
Using Iterative Development to Minimize Complexity and Rework 12
Create Knowledge 12
Deliver Early and Often 13
Build Quality In 14
Optimize the Whole 14
Fast-Flexible-Flow 14
Focus on Time 15
Reflections on Just-In-Time (JIT) 16
Value Stream Mapping 18
Using Value Stream Mapping to Get to True Root Cause 18
The Results 21
Lean Goes beyond Agile 22
Summary 22
Try This 23
Recommended Reading 23
Chapter 2 The Business Case for Agility 25
The Benefits of Agile 26
Add Value to the Business Quickly 26
Help Clarify Customers’ Needs 31
Promote Knowledge-Based Product Development and Better Project Management 34
Focus on Product-Centered Development 38
Improve Team Efficiency 38
Summary 39
Try This 39
Recommended Reading 40
Chapter 3 The Big Picture 41
Getting to Enterprise Agility 42
How to Create Real Value for an Organization 44
Identify Value 44
Manage the Organization’s Resources 45
Manage Projects 48
Proper Software Engineering 49
Summary 50
Try This 50
Recommended Reading 51
Chapter 4 Lean Portfolio Management 53
The Challenge of Selecting Projects 54
Introducing Terms 54
Project Portfolios 56
Project Portfolios Are Idea Inventories 56
Should We Avoid Delays by Batching Project Analysis? 57
Should We Avoid Delays by Increasing Releases? 58
Lean Portfolio Management 58
Why It Works 59
It Is OK to Plan Releases 60
With Existing Systems, Plan to Use Incremental Delivery 60
The Benefits of Lean Portfolio Management 61
Speed and Quality 61
Line of Sight to Business Needs 62
Minimizing Work-in-Process 62
Minimizing Interruptions 63
The Approach 63
Shorter Planning Cycles 67
Estimating and Tracking Progress 68
Summary 70
Try This 70
Recommended Reading 71
PART II Lean Project Management 73
Lean Provides Guidance 73
Chapter 5 Going beyond Scrum 77
Learning a New Way 78
Defining a Method While Not Being Restricted by It 79
Defining a Process 79
Principles and Practices Open the Door for Professionalism 81
Knowing Where You Are 82
Scrum Is a Framework 83
Misunderstandings, Inaccurate Beliefs, and Limitations of Scrum 84
Misunderstandings Commonly Held by New Scrum Practitioners 85
Scrum Beliefs We Think Are Incorrect 85
Limitations of Scrum That Must Be Transcended 89
Unfortunate Consequences of These Beliefs 91
Lean Thinking Provides the Necessary Foundation 92
Introducing Scrum#–Scrum Embedded in Lean Thinking 92
Introducing Kanban Software Engineering 96
Managing the Work in the Kanban Team 98
Advantages of Kanban 100
Selecting an Approach 103
Summary 106
Try This 106
Recommended Reading 107
Chapter 6 Iteration 0: Preparing for the First Iteration 109
Getting Ready for Iteration 1 110
Set Up the Product 111
Set Up the Team 111
Set Up the Environment 112
Set Up the Architecture 113
Iteration 0 Checklist 113
Summary 115
Try This 115
Chapter 7 Lean-Agile Release Planning 117
Issues that Affect Planning 118
Evaluating Processes 118
Transparent and Continuous Planning 120
Releases and Elevations 124
Example: Release Planning Session 124
1. Identify Features 126
2. Prioritize Features, Left to Right 126
3. Split Features Using the MMF Perspective 126
4. Estimate the Value of Features 126
5. Estimate the Cost of Features 128
6. Elaborate Features 128
7. Create the Release Plan 129
8. Plan the Elevations 132
A Few Notes 135
On Estimation and Risk 135
Pareto versus Parkinson 135
Summary 136
Try This 136
Recommended Reading 136
Chapter 8 Visual Controls and Information Radiators for Enterprise Teams 137
Visual Controls and Information Radiators 138
Lean-Agile Visual Controls 139
Product Vision: Providing the Big Picture 140
Product Backlog with Release Plan 141
Iteration Backlog 142
The Visual Control for Multiple Teams 146
Establishing Clear Line of Sight 148
Managing Dependencies with Visual Controls 150
Burn-Down and Burn-Up Charts 152
The Impediment List 153
How to Tell If You Have a Good Visual Control 153
Summary 154
Try This 154
Recommended Reading 155
Chapter 9 The Role of Quality Assurance in Lean-Agile Software Development 157
Introduction 158
QA at the End of the Cycle Is Inherently Wasteful 160
Improve Results by Moving QA Up Front 161
When the Product Champion Will Not Answer Your Questions 163
Executable Specifications and Magic Documentation 165
Acceptance Test-Driven Development 166
Summary 167
Try This 167
Recommended Reading 168
Chapter 10 Becoming an Agile Enterprise 169
Where Do You Want to Go? 170
What Gets in the Way? 170
Guidelines for the Transition 172
Where Do You Start? 173
The Product Company 174
The IT Company 178
The IT Product Company 178
The Importance of Continuous Process Improvement 179
Summary 179
Try This 180
Chapter 11 Management’s Role in Lean-Agile Development 181
Lean-Agile Management 182
Creating the Environment 183
Lean-Agile’s Balanced Approach to Management 184
Create Knowledge within the Team 185
Get to the Root Cause 186
Agile Software Development Is Not Anarchy 187
Lack of Management May Equal Lack of Success 189
Improving Management with Lean Thinking 190
Summary 191
Try This 191
Recommended Reading 192
Chapter 12 The Product Coordination Team 193
Getting Teams to Work Together 194
Scrum-of-Scrums 194
The Challenge of Coordinating Teams 195
The Product Coordination Team 198
Product Coordination Team Membership 199
Product Coordination Team Guidelines 200
Mentoring 202
Summary 202
Try This 202
Chapter 13 Software Architecture and Design’s Role in Lean-Agile Software Development 203
Avoiding Over- and Under-Design 204
Designing for Change 206
The Role of Design in Software 207
The Role of Management in Software Design 208
Summary 208
Try This 208
Recommended Reading 209
PART III Looking Back, Looking Forward 211
Chapter 14 Seeing Lean 213
Toyota: The First Great Example of Lean 214
Three Bodies of Lean 216
Lean Science 217
Lean Management 218
Lean Knowledge Stewardship 218
Insights from Lean-Agile Coaches 219
Focusing on One Project at a Time 219
Initiating Fewer Projects Instead of Imploring Teams to Work Better 219
Shortening Batch Times 220
Getting to the Root Cause 220
Knowing Where You Are: Minimum Releasable Features 221
Priorities and Work-in-Process 221
Productivity and Quality 222
Cross-functional Teams 222
The Mantra of Lean: Fast-Flexible-Flow 223
An Example of Fast-Flexible-Flow 224
Next Steps 227
User Groups of Interest 228
Books to Read 228
Other Resources 230
Summary 230
Try This 230
Appendix A: Team Estimation Game 233
Appendix B: A Model of Lean-Agile Software Development 237
Bibliography 245
Index 249