6 books and papers every software developer should read
Over the years I’ve read a book or two about my craft: software development. Most of these books simply provides technical references for the latest and greatest must-use tools. Although, some have focussed on assessing, or, simply reporting on the craft of coding. A common theme running through such literature are the references made to must-read papers books and essays. The following captures this observation:
The Mythical Man-Month
The book is widely regarded as a classic on the human elements of software engineering. Written by Fredrick Brooks and published in 1975 it discusses the theory of adding manpower to a late software project. Pulling from personal experiences Brooks explains that adding man power to a late project makes it later. This idea is now commonly know as Brooks’ law.
The Cathedral and the Bazaar
Eric Raymond’s book comparing the open source movement with the more traditional closed source development. This book takes its name from a paper published by the same author three years prior. Raymond discusses the benefits of the open source and pits this against the conventional, closed source software development. With recent contributions by Microsoft to the biggest open source project (the Linux Kernel) the Cathedral and the Bazaar analogy fits perfectly. I love it!
No Silver Bullet
No Silver Bullet was also written by Fredrick Brooks. In was penned in 1986 and is a widely discussed paper on software engineering. The paper sets out the argument that “there is no single development, in either technology or management technique, which by itself promises even one order of magnitude.”.
The original paper is available in several places on the Internet including here. It is also covered in Chapter 13 of Brooks’ book The Cathedral and the Bazaar cited above.
Coders at Work: Reflections on the Craft of Programming
Managing the Development of Large Software Systems
Royce Winston wrote an article in August 1970 for the WESCON ’70 conference for the Institute of Electrical and Electronics Engineers (IEEE). As a result of this article Royce is credited as the first person to describe the development waterfall model. This one model is surely responsible for producing millions of software projects : the good, bad an ugly! And, still to this day, the waterfall model stands as an equal to the more contemporary rapid development methodologies.
The paper is available on-line here.
Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software
This book is like reality TV for software developers. The author Scott Rosenberg shadowed an ever changing team for three years as they thrashed through the challenge of brining Mitch Kapor’s ambition Outlook-like product to market. As a fellow developer I felt the highs and lows of the team. I found myself shouting at the book saying “No, NOT that way! There is a better way to do that”, or, “Don’t leave the project now – it’ll set them back 6 months”. A must read.
Published in 2007 this book is for sale on Amazon. Pretty cheap too!