Quality Architect Role
Role
The architect is responsible for two main types of high-level activities:
- Strategic (foundations): take care of the technical vision in the medium to long term (one, two years or even more)
- Tactics (operations): technical support for teams, problem solving, proof of concept, etc.
Strategic
- Define the “Quality Vision”, guidelines, technical documents (ADR, technical designs, terminology/technical glossary, etc.) while taking into account security rules, PII, etc
- Evaluate technologies: research, comparisons, proof of concepts, publications, etc
- Promote best practices for the chosen technologies
- Mentoring and coaching
- Promote quality during the six stages of software development, SDLC or “Software Development Life Cycle”: “Planning” -> “Defining” -> “Designing” -> “Building” -> “Testing” - > “Deployment”
- Assist or lead working groups for specific topics, define the purpose and deliverables, periodic and monthly events
- Attend or lead workshops for specific topics, define the goal and deliverables, event over a few hours or a few days
- Audit of the services for test coverage and correlate the data with the problematic services in production (Data-Driven decisions)
- Analyze the current testing strategy, test characterization, define a plan, promote good testing practices, follow the test pyramid:
- Unit (solitary and sociable) testing
- Component (in-process and out-of-process) testing
- Contract testing
- Integration (narrow and broad) testing
- UI End-to-end (E2E) and API E2E (Subcutaneous)
- User journey tests (and Synthetic Traffic tests)
- Non-functional tests: load, scalability, webvital metrics LCP, chaos/robustness, etc
- Alignment on a test strategy with the deployment procedure (CI/CD) and a branching procedure (gitflow, githubflow, etc), blue/green deployment, etc
- Participates in the recruitment process for the “quality” aspects
Tactics
- Apply the test strategy: develop test projects, add the projects to the process (build, CI/CD, cluster/kubernetes. etc), document, etc
- Support test development: support QAs and developers who add tests, PR reviews, etc
- Add test coverage: JavaScript (e.g., cypress.io, etc), python/pytest, java/rest-assured, etc
- Addition of Synthetic Traffic tests and verification of customer flows and scenarios (i.e., customer flows)
- Analyze system performance (e.g., load tests) and according to defined standards (i.e., “Given the data load X and the number of users Y, an API should respond within Z seconds”), LCP (i.e., Largest Contentful Paint) (e.g., “a page should be considered usable in less than 2.5 seconds”)
- Using observation tools to understand issues: datadoghq, splunk/signalfx, prometheus, grafana, etc
- Collaborates horizontally with the different “domaines” of the company and suppliers to improve the overall quality of the company