- The overall structure of the system components
- The public interfaces of the components
- The relationships among the components
- Explorer – looking forward to new technologies that may be leveraged to transform business
- Designer – create scaleable, secure, useable, and appealing applications
- 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.