Utvecklarpraxis för kvalitet i agila projekt

Preview:

DESCRIPTION

Frukostseminarium 4/11 - 2009 Ett vanligt fel många gör när de börjar arbeta agilt är att man låter kvalitén sjunka med tiden. Det kan vara kompromisser mellan bra kod och snabb leverans, slarv med de automatiserade testerna, dokumentation som saknas eller är inaktuell, med mera. Det börjar ta längre och längre tid för projektet att kunna göra en bra leverans. Vad behöver vi för att kunna upprätthålla bra kvalitet och högt tempo på samma gång? Magnus Mickelsson - Citerus

Citation preview

Utvecklarpraxis för kvalité

Hur bär vi oss åt för att hålla kvalitén uppe i våra (agila) projekt?

Magnus Mickelsson, Citerus AB

1

magnus.mickelsson@citerus.se

Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183

Om Citerus

• Citerus är ett konsult- och utbildningsföretag som hjälper sina kunder att lyckas med

mjukvaruutveckling. Sedan 1996 har vi utvecklat mjukvara, lett projekt, förbättrat

Om Magnus Mickelsson

‣ I branschen sedan 1996 - systemutvecklare och arkitekt

Certifierad Scrum Master

mjukvaruutveckling. Sedan 1996 har vi utvecklat mjukvara, lett projekt, förbättrat

utvecklarpraxis och förfinat ledningsmetoder åt företag från många olika branscher. Vi

uppnår resultat genom att höja kvalitetsribban, sätta människor i första rummet och

minska på byråkratin.

QuickTime och en-dekomprimerare

krävs för att kunna se bilden.

2

‣ Certifierad Scrum Master

‣ Utbildar inom TDD, refactoring och övriga Engineering Practices

‣ Fokus på J2EE-plattformen

Vad går fel med vår kod och våra projekt?

Hjälper Agile-metoder?

1985-1987 -- Therac-25 medical accelerator. A radiation therapy device malfunctions and delivers lethal radiation doses.

33

1985-1987 -- Therac-25 medical accelerator. A radiation therapy device malfunctions and delivers lethal radiation doses.

Because of a subtle bug called a "race condition” … At least five patients die; others are seriously injured.

Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183

Agile miljö

• Självförbättrande

• Fokus på ”rätt saker”• Fokus på ”rätt saker”

• Affärsnytta - bra kvalité - snabbt

• Kunna lösa problem i teamet

• Tydligt och synligt

4

Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183

Hinder och fällor

•Otydliga/oprioriterade krav

•Ingen förbättringsprocess

•Ingen koll på konsekvenser

•”Trasiga fönster”

5

•Teamet kan inte arbeta fokuserat

Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183

Hur handskas vi med detta på teknisk nivå?

•KLART-kriterier

•Engineering practices

•Stop the line

6

Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183

Stop-the-line!

7

Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183

Documentation

Visual feedback

Engineering Practices

Refactoring Continuous Integration

TDD & Testing

Visual feedback

8

Version control

TDD & Testing

Automated build- and release

Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183

Synbar, snabb feedback

9

Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183

TDD

Think

Write test

• Ger snabb feedback till utvecklarna

• Fokusera på domänen (DDD)

• Hitta ”rytmen”

Do thetests pass?

Write test

that fails

Write code

to pass test

No

Yes

Yes

10

Refactor

Do thetests pass?

No

Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183

Agil testning - hitta versus undvika buggar

Peer

programming

Peer

programming

Quality of code Functionality Acceptance

Developer

testing

Developer

testing

programmingprogramming

Agile

testing

Agile

testing

Customer

tries to

use it

Customer

tries to

use it

11

Test automationTest automation

Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183

Refactoring

•Konsten att städa sin egen röra•Konsten att städa sin egen röra

•Naturlig del av dagliga arbetet

•Laga trasiga fönster kontinuerligt

•Kräver automatiserade tester

12

•Kräver automatiserade tester

Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183

Kontinuerlig integration och ”One click build”

•Enkelt att bygga hela produkten

•Automatisera!

•Bygg vid varje förändring

•Statusrapporter som del av bygget

13

•Larm då bygget kraschar

Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183

Dokumentation i Wiki

•Lätt att komma åt och jobba med•Lätt att komma åt och jobba med

•Korslänkar

•Sökbar

•Versionshanterad

14

•Dock: lätt att få ”trasiga fönster”

Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183

KLART

• Kodat• Kodat

•Koden städad

•Lyder riktlinjer

•Lever upp till kraven

•Inga to-dos

15

•Inga to-dos

•Analyserad (Findbugs, PMD etc)

Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183

KLART

•Testat•Testat

•Automatiserade tester

•Manuella tester

•Code coverage

16

Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183

KLART

•Reviewat•Reviewat

•Pair programming eller peer review

•Design granskad

17

Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183

KLART

•Administrativt•Administrativt

•Dokumentation uppdaterad

•Byggscript/verktyg uppdaterade

•Inga ofärdiga uppgifter

18

Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183

KLART

•Levererans•Levererans

•Kod incheckad

•Byggt och deployat/paketerat

19

Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183

Nästa steg?

•Fundera över nuläget

•Fundera vart ni vill komma

•Utbildningar/Litteratur

•Hjälp att få team att komma igång

20

•Uppmuntra ”kunskapsföretaget”

Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183

Frågor?

• magnus.mickelsson@citerus.se

21

Recommended