kan udviklere dokumentere april 2011

33
file:///mnt/Documents/bestbrainslogo2010_text.png file:///mnt/Documents/bestbrains_logo_ansigter.png Kan udviklere dokumentere? 13. april 2011 Jesper Thaning, BestBrains [email protected]

Upload: bestbrainsdk

Post on 04-Jul-2015

392 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Kan udviklere dokumentere?13. april 2011

Jesper Thaning, [email protected]

Page 2: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Opgave 1:Dokumentér dit køkken

Page 3: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Dagsorden

Dokumentation på en agil facon

Værdien af dokumentation

Hvornår skal vi dokumentere?

Tæt på brug og kode

Typer af dokumentation

Proces for dokumentation

Dokumenter

Page 4: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Mål for agil udvikling:

Kørende software

Understøt fremtidige aktiviteter

Scoot Ambler

brug, vedligeholdelse, drift, udvidelser, integration ...

”Working software over comprehensive documentation”

Page 5: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Hvad er dokumentation?

Informationer der ikke eksekveres i den normale udførsel af et program

Page 6: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Hvad er agil dokumentation?

at have akkurat nok dokumentation til den rigtige læser på det rigtige tidspunkt

Page 7: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Hvad er agil udvikling?

at have akkurat nok funktionalitet til den rigtige kunde på det rigtige tidspunkt

Page 8: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Hvad er der på spil?

Glæden ved at bruge relevant dokumentation

Page 9: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Hvad er der på spil?

Glæden ved at bruge relevant dokumentation

Smerten ved at mangle dokumentation

Page 10: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Hvad er der på spil?

Glæden ved at bruge relevant dokumentation

Smerten ved at mangle dokumentation

Irritation ved at skulle skrive dokumentation

Page 11: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Hvad er der på spil?

Irritation ved at skulle skrive dokumentation

Page 12: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

One size fits all?

Vedligeholdelse

Kundeprojekt

Produktudvikling

Projekt

Framework

Lav

Høj

Service

Værdi af dokumentation

Page 13: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Værdi – dokumentation som krav

Hvad er behovet?

Hvor gør det ondt? Hvem mærker det? Hvornår?

Hvad vil dokumentationen koste at vedligeholde?

Hvad vil kunden betale for en investering?

Hvordan måler vi værdien af dokumentation?

Tid brugt ved oplæring af nye medarbejdere?

Tid brugt ved fremtidig vedligeholdelse af systemet?Fejlrettelser, nyudvikling, idriftsættelser

Page 14: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Kunde med behov for dokumentation

Page 15: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Hvornår dokumenterer vi i vores proces?

Page 16: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Hvornår skriver vi dokumentation?

IdeskabelseSpecifikationog design

Test og Implementering Release Brug

Beslut om du skal dokumentere og hvad

Skriv dokumentation Too late!

Page 17: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Hvornår skriver vi dokumentation?

IdeskabelseSpecifikationog design

Test og Implementering Release Brug

Beslut om du skal dokumentere og hvad

Skriv dokumentation Too late!

Iterativ procesInput til næste iteration

Page 18: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Tæthed på brug og på kode

Jo tættere information er på den operationelle brug og vedligeholdelse af systemet,

jo mere værdifuld er den

Page 19: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Eksempler på: tæt på brug og kode

Tæt på Længere væk

Brugervejledninger i brugergrænsefl aden

Hjælpe-indeks og manualer

Funktions-test(eks. Cucumber)

Dokumenter som beskriver brugsmønstre

Unit-test Kodekommentarer

Page 20: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Eksempel: Testscenarie (Cucumber)

Page 21: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Opgave 2: Dokumentér dit køkken

1. Hvorfor? (intention – Hvorfor har du et køkken? Hvad vil du opnå eller undgå?)

2. Hvad? (bestanddele – Hvad består dit køkken af?)

3. Hvordan? (brug – Hvordan bruger du typisk dit køkken)

Page 22: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Hvad er vi i gang med at dokumentere?

Hvorfor? - intention

Hvad? - bestanddele

Hvordan? - brug

Page 23: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Typer af dokumentationEksempler

Afklaringer Notater, analyser, vurderinger

Specifi kationer Funktionstest, unittest, user stories, use cases, prototyper, designdokumenter

Forklaringer Systembeskrivelser, kodekommentarer,

Beskrivelser Systembeskrivelser, regneark, tabeller, diagrammer, overblik

Anvisninger Nice to know, driftsanvisninger, supportdokumentation, brugermanualer, hjælpetekster

Hvordan og hvad?

Hvorfor?

Hvad?

Hvordan?

Page 24: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Skabelon for dokumentation

Hvilke spørgsmål vil vi have svar på?

Hvorfor?

Hvad?

Hvordan?

Page 25: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Kodekommentarer

Hvorfor er denne klasse lavet?

/**

*

*/

public class ModelManager {

....

}

Page 26: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Hvor hænger de lavthængende frugter?

Page 27: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Proces for dokumentation

Kunden

Behov Dokumentation

giver input til

beskrives i en opgave

kvalitet sikres ved

Feedback

resulterer i

Færdigdokumentation

Page 28: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Udfordringer

Koden er sjældent selvforklarende

svært at skrive kode der tydligt kommunikerer intention

Kræver træning at skrive god dokumentation

Får vi tid nok skriver vi en lang essay

Vi oplever ting forskelligt – visuelt, logisk

Page 29: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Proces for et dokument

Skriv en indholdsfortegnelse

Diskuter med en anden om der er brug for diagrammer

Første gennemskrivning

Få ”Kunden” til at læse det igennemOvervej sammen om der mangler kontekst

Anden gennemskrivningIterér indtil kunden er tilfreds eller i er løbet tør for tid

Sidste gennemlæsning af ”Kunden”

Page 30: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Indhold i tekstdokumenter

Husk konteksten for det beskrevne emne

Dokumentér stabile begreber, ikke spekulationer

Forklar indforståede begreber

Undgå for mange detaljer – de ændrer sig

Dokumentér ”hvorfor”

Versionering

Gem historik i dokumentet

Page 31: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Diagrammer

Er værdifulde, men tager tid at lave

Struktur (hvad)

Arkitektur, systemer

Flow (hvordan)

Sekvensdiagrammer, brugsmønstre

Frie tegninger

Visuel kommunikation

Til blanding af hvad og hvordan

Page 32: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Kan udviklere dokumentere?

Har en ”kunde” med et klart behov

Får en veldefineret opgave

”Design” og ”arkitektur” på dokumentationen

Får feedback på om opgaven er ”Done”

Ja! Hvis de:

Skab et godt udgangspunktSkab konsensus om behov og værdi

Fjern unødvendige informationer. Ryd op!

Fokuser på dokumentation tæt på koden

Lav struktur og skabeloner for dokumentation

Page 33: Kan udviklere dokumentere april 2011

file:///mnt/Documents/bestbrainslogo2010_text.png

file:///mnt/Documents/bestbrains_logo_ansigter.png

Dokumenter agilt

Start simpeltTæt på brugen af systemet

Få feedbackhttp://www.agilemodeling.com/essays/agileDocumentation.htm

Scot Ambler.

Agile Documentation, ”A Pattern Guide to Producing Lightweight Documents for Software”, Andreas Rueping