After 30+ years as a software developer I have always struggled with managers needing to know how,what and when something will be solved or delivered. I have felt the frustration deep down but many times I have lacked the words to say “hey – if you cant even say what you want – how do you think I will be able to say when its done?”.
Everyone knows that complex things must be managed in steps – and this is why we have the agile methods – but still I get the same frustration within an agile sprint; what are you going to do today – how long will it take?
The way I handled this is by thinking “well the asker does not understand anything of what I do – so I can just lie and make stuff up to make them feel happy and secure”. So that is what I usually do and excuse my behavior with “software is a new industry and we need new strategies to make it work”.
Today I talked to a friend that is not in software – he is in supply and logistics – he threw in the towel and quit his job because he was frustrated beyond repair on the micro management from people wanting to know “what are you going to do today – how long will it take”.
So I understand that this is not a software-specific problem – its a management problem.
I heard my self supporting my friend by saying something along these lines:
What many managers fail to understand is that you can plan when and where to play tennis – but you cannot plan every stroke while playing tennis.
There are things that are structured and these should be planned in detail – but then we have the “action”-situation where you need to take quick decisions based on how things evolve and how the adversary act and the result will depend on your talent and experience.
A good manager is able to distinguish between the “structured things” and the “talent things”.
A good manager never tries to plan talent things – he or she knows it will have no positive effect and just mess things up if your player needs to follow a plan during action.
A good manager also tries to find structure in action so that the action situation is minimized. This is what we normally call “the business improvement process”. It is not a “talent thing” to show up on time at the right place with the right tools – that is structure. In order to gain productivity in any business we must always try and find structural patterns so that we can reduce the unplannable talent-situation – but once we have a talent-situation we need to let the talents solve the situation without management from the side lines.
Using MDriven strategies we have changed a lot of the normal software work from being a talent-thing to become a structured-thing.
We need talents that understand the business and be able to express that in an MDriven model – but that is the main talent we need.
We do not need talent for implementing c# code – because we made that a structured thing.
We do not need talent for database schemas – because we made that a structured thing.
We do not need talent to figure out how to alter a database for a new version of the system – because we made that a structured thing.
For many software development is 100% talent.
For MDriven “talking to the business and model solutions” is 100% talent – but the rest is structure.
Once you have structure you can automate. Once you can automate you can make things go insanely fast by using IT.