Senior leaders who are frustrated with the adoption of agile by their tech teams often reach out to me. The most common complaint I hear is, “I just want to know when it’s going to be done. I used to get that, before agile. Why is there so much more uncertainty, now?”
The simple truth is, there isn’t.
1. The amount of uncertainty is decreasing, because teams aren’t committing to things before they understand them.
2. You’re hearing about it as the team learns about it, which is enabling you to make better decisions. Previously, you just never learned about it, and your teams struggled to meet the arbitrary project dates.
3. You were being lied to. Everybody working on the project knew it wasn’t going to be delivered on that date. But you wanted certainty. So they created certainty out of thin air. It was never anything more than a comforting lie everybody told everybody else, to help them feel in control.
4. Your projects were never delivered on time, under budget, and fully scoped. But it’s easier to be unhappy with the new thing than critically examine our rose-tinted memories of what came before.
Fundamentally, software development contains uncertainty. Asking your team for certainty on any sizeable project is putting them in a bad spot — it makes clear that you don’t understand the inherent variability in knowledge work, but they probably don’t feel comfortable telling you that, so they lie. And they, and you, and the business, pay the price.
If you want to get more predictable delivery, provide your tech people with clear priorities, help them sequence the work, and encourage them to come to you if they have problems that need your help. You won’t necessarily know exactly when you’ll get your widget, but you know the team is working on your priorities, and doing the best they know how to do. That’s all we can ask of anyone. If it’s not enough, look to yourself for ways to help — reduce scope, reduce conflicts, or hire more people (which will temporarily slow you down, so hire people for the long run, not short-term deliverables).