Software Architect is a vague term, and is having varied responsibilities in different Organizations and Environments. However if we talk about well accepted concept, a Software Architect is responsible to architect the system and lead all technical initiatives in the system. Software Architect is actually a senior technical person and often an ex-developer who has acquired a good level of skills across the
products and platforms and having good experience of life cycle of
applications. So Software Architect lead the project (or projects) for all technology related activities. She is a technical lead, and hence should have good technical skills as well as should be a good leader also. She leads the whole team around architectural decisions and implementation, and around technology related quality aspects. Here is an abstract list of responsibilities from which an architect own some or all as per the environment:
- Keep an eye on new technologies coming in market and pick which can add value to the system
- Prototyping for new tool or technology
- Submit proposals for the development of Project with a long term vision of System requirements and architecture both while keeping in mind the priorities of business
- Technical Documents
- Converting business requirements to technical level requirements, so that team can understand these
- Define over all architecture and interaction of various layers and components. A durable architectures, which is abstract enough to be
independent of any third party API, and even abstract within different
layers of system
- Bridge between developers, project managers, and business experts
- Good skills of communication to make every stake holder understand the technical decisions in their language
- Ensure the technical directions of system and choices among various available options
- Often have experience of mixed technology set or at least understand these
- Mostly initiate the in-house framework development and define the roadmap for the framework development
- Suggest solution for complex problems in System
- Review the implementation process and design for performance and quality
- Set quality parameters
- Release various guidelines for implementation
- Mentor the team for technical knowledge
- Knowledge builing exercises and work as mentor for team
- Exploration of new technologies and tools, and propose right one to team
- Proposal for process and execution considering technlogical changes, requirements and project requirements