A competent architect always has an intimate familiarity with the architectural body of knowledge. The software architect should

  • Be comfortable with all branches of software engineering from requirements definition to implementation, development, verification, validation & deployment
  • Be familiar with supporting disciplines such as configuration management and project management
  • Understand current design and implementation tools and techniques
  • Knowledge and Experience in one or more application domain is also necessary

The Knowledge Areas that a Software Architects needs to know are:

  1. Computer Science Knowledge
  2. Knowledge of Technologies and Platforms
  3. Knowledge about the Organization’s Context and Management

Computer Science Knowledge

Specific Knowledge AreaExamples of Specific Knowledge
Knowledge of Architecture Concepts– Architecture Frameworks
– Architectural Patterns
– Architectural Tactics
– Architectural Viewpoints
– Standard Architectures
– Relation to System and Enterprise Architecture
– Architecture Description Languages
– Emerging Technologies
– Architecture Evaluation Models and Methods Quality Attributes
Knowledge of Software Engineering– Systems Engineering
– Software Development Life Cycle
– Software Process Management and Improvement Techniques
– Requirements Analysis
– Mathematics
– Development Methods and Modeling Techniques
– Elicitation Techniques
– Component-Based Software Development
– Reusable Methods and Techniques
– Software Product Line Techniques
– Documentation
– Testing and Debugging Tools
Design Knowledge– Different Tools and Design Techniques
– How to Design Complex Multi-Product Systems
– Object-Oriented Analysis and Design
– UML Diagrams
– UML Analysis Modeling
Programming Knowledge– Programming Languages
– Programming Language Models
– Specialized Programming Techniques for Security, Real-Time, etc

Knowledge of Technologies & Platforms

Specific Knowledge AreaExamples of Specific Knowledge
Knowledge of Specific Technologies and Platforms– Hardware/Software Interfaces
– Web-Based Applications
– Internet Technologies
– Specific Software/Operating Systems (such as RDBMS concepts, Cloud Platforms, and SOA implementations)
General Knowledge of Technologies and Platforms– IT Industry future directions
– Infrastructure Impacts on Applications

Knowledge about the Organization’s Context and Management

Specific Knowledge AreaExamples of Specific Knowledge
Domain Knowledge– Most Relevant Domain(s) and Domain-Specific Technologies
Industry Knowledge– Industry Best Practices
– Industry Standards
– How to work in onshore/offshore team environment
Enterprise Knowledge– Company’s Business Practices
– Competitor’s Products, Strategies, and Processes
– Business and Technical Strategy
– Business Re-Engineering Principles and Processes
– Strategic Planning
– Financial Models
– Budgeting
Leadership and Management Techniques– Coaching
– Mentoring
– Training Software Developers
– Project Management
– Project Engineering

Knowing the DUTIES, SKILLS, and KNOWLEDGE of Architects in a particular organizational setting can help establish measurement and improvement strategies for individual architects.