i came across a nice essay of reg braithwaite on what managing software development really means. he states that it basically consists of three main theories:
- accountability for results
- authority over resources
- making decisions based on judgement
in addition, management has to be accompanied by courage. good judgement means that uncertainties or risks, which are connected to options, have to be evaluated and reduced. sometimes you even cannot get a clear view of the decision basis and you have to cope with the risks bounded to your options. or you might possibly have to accept negative consequences that potentally will arise from any of your options. so you need more or less courage to decide which option to take.
i personally think that you should also add the need of a strategy to the above mentioned aspects. a red thread has to run through all of your decisions. they have to match to each other and should tend to a certain kind of long term goal, which also has to be accepted by your staff.
if your strategy doesn’t fit to the circumstances, i.e. the skills of your staff, the working environment or of course to a business case, you will be blamed for poor management.