I like software architecture (sa).  Why?  Because it really makes you think about your current problem domain (requirements) and how you should go about solving it through the use of abstractions (models, diagrams, documents, source code, etc.).  When thinking about sa, you should not attach a tool (a language, framework, pattern) to a name (C#, Java, .NET, J2EE, MVC, etc).  Just keep it simple and abstract.  I don’t want to get preachy about it, just sharing my point of view.

What got me thinking this way?  Well, it all started with this site.  After getting addicted to the content, I bought this book.  And recently, Harry Pierson has given me a different view on code, abstractions and tools.

What’s your take on sa?