Minimal IT logo and link to home page
Research, training, consultancy and software to reduce IT costs
Home | About | Newsletter | Contact
Previous | Next Printer friendly
22 November 2011

The Mythical Man-Month revisited

By Andrew Clifford

Have advanced tools and agile methods made us more accepting of mediocre performance?

I have recently been re-reading The Mythical Man-Month by Fred Brooks. Written in the mid-1970s, with an extended edition published in 1995, the book covers the experiences and insights of Fred Brooks who managed the development of the IBM System/360 mainframe computer and the OS/360 operating system.

Much of the background to the book, the development of large-scale mainframe systems with large teams of developers, is now rather dated. However, the book has been and remains influential because of its insights into the development process. It covers how the complexity of systems, and the need for communication, limits the speed of development irrespective of the number of people assigned to the work. This is summarised in Brooks's law: Adding manpower to a late software project makes it later.

The later edition of the book describes improvements in systems development over the intervening years. This includes the availability of PCs, packaged software, iterative development, and the use of object orientation. Since the later edition, the environment for developers has improved even more. Developers now have fast PCs, with advanced integrated development environments (IDEs). The Internet makes it easy to share code and ideas. The use of packaged software means that very few organisations now run large development departments, and most do not have the problems of scale. Many organisation have adopted agile methods, which are more focussed on the real dynamics of development. These improvements to technology and methods have overcome many of the problems that Fred Brooks wrote about.

However, there is one potential improvement described in The Mythical Man Month that has not been widely adopted.

The book covers how different developers have vastly different productivity. Much of this draws on research carried out in the late 60s, which is nicely summarised in this 10x Software Development piece. The Mythical Man-Month outlines a structure in which the development work is performed by a very small number of the most skilled developers. This is more effective because it is easier to achieve the required design consistency between a small number of developers, and it is much cheaper to use a small number of very good developers than a much larger number of developers of average ability.

Few if any organisations have adopted this approach. Developers are treated as interchangeable commodities, rather than the guardians of the system's conceptual consistency. We treat development as a relatively junior (and low paid) task in comparison to, say, project management. Good developers either leave or are tempted into management roles for which they are often not suited. In a sense, the improvements in development technology and methods have not helped, because they give a misleading impression of competence. Even with advanced tools and techniques, some developers will be much more productive, produce many fewer bugs, and create solutions that drive the organisation forward much more effectively.

Over the past few years, many organisations have reduced the size of their development teams, by the purchase of packaged software, by outsourcing, and out of financial necessity. This provides a real opportunity to restructure development to properly recognise the contribution and importance of key developers. It is an opportunity most organisations continue to miss.

Next: Complexity is your friend

Subscription

Subscribe to RSS feed

Latest newsletter:
Magical metadata

We use the term "metadata-driven" to describe IT solutions in which functionality is defined in data. Taking this to the extreme can provide unparalleled levels of speed, simplicity and versatility.
Read full newsletter

System governance

System governance helps you implement high-quality systems, manage existing systems proactively, and improve failing systems.

Find out more