share
Stack OverflowBooks about the philosophy of software development
[+38] [14] anon
[2010-01-25 10:17:16]
[ books software-engineering philosophy ]
[ http://stackoverflow.com/questions/2131538] [DELETED]

The first time I read The Mythical Man Month [1], I found the book utterly boring, a waste of my time, and thought it was written by some management guru that never wrote a line of code.

A few years later, I realized Fred Brooks won the Turing award. Some years after that, after a few large development projects, I started understanding what he was talking about.

Are there any other books about software development on a meta/philosophical level—not in the sense of design patterns, templates, or even lisp macros—but at a level where ideas are expressed without code?

(16) Am I the only one who thinks this has 'Community Wiki' written all over it? - Wim Hollebrandse
(2) I hate that someone gets 350 rep (as in they are now more reputed in the community and I should trust them on technical answers) because they asked a subjective question. - Graphain
[+17] [2010-01-25 10:34:43] Alan [ACCEPTED]

Books that I have read and liken which may interest you are:

  1. Pragmatic Thinking and Learning: Refactor Your Wetware [1] by Andy Huny
  2. Clean Code [2] by Robert Martin
  3. The Productive Programmer [3] by Neal Ford
  4. 97 Things Every Software Architect Should Know [4] by Richard Monson-Haefel

Also worth considering is Domain-driven design [5] by Eric Evans, this could be written off as a patterns book however I feel it improves the way we look at and think about building OO software.

Also some of the best articles can come from the blogs of the top people in the fields, some of the blogs I follow are:

  1. Coding Horror [6]
  2. Martin Fowler [7]
  3. Andy Hunt [8]
  4. codebetter [9]
  5. Uncle Bob's Software Craftsmanship Corner [10]
[1] http://rads.stackoverflow.com/amzn/click/1934356050
[2] http://rads.stackoverflow.com/amzn/click/0132350882
[3] http://rads.stackoverflow.com/amzn/click/0596519788
[4] http://rads.stackoverflow.com/amzn/click/059652269X
[5] http://rads.stackoverflow.com/amzn/click/0321125215
[6] http://www.codinghorror.com/blog/
[7] http://martinfowler.com/
[8] http://blog.toolshed.com/
[9] http://codebetter.com/blogs/
[10] http://www.artima.com/weblogs/index.jsp?blogger=unclebob

(1) +1 for Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Huny - Chad
1
[+9] [2010-01-25 10:20:17] Rob Wells

I'd recommend:

All speak to the nature of the craft of writing code though, in many cases, not actually talking about writing code.

One extra book I'd like to add is Ed Yourdon's " Decline and Fall of the American Programmer [7]". The main content of this book is almost completely out of date but the appendix "The Programmers Bookshelf" is worth the price of admission alone. It is a list of books that goes beyond coding and testing along with an essay where Ed picks out many, but not all, of the books and talks about why you should read them.

This was the essay that turned me on to Fred Brooks's book along with Gerry Weinberg's Psychology book mentioned above.

And you can buy a copy of Decline and Fall for 0.01c second hand now!

You might also like to listen to Peter Coffee's Agile 06 keynote address where he relates his choice of "must have" books back to the Agile Manifesto ( mp3 [8]). An interesting worthwhile way to pass an hour.

[1] http://rads.stackoverflow.com/amzn/click/020161622X
[2] http://rads.stackoverflow.com/amzn/click/0932633420
[3] http://rads.stackoverflow.com/amzn/click/0201733862
[4] http://rads.stackoverflow.com/amzn/click/0060971843
[5] http://rads.stackoverflow.com/amzn/click/0671819100
[6] http://rads.stackoverflow.com/amzn/click/0932633692
[7] http://rads.stackoverflow.com/amzn/click/013191958X
[8] http://media.libsyn.com/media/agiletoolkit/Agile06_Keynote_PeterCoffee.mp3

+1 for The Psychology of Computer Programming. I'm reading it now. - Greg Hewgill
G'day Greg, cheers. Gerry has written some awesome books. Just added one more to my answer. - Rob Wells
2
[+5] [2010-01-25 10:25:24] Srinivas Reddy Thatiparthy

I found these interesting ;I hope you too ,will find interesting

1.Articles by Paul graham [1]
2. Coders at work [2] by Peter Seibel
3. Joel On Software [3]
Edit: I searched SO, i found these links.You must see these links.
One [4]
Two [5]

[1] http://www.paulgraham.com/articles.html
[2] http://www.codersatwork.com/
[3] http://www.joelonsoftware.com/
[4] http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read
[5] http://stackoverflow.com/questions/38210/what-non-programming-books-should-programmers-read

(1) +1 on books 2 & 3, great sources - Jason
3
[+5] [2010-01-25 10:31:53] Laizer

I also agree that Code Complete [1] is a good one. I found it helpful in identifying the pieces of the coding craft - what steps are involved and what the best practices are.

I just finished Dreaming in Code [2] and found it it be a great on-the-ground account of what happens in the life of a software project. It speaks about many (most?) of the major ideas that have come into play in the world of Software Development, and illustrates them with some vivid (and sometimes painful) examples from the real world.

Last one I'd point out is Peopleware [3]. It focuses on managing coders and how to get the best out of them. It smells a bit like the 70s, but still has some valuable insights. It's one of the few books I've seen Joel Spolsky recommend himself.

[1] http://rads.stackoverflow.com/amzn/click/0735619670
[2] http://rads.stackoverflow.com/amzn/click/1400082471
[3] http://rads.stackoverflow.com/amzn/click/0932633439

(1) Dreaming in Code is good, although it made me hope I never end up on a team that is so lacking in leadership. - Jason
4
[+5] [2010-01-25 12:51:09] JuanZe

Notes on the Synthesis of Form [1], by Christopher Alexander, an awesome book about the process of design. Not so well known as Alexander's books on patterns, this book is a great eye opener.

A great non-software pattern catalog: Organizational Patterns of Agile Software Development [2] by James O. Coplien. This book isnĀ“t about software patterns, is about people, a catalog for creating successful teams. Every manager should read this book!

Domain-Driven Design: Tackling Complexity in the Heart of Software [3] by Eric Evans, the most valuable book I found to think about the whole software design process.

Peopleware [4] by Tom DeMarco and Timothy Lister "demonstrate that the major issues of software development are human, not technical".

[1] http://rads.stackoverflow.com/amzn/click/0674627512
[2] http://rads.stackoverflow.com/amzn/click/0131467409
[3] http://domaindrivendesign.org/books
[4] http://rads.stackoverflow.com/amzn/click/0932633439

(1) +1 for Notes. I would give you another +1 for Peopleware... - CesarGon
5
[+4] [2010-01-25 13:08:24] Mihaela

In addtion to "Peopleware" and "Code complete"

[1] http://rads.stackoverflow.com/amzn/click/032163537X
[2] http://rads.stackoverflow.com/amzn/click/1590595009
[3] http://rads.stackoverflow.com/amzn/click/0596510047
[4] http://rads.stackoverflow.com/amzn/click/1430219483

6
[+4] [2010-01-25 10:25:08] Oded

Code Complete [1] is a great one.

[1] http://rads.stackoverflow.com/amzn/click/0735619670

7
[+3] [2010-01-25 13:37:34] Ariel

On top of the already mentioned Code Complete and Peopleware, I found Programming Pearls [1] really interesting. It strongly emphasizes the importance of a good problem definition and the choice of the right tools.

[1] http://rads.stackoverflow.com/amzn/click/0201657880

8
[+2] [2010-01-25 10:21:55] Nick Dandoulakis

Hackers and Painters: Big Ideas from the Computer Age [1] by Paul Graham

The Art of Unix Programming [2] by Eric Steven Raymond

[1] http://rads.stackoverflow.com/amzn/click/0596006624
[2] http://www.faqs.org/docs/artu/

9
[+1] [2010-01-25 10:24:27] community_owned

It does have some code (but then, so does TMMM), but I think that Steve McConnell's Rapid Development [1] is a far better book than TMMM when it comes to the practice of software project management - it's not very philosophical though.

[1] http://www.stevemcconnell.com/rd.htm

10
[+1] [2010-01-25 14:12:33] TMN

Just about anything by Dave Parnas (the guy who really codified the foundations of software design) or Gerald Weinberg. I especially recommend Weinberg's An Introduction to General Systems Thinking, and Software Fundamentals [1], a collection of Dave Parnas' papers.

[1] http://rads.stackoverflow.com/amzn/click/0201703696

11
[+1] [2010-01-26 18:20:22] Kelly S. French

Waltzing with Bears: Managing Risk On Software Projects - by Tom DeMarco & Timothy Lister

This book does an excellent job covering the foundation of risk management and how current practices pay it lip service. My favorite line in the book is a response to the overbearing business executive who wants a more aggressive schedule,

"I can prove to you that beyond March, every month that this product is not ready to ship will cost this company one-hundred-ten-thousand dollars in lost profit."

Which is met with,

"Well then you obviously started this project much too late. If you'd kicked it off eighteen months ago, we could be shipping now, and all those months of hundred-ten-thousand-dollars' extra profit..."


12
[0] [2011-05-26 17:18:19] Arturo Herrero

I love Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman [1].

Check it online: http://apprenticeship-patterns.labs.oreilly.com/

[1] http://rads.stackoverflow.com/amzn/click/0596518382

13
[0] [2010-01-26 18:08:21] David

One that I just got through reading is The Passionate Programmer [1], which has been recommended in some other threads here. I also read Practices of an Agile Developer [2] a couple years ago, when I was about to transition from being an integration tester to being a developer, and found it helpful.

And on the web, of course, there are great articles on Joel on Software [3] that discuss a developer's approach to work.

[1] http://rads.stackoverflow.com/amzn/click/1934356344
[2] http://rads.stackoverflow.com/amzn/click/097451408X
[3] http://www.joelonsoftware.com/

14