views:

367

answers:

12

I've slightly more than 7 years of work experience designing and developing distributed systems in largely C++ (and some Perl) at a very large internet firm and am currently in the role of a technical lead. The next step for me is to either be an engineering manager or an architect. I've chosen the path of an architect (for all the reasons I'm already comfortable with). What books would the experts here recommend me to read to become a good architect?

A: 

I recommend Domain Driven Design by Eric Evans. It details some very important concepts, like the importance of actively pursuing an ubiquitous language (architects, developers and customers all speaking the same language), a rich domain model, differences between Entities and Value Objects, and generally how to handle complexity in software development and modelling.

Read more at http://domaindrivendesign.org/, or get the book at Amazon.

More answers in this thread.

Magnar
+1  A: 

read this S.O.L.I.D ebook, just to make sure you have the bases of code related design well covered.

Being involved with distributed systems you should already have plenty of the architectural stuff covered.

On the more high level view, you should really read this article - a better path to enterprise architectures

eglasius
+1  A: 

(Looking at my bookshelf)

  • Microsoft .NET: Architecting Applications for the Enterpise PoEAA

    Patterns of Enterprise Application Architecture

    ASP.NET Enterprise App Developement (Ok book but not as good as the above two)

    .NET Driven Design with C#

    Professional Refactoring C# and ASP.NET (not really an architectural book, and in my experience I found it a little bit junior, but it's a good read anyway).

There's also the usual patterns books, but they're more developer oriented, so you're probably already beyond that.

rob_g
A: 

This "Reading Guide To Becoming A Better Developer" has an excellent collection of books with a suggested order for different "stages" of understanding. I would suggest reading the article in full, but here is a sampling of the recommendations for the first "stage":

  1. Test-Driven Development (Kent Beck)
  2. Refactoring (Martin Fowler)
  3. Implementation Patterns (Kent Beck)
  4. Code Complete: 2nd Edition (Steve McConnell)
  5. Working Effectively With Legacy Code (Michael Feathers)
  6. Clean Code (Robert C. Martin)
Chris Melinn
A: 

It's a bit tongue and cheek but all 97 of these are worth a read.

Kane
+1  A: 

I'm surprised nobody has mentioned the Gang of Four:

Understanding these design patterns and knowing when and how to use them is essential for a software architect. I also think that every manager/architect should read the Mythical Man Month, but that might not be your style.

  • The Mythical Man Month
Zach Bialecki
A: 

Some excellent links have been suggested although most are focussed on technology and process. I'd like to throw something about the role of a software architect into the mix (disclaimer, it's my site):

http://www.codingthearchitecture.com/pages/role.html

Good luck, Simon

Simon Brown
+1  A: 

Greatest book for this would be

Patterns of Enterprise Application Architecture

http://www.amazon.com/exec/obidos/ASIN/0321127420

I also recommend you to follow more books from Martin Fowler.

this. __curious_geek
A: 

I think the book: Pattern-Oriented Software Architecture would be helpful.

The book comes in four volumes with each volume covering different areas. I've read
parts of Volume I and what I found useful was the explanation provided about how
various design patterns gel together while building a non-trival software application.

sateesh
A: 

My books

CodeToGlory
A: 

Richard Gabriel's Patterns of Software, as well as some of his other writings at http://www.dreamsongs.com/ -- particularly the whole "Worse is Better" saga & the essays on Christopher Alexander. ( Alexander's books would be the next ones on the list. )

Steven D. Majewski