fokuserer på bygging av produkt som kan prøves ut
sentrert rundt prosesser for dette, og ikke på verktøy og teknikk
men… forutsetter i praksis verktøystøtte
smidighet krever automatisering
verktøy smører prosessene
oppfølging av den smidige prosessen
oversikt over (ulike typer) utviklingsoppgaver
planlegging av iterasjoner
samarbeidsstøtte
håndtering av kildekode
distribuert utvikling
endringshåndtering
versjonskontroll
kontinuerlig integrasjon (CI)
testing
bygging av artifakter
Kunden ønsker å kunne importere et gammelt filformat. Dette funksjonsønsket deles opp i to utviklingsoppgaver, én for kjernefunksjonaliteten og én for brukergrensesnittet.
Cecilie starter med kjernen og skisserer først hvordan hun tenker å løse det teknisk vha. noen enkle klassediagram. Så defineres oppførselen til hver klasse i form av tester, og tomme klasser opprettes.
Kristian kan starte på brukergrensesnittet til importfunksjonaliteten så snart klassedeklarasjonene er klare, han trenger ikke selve implementasjonskoden i starten.
Cecilie jobber seg så gjennom implementasjonen, og sjekker hele tiden at den er som tenkt ved å kjøre testene. Hun er ferdig i god tid før Kristian, og når han er det så… bare virker det! Til slutt oppsummerer de begge hva som ble gjort og gjør funksjonen tilgjengelig for kunden.
Hva har dette å si for verktøystøtte?
oppfølging av den smidige prosessen:
to utviklingsoppgaver knyttet til hhv. Cecilie og Kristian
del av inneværende iterasjon
dialog/diskusjonstråd knyttet til oppgaven
håndtering av kildekode:
Cecilie må kunne dele sin kjernekode med Kristian, men holde den unna de andre
det må komme frem at koden er knyttet til respektive utviklingsoppgaver
den nye koden er knyttet til neste versjon
kontinuerlig integrasjon (CI):
hyppig kjøring av testene
ny versjon rulles raskt ut til kunden
gitlab.stud.idi…
profesjonelt støtteverktøy for smidig utvikling
IDI har egen installasjon (tas kanskje over av NTNU IT)
innlogging med NTNU-navn og -passord
hierarki av grupper, med prosjekter (repo) under
IT1901-emnet er en gruppe: it1901
emnet har repo med læringsmateriale inkl. kode
hver gruppe er egen undergruppe (it1901-gr19xy)
gruppene opprettes av oss, så inviteres dere inn
dere oppretter nødvendige repo
En oppgave (issue) er arbeid som skal følges opp
ny funksjon, forbedring, feilretting, konfigurasjon …
hver oppgave har en dialog/diskusjonstråd
halvautomatisk knytning til endringer (commits)
Oppgavesporing er viktig for transparens
kunder trenger innsyn i prosess
teamet trenger å dele kunnskap
løse og distribuerte prosjekter (f.eks. åpen kildekode) har ekstra behov
støtter vurdering…
oppgaver opprettes ifm. planlegging av iterasjon, f.eks. fra brukerhistorier, funksjonsønsker eller feilrapporter
oppgaver knyttes til
milepæl for iterasjon
utviklinger som jobber med den
merkelapper (labels) kan angi fasen en oppgave er i
f.eks. planlagt, utvikling, testing, godkjent
oppgavetavler (issue boards) visualiserer fremdrift
dialog/diskusjonstråd dokumenterer prosessen
designidéer, avgjørelser, avhengigheter, …
knyttes til endringer (commits) gjennom oppgavenummer (#)
oppsummerer hva som ble gjort
Viktig for transparens!