Case Study: How The Home Depot Built Quality Into Software Development
11. Jan 2018•0 gefällt mir•358 views
Downloaden Sie, um offline zu lesen
Melden
Technologie
This session will cover how The Home Depot built quality into its software development as it migrated from waterfall to agile delivery.
For more information on DevOps: Continuous Delivery, please visit: http://ow.ly/hAXz50g62ZM
Case Study: How The Home Depot Built Quality Into Software Development
1. Case Study: How The Home Depot Built Quality
Into Software Development.
Matt Mackenny
DO3T021S
DEVOPS – CONTINUOUS DELIVERY
Director of Software Quality
The Home Depot
6. World’s Largest Home Improvement Retailer
Stores: 2,281 (Q1 2017)
Operations: U.S., Canada, Mexico
Associates: more than 400,000
Revenue: $94.6B USD (FY16)
Member of DOW
NYSE (HD) since 1981
7. Where do we start?
Reproduced from Hakan Forss http://hakanforss.wordpress.com
8. Define the Why
Why - This is the core belief and the
why of what you drive towards.
How - This is how you fulfill that
core belief.
What - This is what you do to fulfill
that core belief.
https://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action
9. Define the Why: Cost of Handoff
1. WCS 7 Up:
Upgrade Website from
v5 – v7 WebSphere
Commerce
Code
Learn &
Test
Fix Handoff
Repeat
6+ Times
4. BOSS: Buy
Online and Ship to
Store
5. Compass:
Replace legacy order
mgmt with new
custom system
2. BORIS: Buy
Online Return In
Store
3. BOPIS: Buy
Online and Return In
Store
WaterfallWater-Scrum-Fall
Lesson learned:
It took us 3 times
longer to deliver
the work & it could
have been faster
Repeat
6+ Times
Repeat
4+ Times
Repeat
3+ Times
Repeat
2+ Times
10. Define the Why: Cost of Quality in Delay
2578
1180
760
504 365 288 278.5 216 120
41%
60%
72% 80% 86% 90% 95% 98%
100%
0%
20%
40%
60%
80%
100%
120%
0
500
1000
1500
2000
2500
3000
OutageHours
Series2
Defect: Application defect blocking progress
Configuration: How an application is
configured
Application: Typically a reboot of the app
solved
Network: Outage due to network not
responding
Deployment: Packages deployed and
environment not starting without triage
Maintenance: Activities to patch/update
resulted in outages.
Code delayed: Late delivery of code
Messaging: MQ specifically had to resolve.
Deployment Issues: Wrong build deployed!
11. Defects Detection Time & Rate
REQ DESIGN
CODE & UNIT
TEST
SIT UAT
NumberofDefects
Typical Life Cycle
Early detection of Defects
Quality Engineering
driven Life Cycle
Cost avoided
• Early detection of defects
• Faster time to market
• Predictable delivery with faster turnaround time
• RM/IRB and other support function effort optimized
• Week end/late night support reduced significantly
Unquantified Benefits Cost Avoidance Details
$X M
• Dev capacity increased while QA Team capacity optimized by 25%
saving up to $X.XM
• Defects reduced significantly across releases saving $XM
• Minor/weekly releases supported additionally saving $XXXK
• Downtime due to immature code reduced saving $XXXK
Define the Why: Cost of Quality in Defects
12. Define the Why: Use the Seven Wastes
1. Partially Done Work
2. Extra Features
3. Relearning
4. Handoffs
5. Delays
6. Task Switching
7. Defects
The above seven wastes are defined in “Lean Software Development: An Agile
Toolkit” by Mary & Tom Poppendieck
13
13. Hindsight Shows we Targeted Three Broad Areas
1. Process. Moving from Waterfall, Water-Scrum-Fall, to XP & Kanban.
2. Re-tooling and re-aligning the Quality team. Building in development
skills & shifting them into writing code. (App coding, test automation,
aligning into dev).
3. Continuous Delivery. Created a common framework for consistency.
These are how’s
This is a what
15. Process: Waterfall to Water-Scrum-Fall
Initiation
Requirement
Consolidation
Requirement
Prioritization
Business
Approval
Project
Charter
Planning
Design
Estimation
Execution
Coding
Unit testing
Testing
QA testing
Performance
UAT
Deployment
I&B testing
Prod
deployment
23 - 16 Week Release Cycle
Change Requests
Informal Req Changes
Waterfall
Analyz
e
Plan Build Build Deploy
7 Week Release Cycle
2 Weeks/Sprint 2 Weeks/Sprint2 Weeks/Sprint
Sprint 1:
• Develop new functions
• QA writes…
Sprint 1:
• Develop new functions
• QA writes…
Sprint 1:
• Develop new functions
• QA writes…
Analyze
Plan
Sprint 1:
• Develop new functions
• QA writes…Design
Build
Test
Design
Build
Test
Design
Build
Test
Water-Scrum-Fall
16. Process: Water-Scrum-Fall to XP & Kanban
17
Kanban – Support Teams
From https://en.wikipedia.org/wiki/Extreme_programming
XP – Core Development
From https://blogs.msdn.microsoft.com/jmeier/2014/06/06/extreme-programming-xp-at-a-glance-visual/
18. Re-tooling and re-aligning the Quality team
Manual Testing Automation
Testing Coding
Quality Code Exploratory Testing
+
2010 &
Before
2011 - 2015 2016
2017
Onwards
19. Re-tooling and re-aligning the Quality team
Focused on building a tool stack of in-house with open source & licensed solutions. Here are
some example tools we use:
This list does not include all the test, code coverage and other tools we use
REQ/BUGS/CHORES CODE GOV GATE DEPLOY MEASURE COLLABORATION INFRASTRUCTURETEST
Current
Tools Introduced In-house Retired
Selenium/
Test NG
Tomcat
Grid
Email/
IM
Excel based
Defect
Dashboard
IRB
Container
(SharePoint)
TSR
Generation
App (ALM )
Wiki
Fetch
HOMER
SeeTest
WDIO/
Protractor
Google
Cloud
Platform
Git Hub
Cassandra
Online
Defect
Dashboard
Etch
Wiremock
ServiceNow - RFC
Concourse
Experience
and
Product
Dashboard
Pivotal
Cloud
Foundry
Started us out and enabled us to:
1. Reduced the monolith of code
2. Allow for faster delivery of
application code.
3. Increase the speed at which
we could test
4. ROI was quickly met in
delivery
CA Service
Virtualization
21. Continuous Delivery
Connecting Components of
Deployment
Steps of the Deployment Process
Focused on tracking core data
elements across core tools, freeing
teams to modify their CD approach as
needed and not being prescriptive in
how development work is done.
22. Continuous Delivery
26 40 152313
5016347328699541037
0
500
1000
1500
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
# of apps publishing test
results to Pipelines
13 629 2580
65295703
9630
23799
0
10000
20000
30000
Mar Apr May Jun Jul Aug Sept
# of Test Results Posted to
Quality Hub
Concourse Commons & Flow
• Flow – Reusable library for Concourse
with 12 + components
• 50+ Contributors & 1900+ commits
• 20+ Monthly workshops conducted for
IT teams
• Used by 820+ Applicationspipelines
Quality Hub
• Provides a standardized common solution
that can integrated into CICD processes to
capture, store and display pipeline build
events, their states, progress and test
results.
CI-CD Pipeline Adoption