Quality Architect Role

Role

The architect is responsible for two main types of high-level activities:

  1. Strategic (foundations): take care of the technical vision in the medium to long term (one, two years or even more)
  2. Tactics (operations): technical support for teams, problem solving, proof of concept, etc.

Strategic

  1. Define the “Quality Vision”, guidelines, technical documents (ADR, technical designs, terminology/technical glossary, etc.) while taking into account security rules, PII, etc
  2. Evaluate technologies: research, comparisons, proof of concepts, publications, etc
  3. Promote best practices for the chosen technologies
  4. Mentoring and coaching
  5. Promote quality during the six stages of software development, SDLC or “Software Development Life Cycle”: “Planning” -> “Defining” -> “Designing” -> “Building” -> “Testing” - > “Deployment”
  6. Assist or lead working groups for specific topics, define the purpose and deliverables, periodic and monthly events
  7. Attend or lead workshops for specific topics, define the goal and deliverables, event over a few hours or a few days
  8. Audit of the services for test coverage and correlate the data with the problematic services in production (Data-Driven decisions)
  9. Analyze the current testing strategy, test characterization, define a plan, promote good testing practices, follow the test pyramid:
    1. Unit (solitary and sociable) testing
    2. Component (in-process and out-of-process) testing
    3. Contract testing
    4. Integration (narrow and broad) testing
    5. UI End-to-end (E2E) and API E2E (Subcutaneous)
    6. User journey tests (and Synthetic Traffic tests)
    7. Non-functional tests: load, scalability, webvital metrics LCP, chaos/robustness, etc
  10. Alignment on a test strategy with the deployment procedure (CI/CD) and a branching procedure (gitflow, githubflow, etc), blue/green deployment, etc
  11. Participates in the recruitment process for the “quality” aspects

Tactics

  1. Apply the test strategy: develop test projects, add the projects to the process (build, CI/CD, cluster/kubernetes. etc), document, etc
  2. Support test development: support QAs and developers who add tests, PR reviews, etc
  3. Add test coverage: JavaScript (e.g., cypress.io, etc), python/pytest, java/rest-assured, etc
  4. Addition of Synthetic Traffic tests and verification of customer flows and scenarios (i.e., customer flows)
  5. 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”)
  6. Using observation tools to understand issues: datadoghq, splunk/signalfx, prometheus, ​​grafana, etc
  7. Collaborates horizontally with the different “domaines” of the company and suppliers to improve the overall quality of the company