Posted by Abhishek on January 04, 2020
Not every architect in every organization will perform every one of these duties on every project. But a competent architect should not surprised to find himself or herself engaged in any of the activities listed below. Broadly, there are 2 categories of duties.
Specific Duty | Examples of Duties |
Creating an architecture | – Design or Select an architecture – Create a Software Architecture Design Plan – Building a product line or product architecture – Making Design Decisions – Detail out & Refine the Design – Identifying Patterns & Tactics – Partitioning the System – Define how components fit together |
Evaluating & Analyzing an Architecture | – Evaluating the architecture of a current system – How many use-cases & quality attribute scenarios does it address – Participate in Design Reviews – Create Prototypes – Review the design of components by junior engineers – Review designs for compliance with architecture – Compare architecture evaluation techniques – Coming up with an alternative approach – Performing trade off analysis |
Documenting an Architecture | – Prepare Architectural Documents and Presentations for stakeholders – Document Software Interfaces – Produce Documentation Standards – Document Variabilities & Dynamic Behavior |
Working with and transforming existing systems | – Maintain & Evolve the existing system and its architecture – Redesign existing architecture for migration to new technologies & platforms |
Other Architectural Duties | – Sell the vision & keeping the vision alive – Participate in Product Design Meetings – Give Technical advice on architecture, design & development – Provide architectural guidelines for software design activities – Lead architecture improvement activities – Participate in Software Process Definition & Improvement – Define the principles of Global Architecture – Oversee & Manage the Architecture Definition Process |
Managing the Requirements | – Analyze Functional & Non Functional Requirements – Understand Business & Customer Needs and ensure that the requirements meet these needs – Capture customer, organizational and business requirements on the architecture – Create Software Specifications from Business Requirements – Listen to and Understand the Scope of the Project – Understand the client’s key design needs and expectations |
Implementing the Product | – Produce Code – Conduct Code Reviews – Develop Reusable Software Components – Analyze, Select & Integrate Software Components – Set and Ensure Adherence to Coding Guidelines – Recommend Development Methodologies and Coding Standards – Monitor, Mentor, and Review the work of outside consultants and vendors |
Testing the Product | – Establish architecture-based testing procedures – Support System Testers – Support Field Testers – Support Bug Fixing and Maintenance |
Evaluating Future Technologies | – Evaluate and recommend Enterprise’s Software Solutions – Manage the introduction of New Software Solutions – Analyze the current IT environment and recommend solutions for deficiencies – Work with Vendors to represent the organization’s requirements and influence future products – Develop and Present Technical White Papers |
Selecting Tools and Technology | – Perform Technical feasibility studies of New Technologies & Architectures – Evaluate Commercial Tools and Software Components from an architecture perspective – Develop Internal Technical Standards and Contribute to the Development of External technical Standards |