Classic books on developing software

The Mythical Man-Month

Frederick P. Brooks

Fred Brooks told the world a long time ago that “man-month as a unit for measuring the size of a job is a dangerous and deceptive myth”. If a person can finish a software development project in 6 months, can 2 people finish it in 3? If you want the software to be finished in a month, would you need 6 people? If you have been developing software for a while, you know you cannot simply shorten the schedule by adding more people because complexity and communication costs will increase squarely while the work done will only increase linearly.

Fred Brooks describes in this book what he has learned as a project manager during the development of OS/360 at IBM 30 years ago. The problems Brooks’ team encountered more than a quarter of a century ago are the same problems most development teams are facing today. One reason is that software teams are enamored with technology — a prevalent thinking that fast computers, latest programming language, and expensive tools make a highly effective team.

The 20th anniversary edition includes new chapters including Brooks’ famous 1986 essay No Silver Bullet in which he describes software construction as involving essential tasks and accidental tasks.

Even if you are not managing a team, I guarantee you that understanding the principles in this book will make you a better programmer and a team player.

Adding more programmers to an already-late project makes it later – Fred Brooks.

Code Complete: A Practical Handbook of Software Construction

Steve C. McConnell

I always recommend this book to anyone wanting to write clean code. It covers every aspect of construction including personal character. Reading it today, it may appear outdated because it has examples written in Pascal, C, and Fortran. But the principles and practices contained in this book are still very, very valuable. A 2nd edition is available and it covers object-oriented programming, internet development, and new practices popularized by the Agile Alliance. Buy copies of this book even if you believe you already have a top-notch team. From time-to-time, you will need a refreshing dose of good practices.

Rapid Development: Taming Wild Software Schedules

Steve C. McConnell

While Code Complete covers software construction, Rapid Development is about effective scheduling. What I like the most is the section on “Classic Mistakes Enumerated.” One time, I gave each developer in our team an enlarged photocopy of the table listing the classic mistakes in software development and encouraged them to read it regularly.

If you have read Mythical Man-Month before, you will find many of Fred Brooks findings discussed in this book augmented with facts and figures from years of systematic study and experience by the author. The author understands very well that if you are in the business of software, you need to backup your suggestion with numbers. Otherwise, nobody will believe you.

I know this is a book on scheduling published by Microsoft Press and authored by a consultant to Microsoft. But Microsoft does not claim it follows everything their consultants suggest. If you are interested to learn how Microsoft works, I suggest Microsoft Secrets by Michael Cusumano.

Advertisements

2 thoughts on “Classic books on developing software

  1. Hello,

    please help me to look this book “Rapid Developement” by Steve McConnell in the Philippines. My Niece is making A Thesis !!!

    Thanks !!!

  2. hope you can send me the copies of top 5000 corporation of 2006 and the data of 10 company per industry according to sales and their profile. thank you

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s