views:

458

answers:

7

We all here know about the influence of "Mythical Man-Month". However, after re-reading some chapters in it lately, I understand that despite the fact that there's still no silver bullet, it start being a little bit outdated.

A lot of organizational approaches has been developed lately (e.g. agile methods were a hype and success), software industry grown and changed since the inception of the "Mythical Man-Month". Is there any newer book which is influential and covers more modern approaches to software engineering?

EDIT: There were some good suggestions, though I would not think that all of them are qualifying as post-MMM influential pieces.

Code Complete and Pragmatic Programmer (despite being very good books) are more focused on coding aspect of software engineering, not the global practice of organizing and managing software projects. Peopleware and Psychology of Computer Programming are closer. Do you know any influential pieces in this vein?

+4  A: 

I personally find Dreaming in Code quite interesting. It talked about how an open-source project with great vision, millions of dollars and best programmers can still fail. It also helped me to realize and fix a very bad habit of mine, "over-design".

oykuo
+5  A: 

As I'm sure many others will suggest... Code Complete by Steve Mcconnell is widely regarded as essential reading.

Garry
+10  A: 

My personal favorites:

Philippe Leybaert
+1 for Code Complete, but it's McConnell with two l's.
Steven Sudit
fixed... sorry about that
Philippe Leybaert
The Pragmatic Programmer: Cheap, short, awesome.
erenon
+2  A: 

A book that covers some of the same ground as TMMM from a more modern perspective, is Rapid Development. This is by Steve McConnell, who wrote Code Complete, and is to my mind the better book.

anon
+2  A: 

Don't know if its the most important, but Peopleware is a pretty good book IMHO

Gishu
+1  A: 

My absolute personal favorite is:

Domain Driven Design by Eric Evans

"Readers learn how to use a domain model to make a complex development effort more focused and dynamic. A core of best practices and standard patterns provides a common language for the development team. A shift in emphasis - refactoring not just the code but the model underlying the code - in combination with the frequent iterations of Agile development leads to deeper insight into domains and enhanced communication between domain expert and programmer. Domain-Driven Design then builds on this foundation, and addresses modeling and design for complex systems and larger organizations."

taken from http://books.google.com/books?id=7dlaMs0SECsC&hl=de&source=gbs_navlinks_s

Look at http://domaindrivendesign.org/examples for example source code.

KlausMeier
+2  A: 

i like uncle bob's clean code:http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew

Ray Tayek