Monday, June 13, 2016

Management - what are we left with?

Over the last four months I have written a dozen blogs concerning management of software development. I will write more, but I’d also like to draw a line under this mini-series for now - there are other things I want to blog about.

Management in and of software development is an important topic, simply abolishing it is simplistic. Although as I said earlier: sometimes the management is so bad getting rid of it is an improvement.

Right now I’d like pull together some of the key arguments I have made in this mini-series. And I’d like to start with the words of Fred Brooks:

“the quality of the people on a project, and their organization and management, are much more important factors in the success than are the tools they use or the technical approaches they take.” Brooks, Mythical Man Month, 1995.

Perhaps the key argument I'm trying to make in this series is: There is “management” work to do - the same as there is coding, testing and customer understanding.

Such work is legitimate, just because it isn’t coding, testing or requirements analysis/gathering doesn’t make it irrelevant or trivial. Manager-less teams might well reduce the amount of work (which is good) or might redistribute but there is always a some to do.

A lot, if not most of this work involves decision making. Such decision making usually requires authority and may require making decisions with less than perfect information. Sometimes the missing information is unknowable, or is only knowable at a prohibitive costs (which might be time, money or something else.)

Consequently doing management work requires skills of its own, but even more than skills it requires intuition. So it takes an engineer to manage engineering, non-engineers managing engineering work usually lack intuition in engineering decisions.

Once you recognise managing as a skill in its own right the question then becomes: is it better to spread the work around (in which case everyone needs time and skills to do the managing) or centralise it in one place?

Other things to consider are: