People who are good at the command-and-control approach to software development are always right. That’s correct, they are always right — every time.
That’s ridiculous, you say? How can they always be right, you ask?
It’s simple. They commit to schedules, costs and feature sets. Then, they pull out a risk management table and tell you about all the things that might go wrong and how to mitigate them. When one of their commitments isn’t met, they’ll simply pull out the risk management table and use it to explain and justify what happened. Hence, they are always right!
It’s not easy to do but if you master the art of managing risk, command-and-control is the way to go.
Personally, I’d rather put my hard work and brainpower into building better software rather than managing risks. Which leads to a great question — can agile software development teams also always be right?
You could try one of the following techniques:
- Play the same risk management game – Or not.
- Pad your estimates – I don’t like this because it feels unethical and in a way it is.
- Don’t commit or at least postpone commitments for as long as possible – Not likely to succeed in most companies.
- Under promise – People will catch on to this eventually and expect you to over deliver.
- Build relationships – This is the key to success!
We all need support. Family, friends and co-workers need our support and we need theirs. If you have a support network at work, people will be helpful and understanding. If not, work will be a constant struggle.
Agile development is a team-based approach to building software. The team needs to include a variety of skill sets including marketing, sales, engineering and customer service. We need to spend more time building relationships and forming an internal support network, and less time defining the perfect development process (which doesn’t exist — anywhere).
Conflict is inevitable.
Another area where relationships work wonders is when conflict erupts. Face it, software development is somewhat chaotic and conflicts are inevitable. The business wants what they want and the developers do what they can do. The two rarely align perfectly. Conflict is the result. If the relationships are minimal, chaos wins and everyone else loses.
Many managers work hard to avoid conflict preferring to bury issues rather than resolve them. That’s too bad because conflict strengthens relationships and builds support — as long as the people in conflict are reasonable and willing to compromise.
So get to work on those relationships. Resolve conflicts and build a support network. Oh yeah! Don’t ignore those risks, but don’t dwell on them either.