Archive of articles classified as' "Books"

Back home

I have read… ‘The Mythical Man-Month: Essays on Software Engineering’

9/01/2010

I have decided to write my first review on my last reading: The Mythical Man-Month: Essays on Software Engineering.

Cover image of 'The Mythical Man-Month: Essays on Software Engineering'

The title of the book refers to the the unit of effort man-month. It is used by (I want to think ‘old’) metrics to estimate and schedule software development. As Brooks explains in his book, while cost varies on the product of number of people and number of months, progress does not. It would do it if tasks in software development could be partitioned between individuals with no communication among them. When you take into consideration the need of communication between parts, the effort increases as n(n-1)/2. The famous Brook’s Law appeared in this book as an oversimplifying but eloquent way to capture the problem:

Adding manpower to a late software project makes it later

If you are interested in reading about the importance of communication in software development I recommend you to read Agile Software Development: The Cooperative Game. This book contains the most sensible discussion on the nature of software development that I have ever read. Cockburn defends that software development is a cooperative game of invention and communication.

Returning to the The Mythical Man-Month book, Another thing I loved is how it talks about the human factor in software development. In the chapter The surgical team, Fred Brooks says the following:

The conclusion is simple: if a 200-man project has 25 managers who are the most competent and experienced programmers, fire the 175 troops and put the managers back to programming

When I read this sentence I was totally amazed. Notice that the author was the project manager of the massive software system of IBM System/360 (OS/360). So more than 3 decades ago, a software developer with experience in developing huge programs, didn’t emphasized the need of ceremony and heavyweight recipes for software development. Instead he could clearly see what many people can’t today. He proposed that the most expert programmers should act as surgeons leading a surgical team. The rest of the team should assist them in order to maximize their effectiveness with the core tasks of writing the specs, designing, coding and testing.

Fred Brooks mentions a 1968 study that concludes that the best programmers are 10 times more productive that the worst ones. Robert L. Glass in Facts and Fallacies of Software Engineering talks about numbers ranging from 5 times better to 28 times better. Ignoring this fact is, in my opinion, the source of many deep problems in the spanish software development industry today. Companies don’t see technical talent as an asset to make more money, but simply like something academical.

Although these were the topics I enjoyed most, the book covers many other software development principles which are totally valid today: the importance of prototyping and the wicked nature of the discipline, the dangers of over-designing, the need of cohesive teams with good communication mechanisms… The visionary condition of the author was proved again with his famous article No silver bullet, which stated that nothing in the next 10 years (from 1986) would provide one order of magnitude improvement in software development. The article is included in the book by the way.

In conclusion, it is a book that I totally recommend. The principles it talks about are totally valid today and I really enjoyed reading about them considering the time the book was written. I am simply amazed by the fact that 34 years ago, someone was able to recapitulate so many true and concise ideas on software engineering, even before that software engineering, as a discipline, existed.

No Comments

My book backlog

7/12/2009

I have created an electronic registry of the books I read. To create it I have used the Now Reading Reloaded extension, based in the excellent Wordpress Now Reading extension. This extension makes very easy adding books searching for them in Amazon, and retrieving their data from Amazon’s servers (including their cover image). It also let you manage the life cycle of books (reading now, finished and unread).

So I installed this extension, went to my physical library and added the technical books I own. Then I modified the PHP templates to fit my page theme and show the results in the way I wanted.

My last two Amazon’s orders have been quite big (the current USD/EUR exchange rate has something to do with it), so now I have 16 books waiting to be read in my library (and a few more in my Amazon’s wish list). In recent times I have focused my reading mainly in agile development, ruby on rails, good programming practices and, to a lesser extent, user experience design.

I intend to write reviews of the books I read in the form of blog posts. I’ll link back the reviews from the book backlog, using a Now Reading feature that let you associate a post number to book entries.

No Comments