The formative moment of building an architecture practice calls for a directive but not prescriptive collaboration where the team defines its charter and the pillars of the capabilities it offers. One way to kick things off is with a word cloud brainstorming session where many ideas can be generated quickly. The facilitator prompts the group with a proposed set of architecture practice responsibilities and then sees where the discussion heads from there. Here is some example brainstorming on the responsibilities of a modern day architecture practice and what initially comes to mind as I think about its form and function.

 

 

Formalize the Architecture Practice

The architecture practice is a first-class function, organized, funded, and empowered for success.

   
       

 

       
       
       
       
 

Standardize Customer Profiles

Everything the architecture function does has a clear line-of-sight back to the customer. Architectures typically have multiple stakeholders that must be well-known.

   
 

       
       
       
       

 

 Drive Use of a Reference Architecture

A reference architecture provides the high level context in which all other design occurs, offering common vocabulary and constructs for direct use, augmentation, and adaptation by all other design efforts.

   
       
   
       
       
       
       
 

 Establish Cross-Enterprise Architecture and Detailed Design Standards

Concrete architectures are also the purview of the function, providing more detailed and technology-specific guidance on how to build software. Standards provide implementation prescriptions that should enable software development.

   
       

   

       
       
       
       
 

Govern Adaptively

Ensuring adherence to architecture and implementation standards drives up software quality and the number of successful development projects. The governance needed to achieve that quality and success can vary considerably across projects and different organizations within an enterprise. Adapting governance to key considerations ensures the right balance of speed and quality while providing teams with a better overall work experience.

   
       

  

       
       
       
       
 

Drive Concerted Technical Innovation and Evolution

The architecture function should be the champion for technical innovation that proactively cultivates creative contributions from the engineering and product management communities. The architecture function should also enable adoption of industry innovations.

   
       

 

       
       
       
 

 Drive Concerted Effort to Advance Technical Agenda Outside of the Enterprise

Part of the leadership role that an architecture function plays is representing the interests of the enterprise to the outside world.

   
       
    
       
       
       
       
 

 Service Orient the Enterprise

Similar in spirit to the standardization of functional domains, service orientation endures as a software engineering and organizational technique with many virtues.

   
       

  
       
       
       
       
 

Standardize Key Roles

Good project management practice also applies to establishing an architecture function. Clear role responsibilities and an expectation for collaboration at the boundaries of design are critical to efficient execution.

   
       
       
       
       
       
       
 

 Standardize Functional Domains

Decomposition of systems and solutions according to function is a classic design responsibility of architecture whose practice continue to endure today.

   
       
    
       
       
       
       
 

Shepherd Planning

The architecture function plays a critical role in defining the target state for software development, how to reach that target state through incremental development, and the technical considerations that can make-or-break execution.

   
       
    
       
       
       
       
 

Be Principled

Architectures tend have higher technical quality when their principles are defined a priori to definition. They should also guide and enable lower levels of design decision making.

   
       
    
       
       
       
       
 

Build Reusable Cross-Domain Software

Any sizable development effort invariably requires common software that should be built once for reuse across the functional / product domains of the enterprise. The architecture function serves as the gatekeeper and champion for this level of reuse.