Microsoft

Blog Categories

Subscribe to RSS feed

Archives

TechEd – Sunday: Software Architecture seminar

I arrived at TechEd 2007 in Orlando last night, and today I has the privilige of attending a pre-conference seminar on Software Architecture given by Ron Jacobs. Ron is a very sharp guy with some great and unique insight into just what software architecture means. Check out his radio and TV shows to hear it from him firsthand.
You can download his presentation slides from his site. The seminar was an all-day event, and he covered quite a few topics in some detail. Overall, I left with a few key take-aways about architecture and the role of the architect…
What is software architecture?
  1. The overall structure of the system components
  2. The public interfaces of the components
  3. The relationships among the components
The developer and the architect are actually very different roles requiring different skill sets. Being great at one doesn’t mean you’ll be successful at the other. The architect has a broad width to his understanding of available technologies. Depth isn’t quite as important – that is the domain of the developer.
The architect has 3 primary roles to play:
  1. Explorer – looking forward to new technologies that may be leveraged to transform business
  2. Designer – create scaleable, secure, useable, and appealing applications
  3. Advocate – ALWAYS serve the needs of the client. LISTEN. And be brutally honest – even if its not what the client wants to hear.

Communication, to both technical and non-tecnhical audiences, is the #1 skill of a successful architect.

The architect creates goals and boundaries for the developers to work within. He will define the problem to be solved (along with the client) and will survey the existing constraints.

A clear architecture document is important (maybe critical?) to define the problem to be solved, the scope of the solution, and the overall architectural plan for implemetation. It should define very specific goals for security, availablility, and performance.

Once an architecture is planned for a system, it is important to have an architectural review, where the plan is reviewed by colleagues to uncover any shortcomings. This is not done very often, but it has been shown that a review can catch a crtical flaw that may cost time & money down the road, or even uncover an unseen showstopper that may have killed the project.

Thanks to Ron for a great class. I’m looking forward to the rest of the week.

Leave a Reply