Table of Contents
FOREWORD xvii
 ACKNOWLEDGMENTS xix
 ABOUT THE AUTHOR xxi
 INTRODUCTION xxiii
 CHAPTER 1 Software Development Explained: Creativity Meets Complexity 1
 A Definition of Software Development 1
 Why Is Software Development So Difficult? Hint: It’s Not Like Building a House 1
 The Simple, the Complicated, and the Complex 2
 Metaphor #1: Piles of Snow 3
 Metaphor #2: The Ikea Desk 4
 Metaphor #3: Heart Surgery 5
 Using the Three Metaphors in Project Management 6
 CHAPTER 2 Agile, Waterfall, and the Key to Modern Project Management 7
 Agile and Waterfall 7
 Waterfall 7
 Waterfall’s Problems 8
 The Requirements Requirement 9
 Inflexibility 9
 Loss of Opportunity and Time to Market 9
 Customer Dissatisfaction 10
 Agile 10
 Lack of Up-Front Planning 12
 Lack of Up-Front Costs 12
 Stakeholder Involvement 13
 Extensive Training 13
 Where Agile Works Best 14
 The Need for Up-Front Requirements in Many Projects 14
 The Real World 15
 Agile Enough 15
 The Software Development Life Cycle 15
 CHAPTER 3 Project Approaches; Off-the-Shelf and Custom Development; One Comprehensive Tool and Specialized Tools; Phased Launches and Pilots 17
 The Custom vs. Off-the-Shelf Approach 18
 History 18
 The Benefit of Off-the-Shelf 19
 Off-the-Shelf Examples 19
 Thinking You’re Editing When You’re Actually Creating 20
 Common Challenges with Off-the-Shelf Software 20
 Business Compromise 21
 Discovering You Made the Wrong Choice with Packaged Software 21
 Breaking the Upgrade Path 21
 Locked into a Partnership and the Product Roadmap 22
 Expense of Off-the-Shelf 22
 Where Packaged Software Works Well 23
 Frameworks and the Blurring Worlds of Custom and Packaged Software 23
 Integrations vs. One Tool for the Job 24
 To Phase or Not to Phase 25
 Bigger Is Not Always Better 26
 The Pilot Approach 26
 Why Not Pilot? 27
 CHAPTER 4 Teams and Team Roles and Responsibilities Defined 29
 Teams and the Roles on Teams 29
 Project Leadership 30
 The Key Business Stakeholder 31
 The Project Sponsor 31
 The Program Manager 32
 Project Manager 32
 Multiple Project Managers 33
 Confusion About the Project Manager Role; It’s More Limited than You Think 34
 Project Team 34
 The Business Analyst 35
 User Experience 35
 Designer 35
 The Programmers 35
 Architect 36
 Systems Administrator 36
 Team Member Choice and Blending Roles 37
 Getting All the Roles Covered 37
 Real-World Examples for Role-Blending 38
 Project Sponsor as Program Manager 38
 Program Manager as Business Analyst 39
 Front-End Programmer as User Experience 39
 Design, UX, and Business Analysis 40
 Back-End Programmer as Architect 40
 SysAdmin as Architect 40
 Professionals and Personalities 40
 Programmers 40
 Project Managers 41
 Business Analysts and User Experience People 42
 Architects and Systems Administrators 42
 Insource or Outsource: Whether to Staff Roles with Internal People or Get Outside Help 43
 The Myth that Insourcing Programming Is Better 43
 Inexperience with Projects 44
 How Knowledge Goes Stale 44
 Outsourced Teams 44
 When to Use Internal or External Teams 45
 Roles Easiest to Outsource 46
 Roles “in the Middle” 46
 Roles that Are Usually Internal 47
 Vendors and Hiring External Resources 47
 Some Tech-Types to Avoid: Dot Communists and Shamans 47
 The Shamans 48
 Boundaries, Responsibilities, and Driving in Your Lane 49
 Techies Who Don’t Drive in Their Lane 50
 Business Stakeholders Who Shirk Responsibilities 50
 Business Stakeholders, Step Up! 51
 Have a Trusted Technology Partner 52
 How Best (and Worst) to Work with Your Technology Partner 52
 Too Many Cooks 53
 CHAPTER 5 Project Research and Technology Choice; Conflicts at the Start of Projects; Four Additional Project Delays; Initial Pitfalls 55
 Choice of Technology, a Definition 56
 The Project’s Research Phase 56
 Current State 56
 Integrations and Current State 57
 Data and Current State 57
 Business Needs 58
 Possible Technology Solutions 58
 Demos 59
 Comparison Grids 59
 Talk to Other People, a Journalistic Exercise 60
 How Do You Know When Your Research Is Done? 61
 Research Reality Check 62
 You Can’t Run the Control 62
 Religious Wars 63
 Passion over Reason 64
 Business Stakeholders and Controlling Ego 64
 How to Stop a Technology Religious War 65
 Not So Easy 65
 Preventing a Technology Religious War 65
 Being Right 66
 Stopping a War in Its Tracks 66
 Détente and Finally Ending a Technology Religious War 67
 Clarity 67
 The Role of the CIO 68
 Two Most Important Factors in Core Technology Decisions 69
 Budget Constraints 69
 The Team 69
 Choosing Technology and What NOT to Consider: The Future 70
 Other Conflicts that Delay the Start of Projects 71
 Business Strategy and Organizational Authority 71
 Design 73
 Blue Sky 73
 Overanalysis 74
 The Project Charter, a Key Document 74
 CHAPTER 6 Final Discovery; Project Definition, Scope, and Documentation 77
 Budgeting and Ongoing Discovery; Discovery Work Is Real Work 78
 Budgeting Final Discovery 78
 What Discovery Costs 79
 What Comes Out of Final Discovery: A Plan 79
 Getting to a Plan 80
 The Murk 80
 Getting Out of the Murk 81
 The Plan for the Plan—Company A 82
 Hosting 82
 Content Entry 82
 Search 82
 Content Pages and Features 83
 Integrations 83
 Back-end System 83
 Data Migration 84
 How Anyone Can Make a Plan for the Plan 84
 Different Approaches to Elicit the Plan for the Plan 85
 Exception to the Murk 86
 Breakout Sessions 87
 The Weeds Are Where the Flowers Grow 87
 Not All Questions Will Be Answered 88
 Agile, Waterfall, and Project Documentation 89
 The Scope Document 90
 Project Summary 90
 Project Deliverables 90
 Out of Scope 90
 Constraints 91
 Assumptions 91
 Risks 91
 Timeline 92
 Budget, Scope, Timelining, and Horse-Trading 93
 Metrics 93
 What About “the List”? 94
 Defining and Visualizing and Project Scope 94
 What Usually Happens 95
 The Chicken and the Egg 95
 Common Questions 97
 Where Does Design Fit In? 97
 Working with Marketing Stakeholders 98
 How You Know You’re On the Wrong Track 98
 A Word About Ongoing Discovery 99
 CHAPTER 7 Budgeting: The Budgeting Methods; Comparative, Bottom-Up, Top-Down, and Blends; Accurate Estimating 101
 An Unpleasant Picture 102
 What Goes on Behind the Scenes; a Scene 102
 Budgeting Type 1: Comparative Budgeting 103
 Gotchas with Comparative Budgeting 104
 Budgeting Type 2: Bottom-Up Budgeting 104
 The Rub in Bottom-Up Budgeting 105
 Budgeting Type 3: Top-Down and Blends 105
 Why RFPs Don’t Work 106
 Accurate Estimating and Comparison Budgeting 107
 Effective Estimating in Top-Down and Bottom-Up Budgeting 108
 Establish a Base Budget for Programming, Ongoing Discovery, Unit Testing, Debugging, and Project Management 108
 Percentages of Each 108
 Programming Hours—Raw and Final 109
 The Math Part 109
 Additional Items to Consider 111
 Budgeting and Conflicts 112
 CHAPTER 8 Project Risks: The Five Most Common Project Hazards and What to Do About Them; Budgeting and Risk 115
 Five Always-Risky Activities 116
 Integration 116
 Data Migration 117
 Customization 118
 Unproven Technology/Unproven Team 119
 Too-Large Project 119
 Want Versus Need 119
 Want Versus Need: Programmers 120
 Want Versus Need: Business Stakeholders 120
 Optimism Is Not Your Friend in Software Development 120
 Beware the Panacea Claim 121
 Facing Risks 121
 A Few Words About Fault 121
 Identifying Risks Up Front 122
 Embrace the Snow 122
 Talking to Your Boss 123
 Hidden Infections 124
 Bad Technology Team; Wrong Technology Choice 124
 Too Many Opinions and Lack of Leadership 124
 The Contingency Factor 125
 The Cost of Consequences 125
 Contingency Percentage Factors 126
 In the Real World 126
 The Good News 127
 A Common Question 127
 Long-Term Working Relationships and Contingency 127
 CHAPTER 9 Communication; Project Communication Strategy; from Project Kickoff to Daily Meetings 129
 Project Kickoff 130
 Project Kickoff Cast 130
 Project Leadership 130
 Company Leadership 131
 Who Gives the Kickoff? 131
 Kickoff Presentation 131
 High-Level Project Definition 132
 Business Case and Metrics 132
 Project Approach 133
 Team Members and Roles 133
 Project Scope 134
 Out-of-Scope 134
 Timeline 134
 Budget 135
 Risks, Cautions, and Disclaimers 136
 Monthly Steering Committee 137
 Monthly Steering Committee Attendees 137
 Monthly Steering Committee Agenda 137
 Weekly Project Management Meeting 139
 Weekly Project Management Attendees 139
 Weekly Project Management Agenda 139
 Daily Standup Meeting 140
 Well-Run Meetings 140
 Insist on Attention 140
 Timeliness 140
 Getting “into the Weeds” 141
 Needs to Be Kicked Upstairs 141
 Poor Quality Sound—Speakerphones and Cell Phones 142
 Too Much Talk 142
 Agenda and Notes 143
 CHAPTER 10 The Project Execution Phase: Diagnosing Project Health; Scope Compromises 145
 What Should Be Going on Behind the Scenes 145
 The Best Thing You Can Ever Hear: “Wait. What Was It Supposed to Do?” 146
 Neutral Corners 147
 What If Things Aren’t Quiet? 147
 Making Decisions 148
 How to Listen to the Programmers 149
 The Programmer’s Prejudice 149
 SneakerNet and the Fred Operating System 150
 SneakerNet Integrations 150
 The Fred Operating System 151
 The Hidden Benefits 151
 Demos and Iterative Deliverables 151
 Why Iterative Deliverables Are Important 151
 Why Iterative Deliverables Are Hard 152
 What You Can Do to Achieve Iterative Deliverables Even if It’s Hard 153
 Demos 154
 Scope Creep 154
 Dealing with Scope Creep; Early Is Better 155
 Scope Creep and Budgeting 155
 Scope Creep and Governance 155
 Types of Scope Creep 156
 Scope Creep and the Team 157
 CHAPTER 11 First Deliverables: Testing, QA, and Project Health Continued 159
 The Project’s First Third 159
 The Second Third 159
 A First Real Look at the Software 160
 The Trough of FUD 161
 Distinguishing a Good Mess from a Bad Mess 163
 An Important Checkpoint 163
 Getting to Stability 164
 First Testing and the Happy Path 164
 Quality Assurance 165
 Bug Reporting 165
 Regression Testing 166
 Bugs: Too Many, Too Few 166
 Testing: The Right Amount for the Job 166
 Too Much Testing? 167
 Bug Cleanup Period 167
 Timeline So Far 168
 CHAPTER 12 Problems: Identifying and Troubleshooting the Three Most Serious Project Problems; Criteria for Cancellation 169
 A Rule About Problems 169
 Additional Resources 170
 Fault—A Review 172
 Common Late-Stage Problems 172
 Business User Revolt: “We Talked About It in a Meeting Once” 172
 Managing Business User Revolt 173
 What If No or Little Documentation Exists? 174
 Risk Chickens Come Home to Roost 175
 Managing the Risk Chickens 176
 When Programmers Ask for More Time 178
 Lurking Infections 178
 Bad Technology Team 179
 How to Manage a Bad Technology Team 179
 Wrong Technology Choice 180
 Managing a Wrong Technology Choice 180
 The Sunk-Cost Bias 181
 Lack of Leadership 181
 Managing Lack of Leadership 181
 CHAPTER 13 Launch and Post-Launch: UAT, Security Testing, Performance Testing, Go Live, Rollback Criteria, and Support Mode 183
 User Acceptance Testing: What It Is and When It Happens 183
 Controlling UAT and “We Talked About It in a Meeting Once,” Part Deux 185
 Classifying UAT Feedback 185
 Bugs 186
 Not Working as Expected—The Trickiest Category 186
 Request for Improvement 187
 Feature Request 188
 Conflict Resolution and Final Launch List 188
 Load Testing 189
 Performance Testing 189
 Security Testing 189
 Sign-Off 194
 Questions to Ask Regarding Launch Readiness 195
 Not Knowing Is Not Acceptable 195
 Criteria for Rollback 196
 Singing the Post-Launch Blues 196
 Was It All a Big Mistake? 198
 Metrics 198
 Ongoing Development 198
 Surviving the Next One 199
 APPENDIX 201
 GLOSSARY 215
 INDEX 223