1
@GARYPEDRETTI | [email protected]
TECHNIQUES AND ATTITUDE FOR TEAM OWNERSHIP OF QUALITYGARY PEDRETTI
@GARYPEDRETTI | [email protected]
EVERYONE OWNS QUALITY
2
@GARYPEDRETTI | [email protected]
”QUALITY IS JOB 1” ?????
@GARYPEDRETTI | [email protected]
BEFORE THE JAPANESE, US AUTOMAKERS HAD THE GERMANS
3
@GARYPEDRETTI | [email protected]
@GARYPEDRETTI | [email protected]
Before Robert Cox’s campaign, “Job 1” meant the first of a new or redesigned model that rolled off the assembly line.
“Don’t worry about the quality of the car, just get it out on time!”
4
@GARYPEDRETTI | [email protected]
PLATITUDES, CLICHÉS…
• “Quality is Job #1 !!!”• “We build quality in from the start !!!”• “Everyone is responsible for quality !!!”
Let’s make these REAL, let’s make these true, let’s go beyond catchphrases and clichés…
@GARYPEDRETTI | [email protected]
5
@GARYPEDRETTI | [email protected]
QUALITY != TESTINGQUALITY != LACK OF BUGS
Think about all the activities, actions, events, techniques that enhance quality. Testing is only ONE of these.
Bugs are only ONE indication there are or might be quality problems.
@GARYPEDRETTI | [email protected]
QUALITY IS…
But what is quality?American Society for Quality:
• "A combination of quantitative and qualitative perspectives…
• …for which each person has his or her own definition…”
6
@GARYPEDRETTI | [email protected]
QUALITY IS…VERIFICATION, BUILDING IT RIGHT
• “Number of defects per million opportunities” (Six Sigma)
• But…bugs are but ONE indication of a possible lack of quality
@GARYPEDRETTI | [email protected]
QUALITY IS…VERIFICATION, BUILDING IT RIGHT
• “Degree to which a set of inherent characteristics fulfills requirements.” (ISO 9000)
• But…how we do this – what we traditionally think of as testing in software development – is but ONE way.
• Testing is a check of quality
• Or more precisely, traditional software testing is the reduction of risk that we have low quality on the verification dimension
7
@GARYPEDRETTI | [email protected]
QUALITY IS…VALIDATION, BUILDING THE RIGHT THING
• Provides Value / is Fit for Purpose
• But also…what the customer would love but has not yet thought about
@GARYPEDRETTI | [email protected]
QUALITY IS…VALIDATION, VALUE-BASED
Could everyone, including non-testers, contribute to customer value?
8
@GARYPEDRETTI | [email protected]
QUALITY IS…CARING?
• The result of care
@GARYPEDRETTI | [email protected]
REVIEW: WHAT IS QUALITY?Think about all the activities, actions, events, techniques that enhance quality.
Testing is only ONE of these.
Bugs are only ONE indication there are or might be quality problems.
Quality is:• Verification• Validation• (Customer) Value-based• The result of care
9
@GARYPEDRETTI | [email protected]
AGENDA
1. What is Quality?
2. Quality in Scrum
3. Quality in Other Complimentary Agile Techniques
4. Quality and Modern Motivation
@GARYPEDRETTI | [email protected]
QUALITY ENHANCING TECHNIQUES IN SCRUM
ENSURING QUALITY CAN’T FALL OUT OF SCOPE, OR WE RUN OUT OF TIME…
10
@GARYPEDRETTI | [email protected]
• Professional Scrum Trainer, Scrum.org• Over twenty years in the software
industry as a generalizing specialist: DBA, coder, BA, architect, tester, manager
• Scrum: Team member, Scrum Master, PO, Enterprise-Level Coach
• GaryPedretti.com• @GaryPedretti• http://www.linkedin.com/in/GaryPedretti
• Founder and Owner, Sodoto Solutions (SODOTO = See One, Do One, Teach One)
ABOUT ME
5
@GARYPEDRETTI | [email protected]
ABOUT ME - TESTIMONIALSGary is a hard, pointed, deep, knowledgeable trainer ... one who knows Scrum, agile and software development with deep knowledge of how to create value and good outcomes.. If you want a health check, training, consulting - talk to Gary. I recommend him highly.
If you need help, want to talk with someone, and want facts rather than spin, talk to Gary.
- Ken Schwaber,
co-creator of Scrum, founder of Scrum Alliance, head of Scrum.org
11
@GARYPEDRETTI | [email protected]
AGILE VS. SCRUM VS. [[WHATEVER]]
Image source: http://blogs.seapine.com
Something we can
“BE”, live by, or
aspire to – a set of
values and
principles
Things we
can “DO” –
frameworks,
processes
@GARYPEDRETTI | [email protected]
AGILE MANIFESTOWe are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
12
@GARYPEDRETTI | [email protected]
12 PRINCIPLES BEHIND THE MANIFESTO1. Our highest priority is to satisfy the customer through early and
continuous delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
4. Business people and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
@GARYPEDRETTI | [email protected]
12 PRINCIPLES BEHIND THE MANIFESTO7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity--the art of maximizing the amount of work not done--is essential.
11. The best architectures, requirements, and designs emerge from self-organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
13
@GARYPEDRETTI | [email protected]
SCRUM
@GARYPEDRETTI | [email protected]
QUALITY TECHNIQUES IN SCRUM• The Cross-Functional Team• The Definition of “Done”
• Incremental Delivery• Building Thin Slices Through the Application Architecture • Delivering (Truly) Shippable Features• Immediate Elimination of Bugs
17
@GARYPEDRETTI | [email protected]
THE CROSS-FUNCTIONAL TEAM
In Scrum, the team, as a unit, is held accountable for delivering quality, potentially-shippable software.
Things that are no longer valid in anyone’s vocabulary:• “Not my problem”
• “I did my part, I’m just waiting for…”• “Works on my machine”
• “They”
@GARYPEDRETTI | [email protected]
THE CROSS-FUNCTIONAL TEAM
Do NOT confuse this with “everyone has to do everything now,” disparaging specialties, or a conflict of interest
• We want skilled specialists, but they must also be team players
• Everyone is trying to achieve the same thing – quality product that makes customers happy
• It’s still a good idea to NOT have the person who wrote the code do all of the testing of that code
18
@GARYPEDRETTI | [email protected]
THE DEFINITION OF “DONE”
@GARYPEDRETTI | [email protected]
THE DEFINITION OF “DONE”
19
@GARYPEDRETTI | [email protected]
THE DEFINITION OF “DONE”
The Definition of “Done” is:
• A baseline, non-negotiable level of quality checks• A “code of honor”• A way to align with a non-technical understanding of “done”
• A trust building device
@GARYPEDRETTI | [email protected]
THE DEFINITION OF “DONE”
What’s on your current Definition of ”Done”?
What would you like to add to your DoD?
Have you advocated for that? When and where could you?
Are your DoD items qualified? Quantified?
20
@GARYPEDRETTI | [email protected]
Traditional Development
Scrum
INCREMENTAL DELIVERY
Plan
Rev
iew
/Ref
lectAnalyze
DesignCodeTest
Release
Plan
Rev
iew
/Ref
lectAnalyze
DesignCodeTest
Release
Plan
Rev
iew
/Ref
lectAnalyze
DesignCodeTest
Release
Plan
Rev
iew
/Ref
lectAnalyze
DesignCodeTest
Release
Plan
Rev
iew
/Ref
lectAnalyze
DesignCodeTest
Release
Working software is available.
Analyz
eDesign
CodeTestReleas
e
Analyz
eDesignCode
TestRelease
Analyz
eDesign
CodeTestReleas
e
Analyz
eDesign
CodeTestReleas
e
Analyz
eDesign
CodeTestReleas
e
Plan Design Code Test Release ReviewAnalyze
@GARYPEDRETTI | [email protected]
BUILDING THIN SLICES THROUGH THE ARCHITECTURE
21
@GARYPEDRETTI | [email protected]
BUILDING THIN SLICES THROUGH THE ARCHITECTURE
UI Layer
Business Logic
Application
Database
@GARYPEDRETTI | [email protected]
Sprint“Sprint”Sprint“Sprint”
Code
Test
Code
Test
Code
Sprint“Sprint”
These ARE NOT Sprints!
DELIVERING (TRULY) SHIPPABLE FEATURES
22
@GARYPEDRETTI | [email protected]
SprintSprintSprint
CodeTest
CodeTest
CodeTest
@GARYPEDRETTI | [email protected]
SprintSprintSprint
CodeTest
CodeTest
CodeTest
23
@GARYPEDRETTI | [email protected]
Sprint
Test Code
…Sprint Sprint
@GARYPEDRETTI | [email protected]
IMMEDIATE ELIMINATION OF BUGS
We could also just replace all these labels with “time,” the phases don’t actually matter
24
@GARYPEDRETTI | [email protected]
IMMEDIATE ELIMINATION OF BUGS
Bugs found on features you’re currently working on: fix them now
Attitude: Fix, Don’t Manage
Yes, bugs found in production might still go onto the Product Backlog
@GARYPEDRETTI | [email protected]
REVIEW: QUALITY ENHANCING TECHNIQUES IN SCRUM• The Cross-Functional Team• The Definition of “Done”
• Incremental Delivery• Building Thin Slices Through the Application Architecture• Delivering (Truly) Shippable Features• Immediate Elimination of Bugs
25
@GARYPEDRETTI | [email protected]
QUALITY ENHANCING TECHNIQUES COMPLIMENTARY TO SCRUM
OTHER IDEAS CHAMPIONED BY THE AGILE COMMUNITY
@GARYPEDRETTI | [email protected]
AGILE TECHNIQUES COMPLIMENTARY TO SCRUM
• Test-Driven Development• Continuous Integration and Continuous Delivery
• Refactoring• Sustainable Pace
26
@GARYPEDRETTI | [email protected]
TEST-DRIVEN DEVELOPMENT
• Think of this as something beyond just writing unit tests!
• A comprehensive mindset and approach to building software• “Test First” might be a better description here• I also like to think of the second “D” in “TDD” as “Design”:
Test-Driven Design
• You can be test-driven with unit tests, acceptance tests, functional tests, non-functional / performance / load tests, etc.
@GARYPEDRETTI | [email protected]
SprintSprintSprint
CodeTest
CodeTest
CodeTest
REMEMBER THIS?
27
@GARYPEDRETTI | [email protected]
Sprint
Test Code
…Sprint Sprint
REMEMBER THIS?
@GARYPEDRETTI | [email protected]
(ACCEPTANCE?) TEST-DRIVEN DEVELOPMENT
Time (within a Sprint)
Tota
l Tes
ts
Identify (acceptance?) tests at Sprint Planning. These will be initially failing tests.
All (acceptance?) tests for all PBIs must pass by the end of the Sprint
28
@GARYPEDRETTI | [email protected]
THINK: TEST DRIVEN ALL THE TIME
Another thing to build quality in – take a disciplined approach to bug fixes AND new features in the same way:
• Write (currently failing) covering tests first, if they don’t exist• When fixing a bug, you’re reliably reproducing it here
• Only then write modifications to make the test pass
• All tests written in the first step should be kept to insure no regression or reactivations of fixed bugs later
@GARYPEDRETTI | [email protected]
CONTINUOUS INTEGRATION AND CONTINUOUS DELIVERY
29
@GARYPEDRETTI | [email protected]
CI – WHERE CAN THIS GO? CD
@GARYPEDRETTI | [email protected]
CI TO CD
31
@GARYPEDRETTI | [email protected]
REFACTORING• Define refactoring?
• How many of you currently have refactoring and/or elimination of Technical Debt on your Product Backlogs?
• As a testing specialist, how would you contribute to refactoring efforts?
@GARYPEDRETTI | [email protected]
SUSTAINABLE PACE
32
@GARYPEDRETTI | [email protected]
SUSTAINABLE PACEFrom the 8th Principle behind the Agile Manifesto:
“Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.”
Are your Sprints mini-Death Marches? L
@GARYPEDRETTI | [email protected]
REVIEW: AGILE TECHNIQUES COMPLIMENTARY TO SCRUM
• Test-Driven Development• Continuous Integration and Continuous Delivery
• Refactoring• Sustainable Pace
33
@GARYPEDRETTI | [email protected]
MOTIVATION FOR MODERN INFORMATION WORKERS
MOTIVATION + ALIGNMENT = QUALITY
@GARYPEDRETTI | [email protected]
MOTIVATIONFrom the 5th Principle behind the Agile Manifesto:
“Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.”
34
@GARYPEDRETTI | [email protected]
VIDEOhttps://sodoto.co/DanPink (or lookup “Dan Pink RSA Animate” on YouTube)
@GARYPEDRETTI | [email protected]
SCRUM: AUTONOMY, MASTERY, AND PURPOSE?
35
@GARYPEDRETTI | [email protected]
HOW DO WE GO BEYOND THE CLICHÉS?
“Building quality in from the start,” “making quality Job 1,” etc. – how does that really happen?
An aligned, motivated team working towards a single goal!
@GARYPEDRETTI | [email protected]
WE’RE NOT JUST ON THE SAME TEAM…
We (all the different specialties on the cross-functional team) are all doing the same exact job!
How?
• Delivering valuable software to users
• Learning• Removing ambiguity from requests and wants, to get to
what the customer really wants…
36
@GARYPEDRETTI | [email protected]
REVIEW: MOTIVATION FOR MODERN INFORMATION WORKERS
Use Scrum and Agile Principles to enhance:• Autonomy
• Mastery• Purpose
Understand and enhance how we’re all not just on the same team, but doing the same exact job
@GARYPEDRETTI | [email protected]
REMEMBER: QUALITY• Verification – Build it right
• Validation – Build the right thing • (even if the customer doesn’t even know they want it yet)
• Focus on value: what the customer gets out
• Care…emotion…ownership leads to…
• Motivation, higher-quality results!