In fiction: we find the predictable boring. In real life: we find the unpredictable terrifying. ― Mokokoma MokhonoanaI’ve been thinking lately about the word predictability.
Individual teams often have very little control over their ability to generate predictability. Predictability is a function of the team, the work, and the system surrounding the team. If work at a particular organization has an average flow efficiency of 20% (values typically range between 10% and 40%), then the team could go 2x over their estimate, and the lead time would increase by only .2x. Predictability is gained through perseverance, and a strong culture of continuous improvement EVERYWHERE.
Now… a stakeholder might say “despite these factors, all we ask is for you to do your part! Given all of these headwinds, just let us know when you’ll be done!” Hmmm. OK then, I’ll just bundle up all of the variability and drag, double the lead time, and give you a mediocre, but achievable target. Good for me (and maybe you), but bad for the business.
To prepare you for your next predictability conversation, I have prepared this handy list. I’m sure they’ll understand.
Note: Joke aside, I do believe it is the job of the team to quantify these impacts in a disciplined way.
Dear ____________ . I 100% respect your need for predictability. I’d like predictability as well! Predictability is a two way street. My team needs discipline, craft, and passion. That’s a given. But to get to that elusive level of predictability, we’ll also need you to….
- Let us focus 100% on the effort
- Colocate everyone (the capital “T” Team). Remove all dependencies
- Give us the tools we need, and provision consistent environments
- Allow us to pick the right tools for the challenge at hand
- Establish a psychologically safe environment for the team
- Provide instant and direct access to customers for research/validation
- Provide access to meaningful data and insights
- Begin the measure of predictability after technical debt work-down
- Begin the measure of predictability after we have improve test coverage
- Let us hire people who have solved this exact *problem in a *perfectly similar context (technology, competitive, organizational)
- Give us control over who we hire, and don’t constrain hiring by forcing us to fill requisitions prematurely with subpar talent
- Let us use the software development methodology that suits us, and ideally let us complete similar efforts and collect data
- Make meeting rooms and soundproof rooms available at all times
- Remove all approval/review steps, or make those resources instantly available to the team whenever required
- Give the team time to get to know each other, and establish trust
- Remove all extraneous, non-value-add processes
- Eliminate any managerial sub-optimization, politics, and bureaucracy
- In lieu of all this, we’ll do what we can on our end. We’ll do our best