19
Agile Teams play "Hard Choices" and payoff Software Debt Adrian Lupei - Software Engineering Manager Bitdefender - - Consultant Confucius - [email protected]

Agile Teams play "Hard Choices" and payoff Software Debt

Embed Size (px)

DESCRIPTION

Agile Teams play "Hard Choices" and payoff Software Debt

Citation preview

Page 1: Agile Teams play "Hard Choices" and payoff Software Debt

Agile Teams play "Hard Choices" and payoff Software Debt

Adrian Lupei - Software Engineering Manager Bitdefender -

- Consultant Confucius - [email protected]

Page 2: Agile Teams play "Hard Choices" and payoff Software Debt

US Debt Clock.org • 19.09.2012 22:17

• 19.09.2012 22:18

• ~1 minut = 2.525.469$

2

Page 3: Agile Teams play "Hard Choices" and payoff Software Debt

3

Page 4: Agile Teams play "Hard Choices" and payoff Software Debt

• 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

DEMON OCRACY.INFO

http://demonocracy.info/infographics/eu/debt_piigs/debt_piigs.html

4

Page 5: Agile Teams play "Hard Choices" and payoff Software Debt

5

Lungime totala: 26.7km

Page 6: Agile Teams play "Hard Choices" and payoff Software Debt

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

Page 7: Agile Teams play "Hard Choices" and payoff Software Debt

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

Page 8: Agile Teams play "Hard Choices" and payoff Software Debt

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

Page 9: Agile Teams play "Hard Choices" and payoff Software Debt

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 dintr-

astea ș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

Page 10: Agile Teams play "Hard Choices" and payoff Software Debt

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

Page 11: Agile Teams play "Hard Choices" and payoff Software Debt

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

Page 12: Agile Teams play "Hard Choices" and payoff Software Debt

Jocul Hard Choices

12

Page 13: Agile Teams play "Hard Choices" and payoff Software Debt

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

Page 14: Agile Teams play "Hard Choices" and payoff Software Debt

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

Page 15: Agile Teams play "Hard Choices" and payoff Software Debt

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

Page 16: Agile Teams play "Hard Choices" and payoff Software Debt

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

Page 17: Agile Teams play "Hard Choices" and payoff Software Debt

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

Page 18: Agile Teams play "Hard Choices" and payoff Software Debt

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

Page 19: Agile Teams play "Hard Choices" and payoff Software Debt

Q & A

19