Today I'm on a mood for a rant. Be warned! :)
I constantly get gob-smacked (to borrow a term from a friend) about the lack of simple understanding of reality.
Let me explain. One particularly common symptom in management is that they tend to "believe" (that's the word) that they can affect what happens in a large/complex software development team. They believe that if they ask for more, pressure the teams that the teams will actually do what they ask them. That's almost never the case, and when it is you don't want to live with the result of that (quality problems, missed cases, etc.).
The more they push the teams to work on more things, the less they get. I call this the "reality is a bitch" problem. No matter what you think will happen you will always be surprised and there's nothing you can do about it... until you realize that you are not managing teams, you are managing the system in which they work!
Here's an example. A set of teams go away to plan the next iteration, they come back with their plans. Plans they believe in (i.e. a sprint backlog that is prioritized and estimated). During the Sprint all kinds of surprises happen (reality...) and then they deliver anywhere between 0% and usually 80-90% of what they had planned (it's less often that they deliver everything they planned and that's ok because the Sprint backlog was prioritized anyway).
After this manager scream bloody murder and pushes the teams to be more accurate! To plan more. Guess what happens? Yes, they do indeed plan more, (and in some cases, rare as they may be) plan better, but ultimately deliver between 0% and 80-90% of what they planned.
And here's where the manager's face hits the proverbial wall. The typical manager will try to find someone to blame (likely not himself) and increase the pressure by, perhaps, shouting at some innocent bystander like the project manager or the architect and demand more accuracy in the planning. You know the drill.
The problem with this picture is that the manager does not recognize that a group of teams will always deliver a certain % of their planned work (the larger the group the more reliably so). They may oscillate between, say 0% and 50% most of the time but their accuracy is realiable. What that means is that, any person aware of systems thinking will identify that there is a system at work that prevents the teams from being more accurate. And here is the lead for the informed manager: if you find such a situation don't waste your time shouting at people around you, instead go and study the system. Ask the question: "why can't they deliver on their plans?" and then ask why again (and again, and again). Investigate the deep causes for the planning failure. It is only then that you will be able to do something about it!
Embrace reality, understand reality and then change reality! Fighting reality is a waste of your time and just annoys everybody around you.
Photo credit: clawzctr @ flickr