Agile Vorgehensmodelle Flashcards
K6 LE 4
Vier Grundsätze der Agile Aliance?
Indivduals and Interaction over process and tools
Working software over comprehensive documentation
Customer collaboration over Customer negotiation
Responding to change over following a plan
Prinzipien Agiler Software-Entwicklung?
Kundenzufriedenheit Anforderungsänderungen auch in späten Phasen möglich Funktionsfähige Software ständige Zusammenarbeit persönliche Gespräche konstanter und nachhaltiger Entwicklungsprozess Einfachheit der Lösung Regelmäßige Reflexion des Teams
Was bedeutet Scrum?
Vorgehensrahmen nach dem Projekte agil abgewickelt werden
Hauptaufgaben von Scrum?
lediglisch 3 Rollen
Aufgaben im Backlog
iteratische zeitlich klar definierte Zyklen
autonom arbeitendes Team gleichberechtiger Teammitglieder
Zentrale Rollen im Scrum incl. Beschreibung?
Product Owner:
Vertritt Kunden/Autraggeber, Teil des Teams, Erhebung Beschreibung und Priorisierung von Aufgaben
Scrum Master
Dient als Art unterstützender Moderator der Entwicklungsprozess nach jeweiligen Scrum-Methode unterstützt, kein Teammitglied
Team
Gruppe von Entwicklern, Umsetzung
Wer übernimmt die Rolle und Aufgaben des Projectmanagers im Scrum?
Niemand.
Prodcut Owner und Team teilen sich die Aufgaben
Was ist der Product Backlog?
Sammlung aller Anforderungen
Wie entsteht der Product Backlog?
Prodcut Owner und Kunden erarbeiten “Vision” (Zielbestimmung), worin der Nutzen des Programms liegt. Darauf aufbauend beschreibt der Product Owner, mit Hilfe von User-Stories, Funktionen, die das System erfüllen soll. Auch Teammitglieder können Spezifikationen beschreiben
Was sind die Hauptelemente bei der Projektabwicklung nach Scrum?
Sprint Planing Meeting Springt Daily Scrum Sprint Review Sprint Retrospektive
Beschreiben Sie Sprint Planing Meeting?
Product Owner wählt Priorisiert Aufgaben auf und stellt sie dem Team vor. Diese wählt Umfang von Anforderungen aus, der realistisch innerhalb des nächsten Sprints zu realisieren ist. Die Aufgaben werden in einzelne Tasks runtergebrochen die den Sprint-Log bilden
Beschreiben Sie Sprint?
Entwicklungsphase, dauer meist 1-4 Wochen
Release-Sprint ist letzter vor Übergebung eines fertige Software-Produkts an den Kunden
Beschreiben Sie Daily Scrum?
Standup Meeting max. 15 Minuten in denen jeder folgende Fragen für das Team beantwortet
- Was habe ich im letzten Daily Scurm abgeschlossen?
- An was arbeitet ich im heutigen Daily Scrum?
- Gibt es Problem? Kann mir jemand dabei helfen?
Der aktuelle Projektfortschritt wird am Burndown-Chart beurteilt
Beschreiben Sie Sprint-Review?
Abschluss eines Sprint, es nehmen Product Owner, Team, Scrum Master, Vertreter von Kunden, Manager teil
Fortschritt wird live presentiert und kontrolliert ob Erwartungen des Kunden erfüllt wurden oder ob Anpassungen im nächsten Sprint folgen sollen
Beschreiben Sie Sprint Retrospektive?
Betrachtung positiver und negativer Aspekte der Arbeit
Zur Verbesserung von Scrum-Prozess und Zusammenarbeit im Team
konkret umsetzbare Maßnahmen für nächsten Sprint
Durch welche Methoden werden Planung, Durchführung und Kontrolle im Scrum unterstützt?
User Stories Sprint Backlog Burndown-Chart Timeboxing Definition of Done
User Stories?
kunden- und anwenderorientierte Anforderungen
hilft der Kommunikation mit dem Kunden
Projektfortschritt ist für Kunden klar ersichtlich
von Product Owner formuliert
Sprint Backlog?
User Stories in einzelne Tasks zerlegt
Übersicht in “offen” “in Arbeit” und “fertig”
BurnDown-Chart?
Menge der noch im Sprint vorgesehenen abzuarbeitenden Arbeiten
Entwicklungsgeschwindigkeit wird aus Velocity bezeichnet
Timeboxing?
Strikte Zeit vorgabe
z.b. 15 Minutex max. Daily Scrum danach wird abgebrochen
Wichtiger Effekt ist das Termine ernst genommen werden
Konsequenzen sind z.B. bei einem Sprint nicht die gewünschte Funktionalität ausgeliefert wird oder das eine fast fertige User Storie wieder zurück gelegt wird
Definition of Done?
Jedes Scrum-Team hat seine eigene Definition
klar formulierte Kriterien
z.B. Tests, Code-Review, Abnahme durch Product Owner
Definieren Sie Feature und desen übliche Form?
Merkmal einer Software, das den Nutzer ermöglicht eine fachliche Aufgabe zu erfüllen
Aktion - Ergebnis - Objekt
zB “Erstellen einer Rechnung für einen Antrag”
Basis des FDD?
Gemeinsam mit dem Kunden erstellte Feature-Liste
Für welche Art von Projekten ist FDD geeigned?
Große umfangreiche Projekte die maximal 6 Monate Dauern, dauert das Projekt länger als 6 M so wird es auf Teilprojekte dieser Größe herabgebrochen
Hauptmerkmale des FDD?
klare Rollenkonzepte
klar hierachische Sturkturierung umzusetzender Aufgaben
Phasenkonzept (5 klar definiert)
Prozessfortschritt wird anhand der erledigten Features gemessen
Rollen des FDD und deren Verantwortung?
Projektmanager
administrative Projektabwicklung
Development Manager
Gestaltung und Durchführung gesamter Entwicklungsaktivitäten
Chief Architekt
erfahrener Analytiker und Modellierer, für Gesamtmodell und desen Entwicklung verantwortlich
Chief Programmer
erfahren, Mitwirkung Anforderungsanalyse und Modellentwicklung, leitet bei Umsetzung ein Team von 3-6 Personen
Domain Experts
Fachexpterten
Class Owner
für bestimmte Klasse und deren Implementierung verantwortlich
Weitere Rollen:
Tester, Release Manager, Mitarbeiter für Dokumentation
Strukturierung der Aufgaben im TDD?
Gesamtmodel durch Chief Architext, Domain Experts und Chief Programmern erstellt (Modellierungsworkshop)
Von Chief Programmern in Fachgebiete, Geschäftsaktivitäten und Schritte (Steps) gegliedert
Steps entsprechen den zu realisierenden Features
Modeling in Color?
Strukturierung umfangreicher Klassenmodelle mit Farbcode
In welche Hauptabschnitte wird das FDD-Prozessmodell unterteilt und wie werden die Kosten berechnet?
Start-Up Phase
Construction-Phase
Start-Up Phase wird im vorhinein grob eingeschätzt, Abschätzung der Construction-Phase an Hand eines Vergleich der tatsächlichen Dauer der Start-Up Phase mit der geschätzten
Zählen Sie die Schritte des FDD-Prozessmodell auf?
Allgemeines Modell erstellen Feature-Liste erstellen Nach Features planen Nach Features designen Nach Features bauen
Beschreiben Sie bei FDD “Design an overall Model”?
Chief Architect, Chief Programmer und Domain Experts erstellen Gesamtmodell der zu erstellenden Applikation mit Klassen und deren Beziehungen incl. Beschreibung und Begründungen
Beschreiben Sie bei FDD “Build a Feature-List”?
Chief Programmer erstellen durch Zerlegung in Fachbereiche, Geschäftsbereiche und Schritte eine Liste von zu erstellenden Features
Beschreiben Sie bei FDD “Plan by Feature”?
Projekt Manager, Entwicklungs Managerund Chief Programmer legen Reihenfolge der Features fest.
Jede Geschäftstätigkeit wird einem verantwortliche Chief Programmer und jede Klasse einem Owner zugeordnet
Am Ende liegt eine Termin Planung vor
“Design by Feature”?
Chief Programmer stellt aus Geschäftstätigkeit ein “Chefprogrammer Arbeitspacke” zusammen sowie
Owner der für Feature notwendige Klasse stellt FeatureTeam zusammen (ein Entwickler kann in mehrern Teams gleichzeitig sein)
Jedes Team verfeinert anschließend Klassenspezifikation
“Build by Feature”?
Class Owner implenetieren zur Realisierung erforderliche Features
Durch Code Inspection und Einzelttests wird Qualität des Programms gesichert
Überprüfte Klassen werden vom Chef Programmer freigegeben
Extreme Programming (XP) ?
Ziel ist rasche Fertigstellung und höhere Kundenzufriedenheit
Ständige Einbindung des Kunden im Entwicklungsprozess
Es wird angestrebt annähern gleiche Änderungskosten über die Projektentwicklung bezubehalten, dies wird durch kurze iterative Zyklen erreicht
Was wird im XP als Kunde bezeichnet?
Jene vom Auftraggeber entstandene Person, die Aufgaben formuliert und priorisiert
Rollen im XP?
XP kein Unterschied zwischen Aufgabenbereichen, jeder soll die Möglichkeit haben in jedem Bereich mitzuarbeiten
“gemeinsamer Code”
Kunde
Weitere Rollen
Coach für unerfahren Teams
Projektmanager für administrative-organisatorische Aufgaben
Terminmanager (Trackers)
Projektablauf im XP?
Release Zyklen typischerweise 3 Monate
- Kunde erstellt user stories
- Team schätzt Aufwand und priorisiert
- Testfälle zur Akzeptanz entwicklelt
- prototypisches Architekturmodel (mit z.B. CRC-Karten)
- Iteration geplant und festgelegt
- Ende des RZ Kunden funktionierende Software
Wie ist der Verlauf innerhalb einer Iteration im XP?
- Erstellung von Testfällen
- Codierung
- Bei Bedarf Änderung des Architekturmodels
- testen
- Fortschritt, tatsächlicher Aufwand und Tests aufgezeichnet
- Akzeptanztest am Ende
- Planung der nächsten Iteration
Werte des XP?
Kommunikation Einfachheit Feeedback Mut Respekt
Prinzipien des XP?
Mensch im Mittelpunkt mit Wahrung der Wirtschaftlichkeit. Suche nach Lösung die allen Vorteile bringt. Von Bereits bekannten Problemlösungen ausgehen und alle Kompetenzen und Fähigkeiten im Team zuzulassen und durch Reflexion eine laufende Verbesserung erzielen
Erreichung eines kontinuirlichen Arbeitsflusses. Probleme und Fehlschläge als Chancen sehen. Entscheidung immer richtung Qualität. Risikovermeidung durch kleine Schritte (kurze iteratische Zyklen)
Praktiken des XP?
Pair Programming
Testgetriebene Entwicklung
Wochnzyklus (Wochnend entlasten)
Stories (Anforderungen in Stories)
Rolle des Refactoring im XP?
Wichtige Rolle auf Grund im XP
Refactoring von Softwareteile, die durch den iterativen Entwicklungsprozess unübersichtlich und instabil geworden sind
Kanban?
“lean production”
unnötigen Ballast im Herstellungsprozess entfernen
z.B. Material in der Produktion auf Bedarf und nicht auf Vorrat bereitgestellt -> Bedarf durch Signalkarte (Kanban) sichtbar gemacht. Just-In-Time Production wird somit möglich
Regeln des Kanban?
Pull-Prinzip (Arbeiten genommen nicht gegeben)
gleichzeitig offene Aufgaben begrenzt
Arbeitsabläufe visualisiert
Prozessdaten erhoben (z.B. Durchlaufzeit)
Entwicklungsprozess laufend verbessert
möglichst gerine Zeitdauer zwischen Beginn und Ender der Arbeit (Cycle Time)
Welche Vorteile hat die Begrenzung gleichzeitig durchführbarer Aufgaben?
Frühzeitiges erkennen von Problemen auf Grund von
- nicht fertigen Arbeitspacketen
- im Arbeitschritt wo Problem ist wird max. Anzahl offener Aufgaben erreicht
- Stau
- Frei werdende Kapazitäten werden zur Problemlösung eingesetzt