I just finished reading Facts and Fallacies of Software Engineering by Robert Glass. Here are some of my favorite facts from the book:
“Fact 21: For every 25 percent increase in problem complexity, there is a 100 percent increase in complexity of the software solution. That’s not a condition to try to change (even though reducing complexity is always a desirable thing to do); that’s just the way it is.”
“Fact 22: Eighty percent of software work is intellectual. A fair amount of it is creative. Little of it is clerical.”
“Fact 27: There is seldom one best design solution to a software problem.”
“Fact 28: Design is a complex, iterative process. The initial design solution will likely be wrong and certainly not optimal.”
And here is a summary statement for the book:
“Notice that the underlying theme of many of the facts in this book is that the construction of software is a complex, deeply intellectual task, one that shows little possibility of being made simple.” (Page 102)
The author covers a whole slew of topics in this fairly short book. Some of the ideas in one “Fact” which are discussed for the duration of one or two pages in this book are elsewhere discussed in much more depth. But this book is great for its ability to distill so much down to pithy statements which are both insightful and interesting. I’d highly recommend this book to anyone involved in software development.