What is architecture?
IT architecture is the use of models, levels of abstraction and relationships in IT systems and processes to manage complexity and simplify communication.
- Why do we need architecture?
Over the years IT projects have grown in size, scope, complexity, expense and criticality. Ad hoc approaches to building these large projects have been consistently shown to fail by cost or time overrun, incorrect or missing functionality, inability to scale or be reliable and in the worst cases the inability to even finish the system.
Other disciplines than IT also have large and complex critical projects and these have been much more successful than IT in completing on time and budget systems. Examining these projects a common theme has been the use of abstraction and modeling to simply the overwhelming complexity and communicate common views to all the stakeholders. This use of abstraction is commonly called architecture and it would appear that architecture is the solution to many of IT’s ills.
A well architected solution is simple, clear, flexible, adaptable, scalable, reliable, highly available and easily understood. Above all it works!
- What are architects?
Architects are people who can take large and complex problems distill them into models with the appropriate layers of abstraction and then provide multiple views into these models to facilitate communication between all stakeholders.
- What skills do architects have?
Architects are able to take complex problems and simplify them by using models and the communicate the elements of the problem to a wide rang eo people. The specific skills that they have are are:
Leadership: Architects can develop partnerships with stakeholders across the organization on their projects; that they can mentor others; that they develop and form strong teams; and that they achieve successful results.
Technology Depth: Architects demonstrate that they have a deep understanding of the concepts and application of a number of core technologies (for example, messaging, storage, Windows, networks, etc.) plus the ability to quickly assimilate information about new technologies.
Technology Breadth: Architects understand architectural best practices and are able to apply them across a breadth of technologies to orchestrate a solution. They also have views on the future development of a technology and how it might influence current solutions. Finally, they understand the interaction between infrastructure, solution, and enterprise architecture and practices.
Strategy: Architects demonstrate understanding of enterprise architectural frameworks such as Zachmann and operational frameworks such as ITIL and be able to use these frameworks in their projects. They also understand project management principals and how architects interact with project managers to deliver projects. In addition, they understand the economic dimension of projects and how costs influence the available choices for technology.
Organization Dynamics: Architects show that they are able to recognize the key stakeholders in a project and that they can work with those stakeholders to drive a project to a successful conclusion. They present the ability to pick the right battles at the right time and then recognize the political landscape that influences a project within an organization and then influence organizational politics for the success of their projects.
Tactical/Process: Architects can gather and refine project requirements from both a technical and business perspective. They understand how to effectively prototype and test a solution and also showcase the talent to create effective project artifacts. Lastly, they exhibit the ability to refine project goals and the tactics necessary to achieve those goals as the project develops.
Communication: Architects can maintain well-written and accurate project documentation; they are able to present information on a technical subject in a concise and measured manner; they have the ability to influence others; they have the ability to manage conflicts effectively; and to tailor their communication to the needs of the target audience.
- What are the types of architect?
Whilst architects need all of the above skills the technical depth skills and experience level that they have make them fall into one of three architectural categories:
Enterprise Architects work on the architecture of the whole organization, including business, technical, software, infrastructure, security etc. They are concerned in bringing together the organizations IT architectures as a homogenous whole and matching it to the business needs and culture
Technical architects work across a broad architectural domain such as infrastructure or software. They have both breadth and depth expertise in that domain and an understanding of the other domains. Typical technical architecture domains are solutions, applications, infrastructure, integration, security, messaging, information etc.
Product level architects have an in depth understanding of the use of a specific product in a technical architecture domain such as Lotus notes in the messaging domain. Typical product architects are Exchange, SQL Server (normally as a DBA), Windows, and Networking etc.