Rôle de l'Architecte Qualité (FR)

Role

L’architecte est responsable de deux grands types d’activités à haut niveau:

  1. Stratégique (fondations): s’occuper de la vision technique à moyen à long terme (un, deux ans ou même plus) ;
  2. Tactique (opérations): support technique des équipes, résolution de problèmes, preuve de concept, etc ;

Stratégique

  1. Définir la “Vision Qualité”, les guides (ou “guidelines”), documents techniques (ADR, Technical Design, Terminologie/glossaire technique, etc.) tout en tenant compte des règles de sécuritées, PII, etc. ;
  2. Évaluer les technologies : Recherches, comparatifs, preuves de concepts, publications, etc.;
  3. Promouvoir les bonnes pratiques pour les technologies choisies;
  4. Mentorat et “Coaching”;
  5. Promouvoir la qualité lors des six étapes du développement logiciel, SDLC ou “Software Development Life Cycle” : “Planning” -> “Defining” -> “Designing” -> “Building” -> “Testing” -> “Deployment” ;
  6. Assister ou diriger des groupes de travail (ou “Work Groups”) pour des sujets précis, définir le but et les livrables, événements périodiques et sur plusieurs mois ;
  7. Assister ou diriger des ateliers de travail (ou “Workshops”) pour des sujets précis, définir le but et les livrables, événement sur quelques heures ou quelques jours ;
  8. Audit de la couverture de tests et corrélation des données avec les services problématiques en production (décision basée sur les données ou “Data-Driven”);
  9. Analyser la stratégie de tests actuelle, caractérisation des tests, définir un plan, promouvoir les bonnes pratiques de tests, la pyramide de tests “pratique” (en anglais pour faciliter) :
    1. Unit (“solitary” et “sociable”) testing ;
    2. Component (“in-process” et “out-of-process”) testing ;
    3. Contract testing ;
    4. Integration (“narrow” et “broad”) testing ;
    5. UI End-to-end (E2E) et API E2E (ou Subcutaneous) ;
    6. User journey tests (and Synthetic Traffic tests) ;
    7. Non functional tests : load, scalability, webvital metrics LCP, chaos/robustness, etc. ;
  10. Création de projets archétypes et création de matériel de formation (on-demand training) suivi de projets pilotes ou réels, écriture de tests, documentation, etc. ;
  11. Alignment sur une stratégie de tests avec la procédure de déploiement (CI/CD) avec une procédure de “branching” (examples : gitflow ou trunk-based workflows), blue/green deployment, smoke tests, etc. ;
  12. Participe au processus de recrutement pour le volet “qualité” ;

Tactique

  1. Appliquer la stratégie de tests : développer des projets tests, ajouter les projets au processus (build, CI/CD, cluster/kubernetes. etc), documenter, etc. ;
  2. Supporter le développement de tests: supporter les QAs et développeurs qui ajoutent des tests, PR reviews, etc. ;
  3. Ajouter une couverture de tests : javascript (exemple : cypress.io), python/pytest, java/rest-assured, etc. ;
  4. Ajout de “tests de trafic synthétique” et vérification des flux et scénarios clients (ou “customer flows”) ;
  5. Analyser les performances systèmes (example: load tests) et selon les standards définis (example: “Given the data load X and the number of users Y, an API should respond within Z seconds”), LCP (ou “Largest Contentful Paint”, example : “une page devrait être considérée utilisable en moins de 2.5 secondes”) ;
  6. Utilisation d’outils d’observation pour comprendre les problèmes : datadoghq, splunk/signalfx, prometheus, grafana, etc. ;
  7. Collabore horizontalement avec les différents “domaines” de l’entreprises et des fournisseurs pour améliorer la qualité globale de l’entreprise ;