Your SlideShare is downloading. ×
Kan udviklere dokumentere april2011
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Kan udviklere dokumentere april2011

525
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
525
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Hvad skal der til for at vi kan opbygge og vedligeholde en brugbar dokumentation?
  • Hvad blev der skrevet ned? Hvilke udfordringer møder I ofte omkring dokumentation?
  • Kom med nogle eksempler: Eksempler: Kildekode, tekster i brugergrænsefladen
  • Hvordan får vi skrevet og vedligeholdt præcis den dokumentation vi har brug? Lige så svært som at have de rigtige features på det rigtige tidspunkt Hvad skal der til for On demand JIT Men man kan ikke lave JIT hvis man ikke har tænkt over hvordan dokumentation skal produceres. JIT er ikke wait until we have the problem.
  • Lige så svært som at have de rigtige features på det rigtige tidspunkt Hvordan får vi skrevet og vedligeholdt præcis den dokumentation vi har brug? Hvad skal der til for On demand JIT Men man kan ikke lave JIT hvis man ikke har tænkt over hvordan dokumentation skal produceres. JIT er ikke wait until we have the problem.
  • Hvad er det der er på spil i forhold til dokumentation? Har du nogensinde oplevet glæden ved at bruge relevant dokumentation Har du nogensinde være irriteret over at skulle opdatere dokumentation Har du nogensinde bandet over at dokumentation var mangelfuld Hvis den samme person oplever de to øverste vil der være en incitament til at skrive dokumentation Hvis det er forskellige personer, kræver det en motivationsfaktor.
  • Hvad er det der er på spil i forhold til dokumentation? Har du nogensinde oplevet glæden ved at bruge relevant dokumentation Har du nogensinde være irriteret over at skulle opdatere dokumentation Har du nogensinde bandet over at dokumentation var mangelfuld Hvis den samme person oplever de to øverste vil der være en incitament til at skrive dokumentation Hvis det er forskellige personer, kræver det en motivationsfaktor.
  • Hvad er det der er på spil i forhold til dokumentation? Har du nogensinde oplevet glæden ved at bruge relevant dokumentation Har du nogensinde bandet over at dokumentation var mangelfuld Har du nogensinde være irriteret over at skulle opdatere dokumentation Hvis den samme person oplever de to øverste vil der være en incitament til at skrive dokumentation Hvis det er forskellige personer, kræver det en motivationsfaktor.
  • Hvad er det der er på spil i forhold til dokumentation? Har du nogensinde oplevet glæden ved at bruge relevant dokumentation Har du nogensinde være irriteret over at skulle opdatere dokumentation Har du nogensinde bandet over at dokumentation var mangelfuld Hvis den samme person oplever de to øverste vil der være en incitament til at skrive dokumentation Hvis det er forskellige personer, kræver det en motivationsfaktor.
  • Hvor oplever vi smerten vi manglen på dokumentation?
  • Hvornår oplever vi smerten vi manglen på dokumentation?
  • Hvornår oplever vi smerten vi manglen på dokumentation?
  • Hvordan var det at dokumentere denne gang? Forhåbentligt nemmere. Vigtigheden at have en skabelon og et design for dokumentationen. Vil vi have en dokumentation der beskriver detaljerne.
  • Hvad giver størst værdi? Hvilke typer af dokumenter giver størst værdi i jeres nuværende projekt? Hvad vil give størst værdi i jeres projekt?
  • Hvor er der lavthængende frugter i forhold til at forbedre dokumentationen? Kildekode? Refaktorering til at gøre navnekonvention entydig.
  • Transcript

    • 1. Kan udviklere dokumentere? 13. april 2011 Jesper Thaning, BestBrains [email_address]
    • 2. Opgave 1: Dokumentér dit køkken
    • 3. Dagsorden
      • Dokumentation på en agil facon
      • 4. Værdien af dokumentation
      • 5. Hvornår skal vi dokumentere?
      • 6. Tæt på brug og kode
      • 7. Typer af dokumentation
      • 8. Proces for dokumentation
      • 9. Dokumenter
    • 10. Mål for agil udvikling: Kørende software Understøt fremtidige aktiviteter Scoot Ambler brug, vedligeholdelse, drift, udvidelser, integration ... ” Working software over comprehensive documentation”
    • 11. Hvad er dokumentation? Informationer der ikke eksekveres i den normale udførsel af et program
    • 12. Hvad er agil dokumentation? at have akkurat nok dokumentation til den rigtige læser på det rigtige tidspunkt
    • 13. Hvad er agil udvikling ? at have akkurat nok funktionalitet til den rigtige kunde på det rigtige tidspunkt
    • 14. Hvad er der på spil? Glæden ved at bruge relevant dokumentation
    • 15. Hvad er der på spil? Glæden ved at bruge relevant dokumentation Smerten ved at mangle dokumentation
    • 16. Hvad er der på spil? Glæden ved at bruge relevant dokumentation Smerten ved at mangle dokumentation Irritation ved at skulle skrive dokumentation
    • 17. Hvad er der på spil? Irritation ved at skulle skrive dokumentation
    • 18. One size fits all? Lav Høj Værdi af dokumentation
    • 19. 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?
        • 20. Tid brugt ved fremtidig vedligeholdelse af systemet?
          • Fejlrettelser, nyudvikling, idriftsættelser
    • 21. Kunde med behov for dokumentation
    • 22. Hvornår dokumenterer vi i vores proces?
    • 23. Hvornår skriver vi dokumentation? Ideskabelse Specifikation og design Test og Implementering Release Brug Beslut om du skal dokumentere og hvad Skriv dokumentation Too late!
    • 24. Hvornår skriver vi dokumentation? Ideskabelse Specifikation og design Test og Implementering Release Brug Beslut om du skal dokumentere og hvad Skriv dokumentation Too late! Iterativ proces Input til næste iteration
    • 25. 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
    • 26. Eksempler på: tæt på brug og kode Tæt på Længere væk Brugervejledninger i brugergrænsefladen Hjælpe-indeks og manualer Funktions-test (eks. Cucumber) Dokumenter som beskriver brugsmønstre Unit-test Kodekommentarer
    • 27. Eksempel: Testscenarie (Cucumber)
    • 28. 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)
    • 29. Hvad er vi i gang med at dokumentere? Hvorfor? - intention Hvad? - bestanddele Hvordan? - brug
    • 30. Typer af dokumentation Eksempler Afklaringer Notater, analyser, vurderinger Specifikationer 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?
    • 31. Skabelon for dokumentation
      • Hvilke spørgsmål vil vi have svar på?
    • 34. Kodekommentarer
      • Hvorfor er denne klasse lavet?
      /** * */ public class ModelManager { .... }
    • 35. Hvor hænger de lavthængende frugter?
    • 36. Proces for dokumentation giver input til beskrives i en kvalitet sikres ved resulterer i Kunden Behov Dokumentation opgave Feedback Færdig dokumentation
    • 37. Udfordringer
      • Koden er sjældent selvforklarende
        • svært at skrive kode der tydligt kommunikerer intention
      • Kræver træning at skrive god dokumentation
      • 38. Får vi tid nok skriver vi en lang essay
      • 39. Vi oplever ting forskelligt – visuelt, logisk
    • 40. Proces for et dokument
        • Skriv en indholdsfortegnelse
        • 41. Diskuter med en anden om der er brug for diagrammer
        • 42. Første gennemskrivning
        • 43. Få ”Kunden” til at læse det igennem
          • Overvej sammen om der mangler kontekst
        • Anden gennemskrivning
          • Iterér indtil kunden er tilfreds eller i er løbet tør for tid
        • Sidste gennemlæsning af ”Kunden”
    • 44. Indhold i tekstdokumenter
      • Husk konteksten for det beskrevne emne
      • 45. Dokumentér stabile begreber, ikke spekulationer
      • 46. Forklar indforståede begreber
      • 47. Undgå for mange detaljer – de ændrer sig
      • 48. Dokumentér ”hvorfor”
      • 49. Versionering
        • Gem historik i dokumentet
    • 50. Diagrammer
      • Er værdifulde, men tager tid at lave
      • 51. Struktur (hvad)
        • Arkitektur, systemer
      • Flow (hvordan)
        • Sekvensdiagrammer, brugsmønstre
      • Frie tegninger
        • Visuel kommunikation
        • 52. Til blanding af hvad og hvordan
    • 53. Kan udviklere dokumentere?
      • Har en ”kunde” med et klart behov
      • 54. Får en veldefineret opgave
        • ”Design” og ”arkitektur” på dokumentationen
      • Får feedback på om opgaven er ”Done”
      Ja! Hvis de: Skab et godt udgangspunkt
      • Skab konsensus om behov og værdi
      • 55. Fjern unødvendige informationer. Ryd op!
      • 56. Fokuser på dokumentation tæt på koden
      • 57. Lav struktur og skabeloner for dokumentation
    • 58. Dokumenter agilt
        Start simpelt Tæt på brugen af systemet Få feedback
      • http://www.agilemodeling.com/essays/agileDocumentation.htm Scot Ambler.
      • 59. Agile Documentation, ”A Pattern Guide to Producing Lightweight Documents for Software”, Andreas Rueping