::
How to Grow Your Architects
The concept of software architecture has gotten more focus in recent years. However, there is still a wide set of views on "what is system architecture?".
How do you answer these questions in your projects?
How do you answer these questions in your projects?
- Who is the architect of your system? Do you have someone in that role? What are his or her responsibilities?
- How did the architect assume the role? How does the architect interact with other members of the team? With the customer?
- Do you have an architecture document? What does it describe? Does it just list a set of technologies employed or does it describe all of the system scenarios and how they are accomplished?
- How do you insure that the performance of the system is adequate when the system goes into service? Are you using a "build it now, tune it later" approach? What happens if capacity is so bad it cannot be tuned?
- How does the system respond to errors? What is the required reliability and availability of the system? How do you accomplish this?
::
Architecture Training
There is a critical need on any project to have a compehensive technical plan for implementation. In many organizations, developing this system level architecture has long been problematic due to a lack of experience of development staff.
As an outgrowth of the popular Architecture Review process, staff from Haskell Technologies developed both an Architecture Course and a follow on Performance Engineering Course. These courses prepare architects and developers for producing a sound design.
- The Systems Architecture Course presents topics on systems and software architecture to ensure the completeness of thinking from requirements specification to the overall specific design approaches throughout the system.
There are 4 main sections - Problem Definition, Architecture Synthesis, Architecture Validation, and Role of the Architect.
Topics covered include solving the right problem, completeness of requirements, performance, availability and reliability, system maintenance and administration, and architecture level patterns. Many case studies are discussed from past Architecture Reviews on issues that have caused projects to fail.
The course is typically taught in a 3-4 day format. The course can also be taught as a workshop with working sessions on a sample application which reinforce key learnings on how to produce a sound and complete systems architecture. - The Performance Engineering Course presents an engineering approach for how to specify performance requirements, and how to design in performance and track both capacity and response time issues throughout the development lifecycle. In addition, measurement tools and approaches are presented to allow for validation of performance targets as well as identification of trouble spots. This course has taught architects and developers how to avoid the classic performance crisis that all too often appears at the introduction of a new system. The class is taught in a 1-2 day format with optional working sessions on a sample application.
