Monday, July 9, 2007

The Mythical Mongolian Hordes

Following on from previous blog about M.A.Jackson another early IT writer was Fred Brooks who wrote "The Mythical Man-Month" also written in 1975. This book is dated in its title for not being gender neutral. I have never been completely comfortable with "person-months" or "staff-weeks" though. Even so, he contains some absolute gems of wisdom.

The concept of a man-month (I'll stick with this in deference to Dr. Brooks) as a unit of estimating projects implies that the more staff you put on the project, the faster it will get done. This is the myth. In actual fact the more staff you put on, the more complex the project gets and eventually you will put on a staff member who will (through no fault of her own) will make the project take longer rather than reduce the time frame. To this he adds insights like "Adding staff to late project makes it later" and "Take no small slips". If you have a project in trouble then you better change the time-frame or reduce the functionality, and do not do it in small measures.

Fred Brooks also coined the term "Mongolian Hordes" to describe the perception you could just assemble a big team and get the job done. The term comes the enormously successful reign of Genghis Kahn in building a huge empire. The suggestion that all you need is a big team is again a Myth. Even with the multitude of specialities required in a big modern development team, more people are not always the answer. I wonder at the political correctness of this term as well. I have a number of IT staff with Asian heritage, I have no knowledge of any of them coming from Mongolia but I still wouldn't feel comfortable using the term.

Some modern software does help a big team to be productive. In my organisation mainframe programmers struggle with version control. If a programmer "has" a module then often no-one else can touch that module until the thing goes into production. We are looking at version control software but the mainframe vendors charge some extortionate rates for their software.

In the mid-range space we use CVS and are dabbling with Subversion. These are both open source project and work well. A version control system is an important part of a software development environment. It allows a team to work together. One of many collaborative tools that an organisation needs to do some serious software development.

Interview with Fred Brooks
http://money.cnn.com/magazines/fortune/fortune_archive/2005/12/12/8363107/index.htm

Some references on Genghis Kahn and Mongolian Hordes
http://www.coldsiberia.org/
http://en.wikipedia.org/wiki/Mongol_Empire

'Person month, gender neutral and explicitly including the other, "better" 50 %; politically more correct equivalent to man month'
http://www.efsot-europe.info/servlet/is/167/

Subversion
http://subversion.tigris.org/

CVS
http://ximbiot.com/cvs/

No comments: