How to promote the Quality Best Practices

How to promote the Quality Best Practices

Two ways to promote the quality best practices are: Influencing the teams or to enforce the best practices. A periodical team reality check about the current practices is the beginning of the process. A team can easily live in their own Ivory Tower or to be biased by this statement: “We always did it that way so why changing it?”.

Influence or evangelize

  • Discussions: gather information about current pain points (retrospectives and lessons learned)
  • Involve QA Specialists in all SDLC (or Software Development Life Cycle)
  • 1:1 meetings to get information and expose point of views, share ideas and explain the best practices: it may be easier to convince on person than a group
  • Talk to the teams
  • Provide existing articles and blog posts
  • Tech talk to expose the vision
  • Create training material: guidelines, processes, videos (e.g.: Pluralsight, etc.)
  • Involve people in quality solutions:
    • Organize Workshops (on short term) so that the targeted public becomes active participants
    • Organize Work Groups (on long term) so that the concerned people become active participants
  • To use data as leverage; more information is available in the data-driven decision section

Data-Driven decisions

To show metrics of the current situation (or challenge the “no metrics” or lack of metrics). It is the also called “Shift-Right” approach in the Software Quality world.

  • End-users or Customers survey can be used (e.g.: use a post-transaction experience survey on the mobile app or web site)
  • White-Label partner surveys
  • Use production dashboards (examples: Datadog or SignalFX metrics) and performance tools (e.g.: WebVitals, etc.) to monitor APIs, SQLs, etc.
    • Daily performance emails can be sent to the engineering teams
  • NPS and CSAT surveys: NPS vs CSAT definitions
  • Real Customers Journey (traces of the end-users through the applications)
  • Use support CIM dashboards: customer tickets, production tickets, ticket aging/bug fix time, tickets by services or teams, RCA (find the issues caused by quality process)
    • CIM stands for Customer Interaction Management
    • A way to generate CIM data is to use a tool like eazy bi
  • Correlation between test coverage (static code) and production issues
    • It is also possible to get test coverage from a live service using a tool like Sealights
  • Compile the functional testers (manual tests) created Tickets/JIRA vs current team or service test coverage
  • Create Success Stories: start with one team and use the before/after statistics
  • GIT statistics (e.g. with a tool like GitPrime (now Pluralsight Flow)) in order to correlate bugs/tickets and developers stats (e.g.: number of commits, active days, etc.)
    • I.e.: low stats may be caused by developers not working on features or test automations because they are working on manual tests or production support
  • Correlate the release cycle (how often the team releases or time to market) and test coverage; better/reliable test coverage and test regression suite will shorten the release cycle.
  • Gather statistic about how much time it takes to refactor an existing feature? Better test coverage will result in faster refactoring

Enforce

  • Contact the best practices stakeholders and ask for support (I.e.: to push the best practices downward)
  • To fix deadlines (must be adopted by specific dates)
  • Enforce with Gates, checklists, DoD, etc.
  • Set Quality specific OKRs
  • Assign Quality trainings