Traditionally we have known software development architect as experts who decide the technology stack, standards in all the 3 layers (backend, middle layer & front end), methodology and all other aspects of technology. This makes the overall job of that software architect very challenging and in fact can become a bottleneck as well due to high dependency.
For reducing dependency and extracting higher productivity the Software Architect Role was spilt into 3 areas – Functional Architect, Technology Architect and Technical Architect.
- Functional Architect: Is a subject matter expert for a desired business function, who understands nuances of business and data flow. Leveraging on this knowledge the functional architect develops detailed requirements for the desired application. The functional architect also documents or provides sample/sketch for desired user interface with the objective of providing rich user experience
- Technology Architect: Is an expert who understands business, data, infrastructure, rich user experience requirements, tools, libraries, methodologies, standards and is current with the latest trends. Based on experience the technology architect chooses the right and latest technologies, frameworks and also provides published documents/demo links and alternative technologies that can be considered during the planning or strategizing phase.
- Technical Architect: Is someone who has hands-on experience with technologies and frameworks. Based on the direction provided by the technology solutions architect, the technical architect guides the development team for integrating technologies and also considers alternative technologies so that key functions and features, UI components, automation, visualizations can be achieved for desired application.
The advantage of splitting the architect roles as described above creates the following advantages:
- Reduces dependency and load on a single software architect
- Aligns engineering, product and project management teams
- Builds a library of solutions for faster development cycles
- Helps in leveraging the library for consistent application experience
The collaborative effort of the functional, technology and technical architect helps in executing the Visi Service Blueprint (Is a structured approach that captures application requirements in 4 distinct categories – Architecture, Automation, and Presentation & Communication).
Functional architect provides business function requirements including process flow, business rules, validation, automation and user interactivity for Automation, Presentation & Communication sections of the blueprint.
Technology architect identifies the right technologies that provide information for the Architecture section of the blueprint. The Technical architect and development team installs, integrates and develops key functions & features validating each section Architecture, Automation, Presentation & Communication. This provides a blueprint for engineering to begin an efficient & effective development cycle.
Accurate identification of overall requirement sets the path for Technology and Technical architects. There are different tools and approach for collecting requirements ranging from interview sessions to user story as in Agile methodology. Within our team we developed a simple 3 step Requirement collection approach – User Activity, Working Pattern and Value for accurately collecting requirements.
The post Splitting Software Architect role into 3 functions appeared first on Empower Visi.