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

Agile Teams play "Hard Choices" and payoff Software Debt

Mar 08, 2016

Download

Documents

Agile Teams play "Hard Choices" and payoff Software Debt
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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