technical debt - why should you care? (agiles buenos aires 2011)
DESCRIPTION
TRANSCRIPT
![Page 1: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/1.jpg)
Oh, no! Another session about technical debt?!?
![Page 2: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/2.jpg)
Maybe we could discuss other things….
![Page 3: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/3.jpg)
before we start…!}!
what the hell is happening with this project?!?
![Page 4: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/4.jpg)
before we start…!}!
what the hell is happening with this project?!?
How is your boss here?
![Page 5: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/5.jpg)
![Page 6: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/6.jpg)
Technical Debt!Why should you care?!
www.ciandt.com!
{!
Paulo Roberto Camara Tech Manager at Ci&T [email protected] @proberto98
![Page 7: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/7.jpg)
which opCon would you go for?
• the easy and quick way, but the code doesn’t look very nice… Future will be dark…
• a cleaner and more sophisCcated design, but it will take longer to put in place. No clouds ahead!
![Page 8: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/8.jpg)
really?
![Page 9: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/9.jpg)
really, really?
![Page 10: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/10.jpg)
ah, ok….
![Page 11: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/11.jpg)
![Page 12: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/12.jpg)
“Technical debt is everything that makes your code harder to change.” (Tom Poppendiek)
![Page 13: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/13.jpg)
such as….
• no design • poor design • duplicated code • deprecated code • un-‐tested code • complex code • any kind of “workaround”…
![Page 14: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/14.jpg)
the metaphor…
• every Cme you choose the first opCon (the quick and dirt way) you create debt (like a financial debt) – if it is a debt, it incurs interest
• you may pay only the interest • or you may pay down the principal, reducing the interest in the future
![Page 15: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/15.jpg)
interest?!?
• bugs • extra effort • slower development • delays
![Page 16: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/16.jpg)
hTp://theagileexecuCve.com/category/technical-‐debt/
![Page 17: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/17.jpg)
“Every minute spent on not-‐quite-‐right code counts as interest on that debt. EnCre engineering organizaCons can be brought to a stand-‐sCll under the debt load of
an unconsolidated implementaCon…” (Ward Cunningham, 1992)
![Page 18: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/18.jpg)
Technical Debt Quadrant (by MarCn Fowler @ Agile Brazil 2010)
hTp://www.marCnfowler.com/bliki/TechnicalDebtQuadrant.html
![Page 19: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/19.jpg)
why should you care?
![Page 20: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/20.jpg)
interest?!?
• bugs • extra effort • slower development • delays
![Page 21: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/21.jpg)
![Page 22: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/22.jpg)
![Page 23: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/23.jpg)
![Page 24: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/24.jpg)
a liTle context
(before I show you what I am really talking about)
![Page 25: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/25.jpg)
2010
Ci&T at a glance!}!
www.ciandt.com / @ciandt!
Founded in 1995!HQ in Brazil w/ offices in the US, Japan, Europe & China!
Global Delivery Centers in Brazil, Argentina and China !Staff: 1,300+!Annual growth: 40%!Provide high performance teams to our clients!
![Page 26: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/26.jpg)
Our Clients }!
www.ciandt.com / @ciandt!
![Page 27: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/27.jpg)
What we do!}!
www.ciandt.com / @ciandt!
Service Offerings!
Application Development & Management!Mobile Solutions!Cloud Computing!Product Engineering!SAP!Business Intelligence!!
![Page 28: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/28.jpg)
How we do it }
www.ciandt.com / @ciandt!
Ci&T runs 100% !Agile projects!!
![Page 29: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/29.jpg)
some sad stories
(and fortunately other very happy ones!)
![Page 30: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/30.jpg)
do you remember this chart?!}!
what the hell is happening with this project?!?
![Page 31: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/31.jpg)
it is a true project… L • criCcal Cme to market milestone • prudent technical debt (“let’s fix it later!”) • yes! We met the milestone! J • but…. a new “criCcal” milestone was set… • more reckless technical debt (“refactoring is for losers!”) • things got more difficult (extra effort, extra bugs, frustrated
team, unhappy customer…) • we didn’t meet the second milestone… L • two sprints spent on refactoring, almost no new
funcConality delivered… • a long Cme to recover credibility.
![Page 32: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/32.jpg)
Design Stamina Hypothesis (by MarCn Fowler @ Agile Brazil 2010)
hTp://www.marCnfowler.com/bliki/DesignStaminaHypothesis.html
![Page 33: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/33.jpg)
let’s look another example…
almost 40% of the total sprint capacity
and quality has became an issue…
what a hell is happening with this project?!?
![Page 34: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/34.jpg)
lack of automated tests, coCnuos integraCon! • complex billing system for an Insurance company • lots of integraCons with legacy systems • automated tests were not easy to be created (and kept
working later!) • and the Product Owner didn’t accept to spend sprint
capacity with “no useful code” • aber a lot of conversaCon – and problems – team was able
to create a minimal test suite (one enCre sprint spent on that!)
• keep this tesCng code up and running had become part of the definiCon of done
• in the following sprint, regression tests effort dropped half as well as the bugs found by the PO! J
![Page 35: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/35.jpg)
a good reference now!
• a large building company
• an 18 months project • high technical and business complexity
• company board as the main stakeholders
• Ci&T’s team: 12 people • monthly deliveries • currently at sprint 12
![Page 36: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/36.jpg)
technical debt under control! • code standards / design / code reviews / frequent refactoring – cost to add new features is almost the same since sprint 3
• conCnuous integraCon / automated tests – daily builds deployed on customer environment – completely automated deploy process – merge Cme reduced to zero
• quality – from 0,1 bugs / KLOC to 0,06 bugs / KLOC on producCon
but how?!?
![Page 37: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/37.jpg)
how to pay the debt?
![Page 38: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/38.jpg)
1 – register
![Page 39: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/39.jpg)
2 – evaluate
![Page 40: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/40.jpg)
3 – do not accumulate
![Page 41: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/41.jpg)
conCnuous integraCon
TDD
code reviews
refactoring
...
4 – pay
![Page 42: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/42.jpg)
and how about the product owner?
(because it seems he is somehow important, doesn’t it? J )
![Page 43: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/43.jpg)
you may see him as the bad guy…
Ø pushing the team very hard
Ø adding unnecessary complexity
Ø not opened to technical arguments
![Page 44: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/44.jpg)
but he is the one who will have to pay for the debt eventually!
![Page 45: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/45.jpg)
it is all about communicaCon • The product owner – usually -‐ does not know what is refactoring, code review, TDD, etc – And he does not need to know!
• But he needs to know what is the size of the debt and make conscious decisions about when and how to pay it – Keeping him in the loop is a team responsibility!
![Page 46: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/46.jpg)
final words
(if you have just waken up)
![Page 47: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/47.jpg)
Paulo Camara [email protected]
hTp://www.linkedin.com/in/proberto
proberto98
this deck: h\p://bit.ly/mWmqan
![Page 48: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/48.jpg)
?
![Page 49: Technical Debt - Why should you care? (Agiles Buenos Aires 2011)](https://reader034.vdocuments.site/reader034/viewer/2022051817/547c3487b47959b1508b45d4/html5/thumbnails/49.jpg)
good references Sites • Being Agile – blog interno da Ci&T • hTp://www.controlchaos.com/ • hTp://www.mountaingoatsobware.com/scrum • hTp://jeffsutherland.com/scrum/ • hTp://www.scrumalliance.org/arCcles • hTp://www.agilechronicles.com/
Books • Agile Project Management with Scrum -‐ by Ken
Schwaber • Lean Sobware Development: An Agile Toolkit -‐ By
Mary Poppendieck, Tom Poppendieck • Agile and IteraCve Development: A Manager's
Guide -‐ By Craig Larman • Agile Sobware Development -‐ by Alistair Cockburn
ArCcles • CMMI® or Agile: Why Not Embrace Both! – by Hillel
Glazer, Jeff Dalton, David Anderson, Mike Konrad and Sandy Shrum
• PracCcal Roadmap To Great Scrum -‐ Jeff Sutherland, Ph.D., October 20, 2009
• Scrum and CMMI -‐ Going from Good to Great, Carsten Ruseng Jakobsen, Jeff Sutherland, Ph.D.