Issuu on Google+

Agile Teams play "Hard Choices" and payoff Software Debt Adrian Lupei - Software Engineering Manager Bitdefender - Consultant Confucius adrian.lupei@confucius.ro


US Debt Clock.org • 19.09.2012 22:17

• 19.09.2012 22:18

• ~1 minut = 2.525.469$

2


3


DEMON OCRACY.INFO • Moto Site: Ignorance is bliss, Reality is Not. • Titlul: The European Super Highway of Debt

• 2.91 Trilioane Euro împrumutați de către PIIGS (Portugalia, Italia, Irlanda, Grecia, Spania) de la 13 bănci http://demonocracy.info/infographics/eu/debt_piigs/debt_piigs.html 4


Lungime totala: 26.7km

5


Agile Software Development • Beneficii – Crește vizibilitatea – Crește adaptabilitate – Crește valoarea livrată – Scade riscul

• Beneficiile de mai sus se transforma în probleme la implementare mai ales dacă nu există suport din partea organizației 6


Datoria în software • De unde vine? – Technical Debt – fără unit teste – Quality Debt – fără teste automate funcționale / acceptanță – Configuration Management Debt – fără continuous integration – Design Debt – rescrierea ca singura soluție pentru a adăuga un feature nou 7


Datoria în software • Probleme termen scurt – Intarzieri mici – Nici o problema

• Probleme termen lung – Probleme la demo în fața clienților – Imposibilitatea de a valida și livra un fix rapid – Pierdere clienți -> Faliment

8


Datoria în software • Expresii comune – Nu avem timp acum, dar vom aloca mai târziu – Nu avem nevoie de asta acum, dar o să facem când o să fie nevoie – Pe unde am mai lucrat nu am facut dintrastea și treaba mergea bine – Nu știm cum se face sau nu am mai făcut așa ceva – Nu avem timp să facem asta acum, dar dacă se întâmplă ceva nasol o să gasim noi o soluție – La mine merge – La noi nu se reproduce bugul – Trebuia să fie gata ieri

9


Datoria în software • Soluția de la Bitdefender: – Livrarea și testarea continuă poate reduce datoria în software

• Pasul urmator – Release/Deployment continuu? (Etsy.com)

10


Jocul Hard Choices • Adaptat de Carnegie Mellon Software Engineering Institute după Short Cut: Game about Speed and Risk • Simulează ciclul de dezvoltare software prin – Incertitudine – Risc – Opțiuni – Datoria tehnică 11


Jocul Hard Choices

12


Jocul Hard Choices • Reguli – Pot juca 2, 3, 4 persoane – Jucătorii se pot mișca în orice direcție – Primul jucător care termină jocul primește 5 puncte, al doilea 3 puncte, iar al treilea 1 punct – La final fiecare jucător primește câte un punct pentru fiecare carte ”unealta” colectată – Pentru a ajunge la final trebuie aruncat zarul corespondent numărului de pași rămași – Jocul se termină când mai rămâne un singur jucător la masă – Jucătorul care acumulează cele mai multe puncte este declarat câștigător 13


Jocul Hard Choice • Pătratele “Hard Choices” - Jucătorii aleg dacă vor să treacă peste pod sau vor să colecteze puncte • Cărțile de tip ”pod/scurtătură” - scad cu 1 rezultatul fiecărei aruncări de zar • Pentru a scăpa de o carte de tip ”pod/scurtătură” – se poate renunța la o aruncare de zar • Cărțile de tip ”unealtă” – Se ridică cartea dacă jucatorul nu are nici o carte de acest tip – Dacă jucătorul mai are o carte se poate colecta cartea sau se poate obține o nouă aruncare de zar 14


Jocul Hard Choices • Strategii simple 1. Jucătorul alege întotdeauna scurtătura 2. Jucătorul alege scurtătura dar plăteste imediat stând o tură fără să joace 3. Jucătorul nu alege niciodata scurtătura

• Rezultate – Strategia 2 este cea câștigătoare – Strategiile 1 si 3 sunt aproximativ la fel de eficiente 15


Jocul Hard Choices • Ce se întâmplă dacă … ? – Stăm două ture în loc de una când trebuie să plătim datoria (technical debt sprint) – Suntem penalizați cu două puncte la fiecare aruncare de zar dacă avem o carte de tip ”pod/scurtatura” 16


Concluzii •

Datoria în software acumulată de echipe este strâns legată de – Ignorarea unor practici – Amânarea unor decizii

La nivel de individ – Nu cumva exista posibilitatea ca în altă companie să găsești o datorie și mai mare? – Cum faci să fii acceptat într-o echipă unde practicile precum TDD și pair programming au devenit obișnuința?

“Debt is like any other trap, easy enough to get into, but hard enough to get out of.” -Henry Wheeler Shaw (umorist 1818-1885) 17


Resurse • Managing Software Debt – Chris Sterling • Continuous Delivery – Jez Humble, David Farley • Avoiding System Bankruptcy – How to Pay Off your Technical Debt – Amir Kolsky 18


Q&A

19


Agile Teams play "Hard Choices" and payoff Software Debt