When planning a project, one thing I do is to imagine failure and work backwards. I am trying to figure out a theoretical root cause that I can mitigate. That’s a common project management technique.
But, if the seeming root cause is external, I keep going.
Instead of: The project slipped because …
Team X didn’t deliver part Y by MM-DD
which is hard to control, I assume responsibility for the failure:
We didn’t start the code using part Y until MM-DD
Then, these follow:
- We didn’t build a mock of part Y so we could start our work before it was delivered
- We didn’t ask for part Y to be put in staging before it was finished
- We didn’t publish a full timeline showing the dependency on part Y to team X
And so on. These are all things I can do something about.