Scrum har etablert seg som den mest brukte arbeidsmodellen for smidig (”agile”) utvikling. Mange kjenner til Scrums tre roller scrummester, produkteier og lagmedlem. Scrums faste møter planleggingsmøte, daglig oppfølging, demo og tilbakeblikk er også kjent av mange.
Derimot er det ikke like velkjent hvordan man som utvikler kan få størst mulig utbytte av Scrum i sitt daglige arbeid. Smidig utvikling handler mye om å lage løsninger det er lett å forandre. Dette kurset handler om en anbefalt praksis en utvikler kan benytte seg av for å få til det .
Scrum lærer oss å ta krav i små biter om gangen og forvandle dem til løsninger med hyppige leveranser. Det komplette systemet blir utviklet gradvis, ikke i én stor leveranse. I de suksessive leveransene vil normalt noen av de opprinnelige behovene endre seg, så løsningen må være lett å tilpasse til nye og endrede krav. Målet er å levere det brukerne er mest tjent med, og det vil normalt skille seg fra det man la opp til fra begynnelsen av.
Kursets innhold:
I kurset lærer du å ta utgangspunkt i brukernes behov og konstruere en løsning som kan fange opp endringer på en smidig måte. Brukernes behov omarbeides til tydelige arbeidsoppgaver for utviklerne. Med støtte av UML–modellering omformes behovene til designløsninger, som er grunnlaget for å teste og skrive programmet. Vi går gjennom grunnprinsippene i Scrum og knytter objektorientert analyse og design sammen med Scrum.
En iterasjon er utviklingen av en liten del av et produkt, fra brukerbehov via analyse, automatisert testing og design til implementasjon. Et smidig prosjekt består normalt av et flertall iterasjoner. Kurset går først gjennom arbeidsmodellen i Scrum. Deretter leder det deg gjennom en iterasjon for et produkt, fra behov til design, så du kan være produktiv i et Scrum–prosjekt.
Øvelsesoppgaver gjøres i grupper. Det er løsningsforslag til alle oppgavene i et eget vedlegg til kurset.
Analysen, en viktig del av forarbeidet til kodingen, tilsvarer første skritt i DDD (domenedrevet design) og leder frem til en domenemodell. Dette vil være kjernen i den ferdige løsningen. Designen beskriver løsningens tekniske struktur og dynamikk. Analyse– og designarbeidet bearbeider kravene til løsningen og gjør selve kodingen enklere.
Løsningsteknikken er objektorientert. Kurset inneholder ikke koding, men enkle kodeeksempler vil bli vist i Java, C++ eller C#, selv om vi ikke forutsetter at man kan noen av disse språkene på forhånd.
UML (Unified Modeling Language) er diagramteknikken for å lage arbeidstegninger og modeller. UML brukes i hele prosjektets livssyklus. Du får lære de nyttigste delene av UML og hvordan de kan brukes i praksis. Vi modellerer bl.a. bruksmønster, klasser, samarbeidssekvenser, arkitekturer, pakker og komponenter.
Mønster ("patterns") er løsningsskisser på problemstillinger som går igjen fra prosjekt til prosjekt. Vi bruker noen analysemønster, som beskriver generelle problemstillinger i en virksomhet, og noen klassiske
konstruksjonsmønster ("design patterns") for å løse typiske kodesituasjoner.
Testdrevet utvikling (TDD) er en teknikk som gir trygghet og støtter utvikleren i forandringsarbeidet. Kurset går gjennom grunnprinsippene for TDD.
Målgruppe og forkunnskaper:
Kurset er nyttig for alle som deltar ved utvikling av programvare, f.eks. som kundekontakt, kravutformer, arkitekt, tester eller prosjektleder, men det er mest tilpasset utviklere. Det kreves ingen bestemte forkunnskaper, men best utbytte av kurset får de som har programmeringserfaring og noe kunnskap om objektorientering. Det forutsettes ingen forkunnskaper i UML.