Agile Teams play "Hard Choices" and payoff Software Debt

Post on 08-Mar-2016

220 views 2 download

Tags:

description

Agile Teams play "Hard Choices" and payoff Software Debt

Transcript of 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 - 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

• 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

5

Lungime totala: 26.7km

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

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