Recognizing Software Debt - Beyond Agile Puget Sound
-
Upload
chris-sterling -
Category
Technology
-
view
7.274 -
download
0
description
Transcript of Recognizing Software Debt - Beyond Agile Puget Sound
![Page 1: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/1.jpg)
Recognizing So+ware Debt
Wednesday, November 30, 2011
![Page 2: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/2.jpg)
Chris Sterling
Co-‐founder of Agile Advantage and VP of Engineering (www.AgileAdvantage.com)
Author of Book “Managing SoAware Debt: Building for Inevitable Change”
Consults on soAware technology, Agile technical pracKces, Scrum, and effecKve management techniques
CerKfied Scrum Trainer
InnovaKon Games® Trained Facilitator
Open Source Developer
2
Email: [email protected] Web: h3p://www.agileadvantage.comFollow me on Twi0er: @csterwaBlog: h3p://www.ge8ngagile.comHashtag for presenta:on: #swdebt
Wednesday, November 30, 2011
![Page 3: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/3.jpg)
Go to ImpedimentMonkey.com!!!
3
Send an email to [email protected] to get invited with your first impediment now!!!
Wednesday, November 30, 2011
![Page 4: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/4.jpg)
Agenda
Managing SoAware Debt• An OverviewTypes of SoAware Debt• Technical• Quality• ConfiguraKon Management
• Design• PlaUorm Experience
Balancing Signal to Noise• DefiniKon of Done• Source Control Management
• ConKnuous IntegraKon• Quality DashboardsRelease Management• The Power of 2 Scripts: Deploy and Rollback
• ConKnuous IntegraKon• Automated PromoKon
• Turn On/Off FeaturesExercise• SoAware Debt Management Strategy
4
Wednesday, November 30, 2011
![Page 5: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/5.jpg)
Managing So+ware Debt
An Overview
Wednesday, November 30, 2011
![Page 6: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/6.jpg)
THE DISECONOMIES OF SCALE IN SOFTWARE DEVELOPMENT*
* “SoIware Es:ma:on: Demys:fying the Black Art “ – Steve McConnell
Project size is easily the most significant determinant of effort, cost and schedule [for a soIware project].
Wednesday, November 30, 2011
![Page 7: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/7.jpg)
“A Big Ball of Mud is a haphazardly structured, sprawling, sloppy, duct-‐tape-‐and-‐baling-‐wire, spagheZ-‐code jungle. These systems show unmistakable signs of unregulated growth, and repeated, expedient repair. Informa:on is shared promiscuously among distant elements of the system, oIen to the point where nearly all the important informa:on becomes global or duplicated. The overall structure of the system may never have been well defined. If it was, it may have eroded beyond recogni:on. Programmers with a shred of architectural sensibility shun these quagmires. Only those who are unconcerned about architecture, and, perhaps, are comfortable with the iner:a of the day-‐to-‐day chore of patching the holes in these failing dikes, are content to work on such systems.” *
Big Ball of Mud
* Brian Foote and Joseph Yoder, Big Ball of Mud. Fourth Conference on Pa0erns Languages of Programs (PLoP '97/EuroPLoP '97) Mon:cello, Illinois, September 1997
Wednesday, November 30, 2011
![Page 8: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/8.jpg)
Wednesday, November 30, 2011
![Page 9: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/9.jpg)
Lack of emphasis on so'ware quality a2ributes contributes to decay
Wednesday, November 30, 2011
![Page 10: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/10.jpg)
Types of So+ware Debt
Wednesday, November 30, 2011
![Page 11: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/11.jpg)
Technical debt tended to focus more on programming aspects of soIware delivery and leI out full soIware development life cycle
Each type of soIware debt can be managed and monitored using different tools and approaches
Focusing on managing each type of soIware debt simplifies crea:on of an overall strategy that promotes holis:c perspec:ve
Why not just call it all “Technical Debt”
11
Wednesday, November 30, 2011
![Page 12: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/12.jpg)
Types of SoIware Debt
Technical Debt: These are the ac:vi:es that a team or team members do not to do well now that will impede future development if leI as is.
Quality Debt: There is a diminishing ability to verify the func:onal and technical quality of soIware: the “Break/Fix” mentality.
ConfiguraHon Management Debt: Integra:on and release management become more risky, complex, and error-‐prone.
Design Debt: The cost of adding features is increasing toward the point where it is more than the cost of wri:ng from scratch.
PlaJorm Experience Debt: The availability and alignment of people to business objec:ves that involve soIware changes is becoming more limited or cost-‐prohibi:ve.
8
Wednesday, November 30, 2011
![Page 13: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/13.jpg)
Principle: No maOer what, the cost of addressing so+ware debt increases
with Hme.
Wednesday, November 30, 2011
![Page 14: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/14.jpg)
Balancing Signal to Noise at Scale
Wednesday, November 30, 2011
![Page 15: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/15.jpg)
Balancing Signal Indicators
Value
Quality Constraints(Schedule, Cost, Scope)Source: Jim Highsmith
15
Wednesday, November 30, 2011
![Page 16: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/16.jpg)
DefiniMon of Done -‐ Assert QualityAcceptance defined criteria for each user story
Unit tests written and passed
Code compiles with no errors and no warnings
New code doesn’t break existing code
Test case review (Dev to review test case written)
Architectural impact assessed and artifacts updated if necessary
Comments in code
Error codes added
Code reviewed by peer
Code checked in with reference to US#/Task#
Tested on FE
Integration test written & passes
Test code reviewed
Environment requirements documented
Interface document updated/added and checked in to SVN
Acceptance criteria verified complete
All P1-P3 bugs for the story are closed
Test approves user story
Story demonstrated to product owner and accepted on Target Platform
16
Wednesday, November 30, 2011
![Page 17: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/17.jpg)
Release DefiniMon of Done
Every release should have clear quality criteria
With a “Release Defini:on of Done” you can understand targets be0er
Measure the gap between the teams’ Defini:on of Done and a Release Defini:on of Done.• This gap is a source of quality issues and represents significant risk to schedule
Wednesday, November 30, 2011
![Page 18: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/18.jpg)
Release DefiniMon of Done
Every release should have clear quality criteria
With a “Release Defini:on of Done” you can understand targets be0er
Measure the gap between the teams’ Defini:on of Done and a Release Defini:on of Done.• This gap is a source of quality issues and represents significant risk to schedule
Wednesday, November 30, 2011
![Page 19: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/19.jpg)
TradiMonal Source Control Management
18
Wednesday, November 30, 2011
![Page 20: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/20.jpg)
TradiMonal Source Control Management
18
Main Branch
Wednesday, November 30, 2011
![Page 21: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/21.jpg)
TradiMonal Source Control Management
18
Main Branch
Version 1Branch
Integrate forVersion 2
CodeComplete
Wednesday, November 30, 2011
![Page 22: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/22.jpg)
TradiMonal Source Control Management
18
Main BranchDebt
Death March
Version 1Branch
Integrate forVersion 2
CodeComplete
Wednesday, November 30, 2011
![Page 23: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/23.jpg)
TradiMonal Source Control Management
18
Main BranchDebt
Death March {Debt accrues quickly within stabilizaHon periods
Version 1Branch
Integrate forVersion 2
CodeComplete
Wednesday, November 30, 2011
![Page 24: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/24.jpg)
Flexible Source Control Management
19
Wednesday, November 30, 2011
![Page 25: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/25.jpg)
Flexible Source Control Management
19
Main Branch
Wednesday, November 30, 2011
![Page 26: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/26.jpg)
Flexible Source Control Management
19
Main Branch
Version 1
Wednesday, November 30, 2011
![Page 27: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/27.jpg)
Flexible Source Control Management
19
Main Branch
Version 1 Version 2
Wednesday, November 30, 2011
![Page 28: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/28.jpg)
Flexible Source Control Management
19
Main Branch
Version 1 Version 2{Not Easy! Must have proper infrastructure to do this.
Wednesday, November 30, 2011
![Page 29: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/29.jpg)
ConMnuous IntegraMon
20
Wednesday, November 30, 2011
![Page 30: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/30.jpg)
21
Quality Dashboard -‐ Sonar
Wednesday, November 30, 2011
![Page 31: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/31.jpg)
22
Quality Dashboard -‐ Sonar
Wednesday, November 30, 2011
![Page 32: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/32.jpg)
23
Quality Dashboard -‐ Sonar
Wednesday, November 30, 2011
![Page 33: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/33.jpg)
24
Quality Dashboard -‐ Sonar
Wednesday, November 30, 2011
![Page 34: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/34.jpg)
Early Warning Signs
25
Early Warnings:•Broken Builds•Broken Automated Tests•Broken Custom Thresholds
Wednesday, November 30, 2011
![Page 35: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/35.jpg)
26
Early Warnings:•Design Debt in Duplica:on (DRY)•Technical Debt in Code Complexity•Quality Debt in Bug DB (Break/Fix)•Other Custom Thresholds
Early Warning on Quality Dashboard
Wednesday, November 30, 2011
![Page 36: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/36.jpg)
Release Management Strategy
Wednesday, November 30, 2011
![Page 37: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/37.jpg)
“If releases are like giving birth, then you must be doing something wrong.”
-‐ Robert Benefield
Wednesday, November 30, 2011
![Page 38: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/38.jpg)
Case Study: Enterprise Agile AdopMon
180+ person “Web 2.0” product organiza:on
Waterfall SDLC that development uses to deliver in 6 month release cycles
Want to use Agile methods to be more responsive to users and keep up with other “Web 2.0” companies
Transi:oned to Agile methods on 15 teams in 3 months
Changed release management strategy, added XP technical prac:ces, and implemented Scrum product development framework for scaled coordina:on
Able to release every week to users within 4 months
Used streamlined deployment environment process to validate product changes daily using Con:nuous Integra:on and automated promo:ons
29
Wednesday, November 30, 2011
![Page 39: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/39.jpg)
The Power of 2 Scripts: Deploy & Rollback
30
Wednesday, November 30, 2011
![Page 40: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/40.jpg)
Scaling ConMnuous IntegraMon
31
ComponentValidaHon
Integrated ComponentValidaHon
End-‐to-‐End &Load/Stress
Wednesday, November 30, 2011
![Page 41: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/41.jpg)
Automated PromoMon to Environments
32
Wednesday, November 30, 2011
![Page 42: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/42.jpg)
29
The value of technical aspects in an applica:on or its surrounding infrastructure
is the cost of not addressing them.
Wednesday, November 30, 2011
![Page 43: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/43.jpg)
30
Describe as Abuse User Stories
Implement Securityfor User Information
* From “User Stories Applied” presented by Mike Cohn Agile 2006
Wednesday, November 30, 2011
![Page 44: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/44.jpg)
30
Describe as Abuse User Stories
Implement Securityfor User Information
As a Malicious Hacker I want to steal credit card information so that I can make fraudulent charges
* From “User Stories Applied” presented by Mike Cohn Agile 2006
Wednesday, November 30, 2011
![Page 45: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/45.jpg)
Some PotenMal Abusers
• Malicious Hacker
• Mass of users
• SQL injector• Disgruntled employee
• Naïve API user• ImpaBent clicker
• Denial-‐of-‐service (DoS) aFacker• Sleazy user
31
Wednesday, November 30, 2011
![Page 46: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/46.jpg)
SoIware Quality A0ributes Defined
32
Wednesday, November 30, 2011
![Page 47: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/47.jpg)
SoIware Quality A0ributes Ra:ng Tool
33
Wednesday, November 30, 2011
![Page 48: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/48.jpg)
Put SoIware Debt on Product Roadmap
34
* Image from Dean Leffingwell’s blog -‐ h0p://scalingsoIwareagility.wordpress.com/
38
Wednesday, November 30, 2011
![Page 49: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/49.jpg)
Exercise: So+ware Debt Management Strategy
Wednesday, November 30, 2011
![Page 50: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/50.jpg)
Thank you!
QuesHons & Answers
Wednesday, November 30, 2011
![Page 51: Recognizing Software Debt - Beyond Agile Puget Sound](https://reader034.fdocuments.in/reader034/viewer/2022052618/554fafe7b4c905ad218b51b8/html5/thumbnails/51.jpg)
Come see us at AgileAdvantage.com
41
Wednesday, November 30, 2011