Download - Planung der Inkremente-v02b - se.uni-hannover.de · Planung'der'Inkremente' Version(02(vom(28.10.2015(Bearbeitet(von(Olga(Boruszewski,(FG(Software(Engineering(' Story'Cards'aus'der'Spezifikation'ableiten.

Transcript
Page 1: Planung der Inkremente-v02b - se.uni-hannover.de · Planung'der'Inkremente' Version(02(vom(28.10.2015(Bearbeitet(von(Olga(Boruszewski,(FG(Software(Engineering(' Story'Cards'aus'der'Spezifikation'ableiten.

Planung'der'Inkremente'Version(02(vom(28.10.2015(Bearbeitet(von(Olga(Boruszewski,(FG(Software(Engineering(

Wie$geht$es$nun$weiter?$Nun(gilt(es,(die(Implementierung(Ihres(Produktes(auf(die(zwei(Inkremente(und(die(PolishHPhase(zu(verteilen.(Dabei(sollten(Sie(anstreben,(die(wichtigsten(Funktionen(möglichst(früh((wenn(auch(zunächst(in(rudimentärer(Form)(umzusetzen,(anstatt(eine(große(Funktion(oder(einen(Use(Case(in(vollem(Umfang(zu(implementieren.(Dies(hat(den(Hintergrund,(dass(Sie(frühes(KundenHFeedback(zu(grundlegenden,(wichtigen(Teilen(anstatt(Implementierungsdetails(einholen(sollten.(

Tipps$zum$Vorgehen$Sie(sollten(die(in(der(Spezifikation(festgeschriebene(Funktionalität(nun(in(kleinere(Einheiten(teilen,(um(besser(zwischen(wichtigsten(Funktionen(und(weiteren(Faktoren(trennen(zu(können.(Hierzu(eignen(sich(Story&Cards&(auch&User&Stories&genannt):(„Karten“,(die(Anforderungen(einzeln(und(userorientiert(festhalten.(Story(Cards(besitzen(einen(Titel,(eine(Beschreibung((nie(mehr(als(eine(Seite)(und(weitere(optionale(Attribute,(wie(Aufwandsschätzungen.(

Es(ist(von(Vorteil,(Story(Cards,(die(zum(selben(StakeholderHZiel(gehören,(zu(gruppieren.(Sogenannte(UserTasks(gruppieren(dann(alle(Story(Cards,(die(zur(Erfüllung(des(StakeholderHZiels(implementiert(sein(müssen.((

Verwenden(Sie(zur(Verwaltung(Ihrer(Story(Cards(ein(DINHA3(Blatt(mit(PostIts(für(die(Karten.(Zur(Dokumentation(Ihres(Vorgehens(sollten(Sie(zu(Beginn(jedes(Inkrementes(ein(Foto(vom(Zustand(ihrer(Planung(machen(und(es(ins(SVN(hochladen.(

Die(folgende(Abbildung(zeigt(ein(Beispiel(für(eine(Story(Card(Map:(

'Abbildung'1:'Beispiel'einer'Story'Card'Map'

Page 2: Planung der Inkremente-v02b - se.uni-hannover.de · Planung'der'Inkremente' Version(02(vom(28.10.2015(Bearbeitet(von(Olga(Boruszewski,(FG(Software(Engineering(' Story'Cards'aus'der'Spezifikation'ableiten.

Planung'der'Inkremente'Version(02(vom(28.10.2015(Bearbeitet(von(Olga(Boruszewski,(FG(Software(Engineering(

'

Story'Cards'aus'der'Spezifikation'ableiten.(1. Schreiben(Sie(für(jeden(Use(Case(einen(UserTask,(der(als(Titel(das(Ziel(des(

Hauptakteurs(enthält.(Ordnen(Sie(diese(nebeneinander(an.(

2. Schreiben(Sie(nun(unter(jeden(UserTask(detaillierte(Story(Cards(für(alle(einzelnen(Aktivitäten,(die(der(User(im(Zuge(dieses(UserTasks(tun(kann.(Dazu(orientieren(Sie(sich(am(Hauptszenario(und(den(Erweiterungen(des(Use(Cases.(Beschreiben(Sie(für(eine(Story(Card(zunächst(nur(den(Titel.(Details(werden(später(z.B.(auf(der(Rückseite(festgehalten.(

3. Passen(Sie(die(Struktur(so(an,(dass(sie(Ihnen(einen(guten(Überblick(gibt.(Wenn(Sie(wollen,(spalten(Sie(einen(UserTask(in(mehrere(auf,(fassen(mehrere(UserTasks(zusammen,(oder(fügen(weitere(Story(Cards(hinzu.(Bei(Ihrem(Projektumfang(sind(5H9(UserTasks(in(der(Regel(eine(gute(Menge.(

4. Prüfen(Sie(auch(die(Vorbedingungen,(Auslöser,(Erweiterungen(und(Garantien(Ihrer(Use(Cases.(Wenn(diese(nicht(in(den(Story(Cards(erfasst(sind,(aber(auch(implementiert(werden(müssen,(erstellen(Sie(eine(neue(Story(Card(dazu.(

5. Prüfen(Sie,(ob(die(Spezifikation(weitere(funktionale(Anforderungen(enthält,(die(noch(nicht(durch(die(Stories(abgedeckt(sind.((Bspw.(in(technischen(und(rechtlichen(Anforderungen,(der(Mission(des(Projektes(oder(den(Optionen(zur(Aufwandsreduktion.)(

o Versuchen(Sie,(diese(zusätzlichen(Anforderungen(als(Beschreibung(zu(einer(passenden(Story(Card(hinzuzufügen.((

o Gibt(es(keine(passende(Story(Card,(versuchen(Sie(einen(passenden(UserTask(zu(finden(und(die(neue(Anforderung(diesem(als(Story(Card(hinzuzufügen.((

o Wenn(es(auch(keinen(passenden(UserTask(gibt,(schreiben(Sie(eine(gesonderte(Story(Card(auf(und(ordnen(Sie(sie(dem(UserTask(„allgemeine(Anforderungen“(zu.(

(Story'Cards'priorisieren.((

1. Geben(Sie(jeder(Story(Card(eine(der(vier(Prioritätsstufen(A(–(D.(Tragen(Sie(die(Priorität(sichtbar(auf(der(Karte((bzw.(dem(PostIt)(ein.(

A. Wichtigste(Funktionen.(Ohne(diese(Story(macht(das(ganze(Produkt(gar(keinen(Sinn.(

B. Story(ist(wichtiger(Bestandteil(des(Produktes.(Ohne(sie(kann(man(aber(auch(schon(sinnvolle(Dinge(mit(dem(Produkt(machen.(

C. Story(fügt(kleinere(Funktionen(hinzu(oder(macht(Interaktion(mit(System(angenehmer/hübscher,(hat(aber(keinen(großen(Einfluss(darauf,(ob(Nutzer(das(Hauptziel(erreicht(

D. Optionale(Stories(

2. Für(jede(Story(Card(mit(Prio(A(oder(B(prüfen(Sie,(ob(Sie(diese(aufspalten(können(in(besonders(wichtige(Teile(und(Teile,(ohne(die(man(das(Hauptziel(noch(erreichen(könnte.(Spalten(Sie(in(solchen(Fällen(in(die(Story(Card(in(mehrere(Cards(und(geben(Sie(ihnen(die(entsprechenden(Prioritäten.(

Page 3: Planung der Inkremente-v02b - se.uni-hannover.de · Planung'der'Inkremente' Version(02(vom(28.10.2015(Bearbeitet(von(Olga(Boruszewski,(FG(Software(Engineering(' Story'Cards'aus'der'Spezifikation'ableiten.

Planung'der'Inkremente'Version(02(vom(28.10.2015(Bearbeitet(von(Olga(Boruszewski,(FG(Software(Engineering(

(Story'Cards'zu'einzelnen'Inkrementen'zuordnen.'

1. Ordnen(Sie(die(Stories(zunächst(nach(Prioritäten(in(die(Inkremente(ein(• User(Stories(mit(Priorität(A(H>(Inkrement&1(• User(Stories(mit(Priorität(B(H>(Inkrement&2&• Prioritäten(C(und(D(H>(Polish(

2. Bauen(Sie(die(tabellarische(Sicht,(wie(in(Abbildung(1(auf.(In(der(Spalte(steht(der(UserTask,(zu(dem(eine(Story(gehört;(in(der(Zeile(dann(das(Inkrement.(Sortieren(Sie(die(Stories(in(die(entsprechenden(Zeilen.(Falls(der(Platz(nicht(ausreicht,(können(Sie(auch(für(jedes(Inkrement(einen(eigenen(DINHA3HZettel(verwenden(

3. Ziehen(Sie(eine(Story(Card(in(ein(früheres(Inkrement,(wenn(a. ein(hohes(Risiko(besteht,(dass(Missverständnisse(in(den(Anforderungen(

aufgetaucht(sind(

b. ein(hohes(Risiko(besteht,(dass(der(Lösungsansatz(die(Kundenwünsche(nicht(ganz(erfüllt(

c. andere(wichtigere(Stories(von(ihr(abhängig(sind((Achtung,(oft(kann(man(solche(Abhängigkeiten(durch(ganz(rudimentäre(Dummies(oder(Mocks(füllen(und(muss(nicht(die(ganze(Story(implementieren.)(

4. Gleichen(Sie(die(Arbeitsbelastung(in(den(Inkrementen(aus.(Wenn(in(einem(Inkrement(zu(viele(Stories(sind,(so(müssen(einige(von(ihnen(in(ein(früheres(oder(späteres(Inkrement.(Wenn(Sie(nicht(sicher(sind,(welche(Stories(zuerst(erledigt(werden(sollten,(fragen(Sie(den(Kunden,(welche(ihm(wichtiger(sind.(

5. Nicht(jede(Story(hat(den(gleichen(Aufwand.(Um(das(zu(berücksichtigen,(können(Sie(den(Stories(einen(geschätzten(Aufwand((z.B.(in(Tagen)(zuordnen.(Sie(können(die(Stories(dann(so(angleichen,(dass(in(jedem(Inkrement(der(gleiche(Aufwand((statt(der(gleichen(Zahl(an(Stories)(eingeplant(wird.(

6. Zu(Beginn(jedes(Inkrementes(beschreiben(Sie(nun(die(dafür(eingeplanten(Story(Cards(detaillierter.(Schreiben(Sie(2H3(Sätze(mit(Detailinfos(auf(die(Rückseite.(Sie(können(dabei(auf(die(Spezifikation(verweisen.(Klären(Sie(ggf.(Details(mit(dem(Kunden.(

7. Präsentieren(Sie(die(Planung(dem(Kunden(und(prüfen(Sie(gemeinsam,(ob(das(Produkt(aus(Inkrement(1(sinnvoll(ist.(

(

Beispiel$für$eine$Story$Card$(A)'Zu'einer'Prüfung'anmelden'

Ich(als(Studierende/r(kann(mich(für(eine(Prüfung(anmelden.(Hierzu(zeigt(mir(das(System(eine(Liste(mit(allen(Prüfungen(aus(dem(aktuellen(Semester(an.((Daten,(die(ich(für(die(Prüfung(angebe:((

Modul,(zu(dem(die(Prüfung(angerechnet(werden(soll(Falls(ich(ein(Feld(leer(lasse,(gibt(es(eine(Fehlermeldung.(

Page 4: Planung der Inkremente-v02b - se.uni-hannover.de · Planung'der'Inkremente' Version(02(vom(28.10.2015(Bearbeitet(von(Olga(Boruszewski,(FG(Software(Engineering(' Story'Cards'aus'der'Spezifikation'ableiten.

Planung'der'Inkremente'Version(02(vom(28.10.2015(Bearbeitet(von(Olga(Boruszewski,(FG(Software(Engineering(

(Achten(Sie(darauf,(dass(Story(Cards(stets(nutzerorientiert(sind,(d.h.(sie(beschreiben(etwas,(das(der(Nutzer(feststellen(kann(und(das(ihm(einen(Gewinn(bringt.(Beispielsweise(nützt(„GUI(für(Prüfungsliste“(dem(User(nichts.(Statt(am(Ende(eine(GUI(sehen(zu(können,(hat(er(erst(einen(Gewinn,(wenn(man(sich(auch(wirklich(anmelden(kann.(

Tipps$zum$Aufspalten$von$Story$Cards$Verschiedene'Datenbestandteile'trennen.(Oftmals(wird(ein(Objekt(implementiert,(das(mehrere(Daten(bzw.(Attribute(hat.(Dabei(sind(nicht(immer(alle(Datenbestandteile(gleich(wichtig.(Bspw.(können(für(ein(Buch(mit((Titel,(Preis,(Beschreibung(und(Bewertung(zunächst(Titel(und(Preis(am(wichtigsten(sein.(Die(restlichen(Dinge(kann(man(dann(später(implementieren.(

Verschiedene'CRUD'Operationen'trennen.(Oft(kann(man(Unterstützung(für(das(Auslesen(und(Erstellen(eines(Objektes((wie(Buch)(zuerst(implementieren(und(das(Bearbeiten(und(Löschen(auf(später(schieben.(

Einzelfälle'von'Verallgemeinerungen'trennen.(Bevor(man(alle(Möglichkeiten(für(etwas(realisiert,(kann(man(zunächst(einen(konkreten(Wert(festlegen(und(alles,(was(man(dafür(braucht(implementieren.(Muss(es(beispielsweise(eine(vom(User(einstellbare(Schwierigkeitsstufe&für(ein(Spiel(geben,(so(kann(man(zunächst(alles(für(die(Schwierigkeitsstufe(„Mittel“(implementieren(und(erst(danach(auf(verschiedene(Schwierigkeitsstufen(ausweiten.(