Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
What is quality, and how do we build it in
1. What is quality, and how
do we build it in?
@maryamumar | @jezhumble | #DeliveryConf
2. Agenda
● Introduce Thought Machine
● How to get started with improving quality
● Selecting metrics
● Evolving metrics based on what we learn
@jezhumble
@maryamumar
3. TLDR
● Quality is subjective - what to focus on depends on many factors
● Start by creating a vision, selecting some metrics, and measuring
● What you measure will evolve, and will determine what teams work on
@jezhumble
@maryamumar
6. Common mistakes we have observed
● Stop work and build a comprehensive automated test suite
● Add new process and approvals to try and prevent escaped defects
● Create a new “quality” function which sits downstream of development
● Underinvestment in infrastructure and tools
@jezhumble
@maryamumar
7. Create a Plan
But where do you start?*
*Leading Quality - Ronald Cummings-John, Owais Peer
8. Vision Statement
As an <engineering team/customer>
When <there are any changes to production code>
Then <every merge to the codebase is releasable>
And <there are no known regressions in the system>
@maryamumar
10. Who are your Stakeholders?
● CEO/CTO
● Tech leads
● Testing team
● Incident Management
● Release Management
Questions to ask:
● How do you know quality was bad?
● Escaped defects?
● What’s your code coverage like?
● Do you have the right processes in place?
@maryamumar
14. Releases
- Create visibility landscape for releases
- Monitor issues found post-release vs pre-release
- How good is your regression cycle?
- Release notes
- Changes
- Known issues; when to expect fixes
- How easy is it to create deployables?
- How quickly can you deploy?
@jezhumble
@maryamumar
15.
16. Product Quality
@jezhumble
@maryamumar
MTTG Build FailuresBuild Time Deploy Time
Average Time
in Status
PR Review PR commit rate
per Sprint
%age of Flaky
Tests
Ticket
Fluctuation
from QA to Dev
Test Coverage
25. 2018 State of DevOps Report: cloud.google.com/devops
SDO Performance
Trust
Software
Delivery
Performance
Availability
Organizational
Performance
Voice
Westrum organizational culture
Autonomy
Retrospectives
Climate for Learning
@jezhumble
26. How to make metrics safe
● Teams involved in creating vision
● Consult with teams when deciding what to measure
● Testing team makes quality visible
● Let teams set their own targets
● Regular retrospectives on what is being measured
@jezhumble
29. Continuous testing
● Continuously reviewing and improving test suites to better find defects and keep complexity and cost
under control
● Allowing testers to work alongside developers throughout the software development and delivery
process
● Performing manual test activities such as exploratory testing, usability testing, and acceptance testing
throughout the delivery process
● Having developers practice test-driven development by writing unit tests before writing production
code for all changes to the codebase
● Being able to get feedback from automated tests in less than ten minutes both on local workstations
and from a CI server
2018 State of DevOps Report | cloud.google.com/devops
30. Continuous delivery
The ability to get changes—features,
configuration changes, bug fixes,
experiments—into production or into the hands of
users safely and quickly in a sustainable way.
2018 State of DevOps Report | cloud.google.com/devops