Watching an NFL football game and seeing my favorite team lose as a direct result of the officiating got me thinking about the effect of too much management intervention in software development. So here’s what happened.
I was watching the (NFL) football game on Sunday between the New England Patriots and the New York Jets. These teams are in the same division and have a fierce rivalry. The game was tied at the end of regulation time and went into overtime. No surprise there.
What happened in the overtime was shocking. Ultimately, the officials decided the outcome of the game. They called an obscure penalty against the Patriots resulting in a first down and great field position for the Jets. That was all they needed to kick a field goal and win the game.
Just make a decision.
What does this have to do with software development? Answer me this — are your software project outcomes decided by company officials or by the development team members? Don’t simply say both. Someone has to decide.
I strongly believe that sporting event outcomes should be decided by the players. They know the rules. If they clearly violate the rules, they should suffer the consequences. However, if the game is very close and an infraction could determine the outcome, the officials should err on the side of letting the players play the game. Officials should almost never determine the outcome — the players should. The exception being a serious rule violation.
Similarly, software development teams have to make their own decisions. There have to be rules such as development practices, business requirements, definition of done, documentation needs, and test coverage. Within those rules, the team needs some leeway to select the proper actions.
Small decisions make a big difference.
In any complex undertaking, there are dozens, perhaps hundreds, of small decisions that have to be made along the way. It is often those small choices that result in success or failure. Let the team make them. Let them make their own mistakes and learn from them.
Having managers make all the decisions not only slows everyone down. It also takes away an opportunity to learn. Furthermore, it relieves the development team of any accountability for the decisions. If the team makes a wrong decision and is accountable for it, they will swarm to fix it. If management made the decision, the team dynamic will be very different.
Managers who get too deeply involved in the details affect outcomes in unpredictable ways, just like NFL officials. Let the team control the outcome. They’ll be stronger and smarter. And, the outcome will be better.