Software Engineering Prof. Adrian A. Müller, PMP Fachbereich Informatik und Mikrosystemtechnik Fachhochschule Kaiserslautern, Standort Zweibrücken Prof. A. Müller, FH KL Software Engineering WS '11/'12 1
Inhalte Agile Modelle Manifesto Übersicht XP Prinzipien und Vorgehensweisen Story Card Planning Game Beispiele echter Projekte, Team Rooms Pair Programming Refactoring Tracking Cont. Integration Additional Slides Scrum Übersicht Rollen: product owner, scrum Master, scrum Team Aufgaben der Rollen Daily scrum, review, retrospective grooming product backlog Sprint sprint planning sprint backlog Release Planning Planning Poker Release Plan Velocity Burndown Chart Release Burndown Bar Prof. A. Müller, FH KL Software Engineering WS '11/'12 2
Scrum - Ursprünge Jeff Sutherland Initiale Scrums bei Easel Corp., 1993 IDX und über 500 Personen arbeiten mit Scrum Ken Schwaber ADM Präsentiert Scrum auf der OOPSLA 96 mit Sutherland Autor von drei Büchern über Scrum Mike Beedle Scrum-Pattern in PLOPD4 Ken Schwaber und Mike Cohn Scrum Alliance in 2002 gegründet; zuerst innerhalb der Agile Alliance Prof. A. Müller, FH KL Software Engineering WS '11/'12 3
Scrum - Überblick Quelle: Mountain Goat Software Prof. A. Müller, FH KL Software Engineering WS '11/'12 4
Scrum (primäre) Rollen Produkt Owner Definiert Produkt-Features Bestimmt Auslieferungsdatum und Inhalt Ist verantwortlich für den Gewinn des Projekts (ROI) Priorisiert Features abhängig vom Marktwert Passt Features und Prioritäten nach Bedarf für jede Iteration an Akzeptiert oder weist Arbeitsergebnisse zurück Scrum Master Team Repräsentiert das Management gegenüber dem Projekt Verantwortlich für die Einhaltung von Scrum-Werten und -Techniken Entfernt Hindernisse Stellt sicher, dass das Team vollständig funktional und produktiv ist (Coach) Unterstützt die enge Zusammenarbeit zwischen allen Rollen und Funktionen Schützt das Team vor äußeren Störungen Typischerweise fünf bis zehn Leute funktionsübergreifend Mitglieder sollten Vollzeitmitglieder sein Vielleicht Ausnahmen (z.b. Systemadministratoren) Teams organisieren sich selbst Mitgliedschaft kann sich nur zwischen Sprints verändern Prof. A. Müller, FH KL Software Engineering WS '11/'12 5
Scrum - Management Sprint-Planung In: Product Backlog, Stand Project, Team Entscheider: Scrum Team Out: Sprint Goal, Sprint Backlog tägliche Scrum-Meetings 15min, stand-up Drei Fragen Sprint-Review Team präsentiert, was es während eines Sprints erreicht hat Typischerweise in Form einer Demo von neuen Features oder der zugrunde liegenden Architektur Sprint-Retrospektive Nur das Team Feedback, Weitermachen? Prof. A. Müller, FH KL Software Engineering WS '11/'12 6
Product Backlog Quelle: Mountain Goat Software Prof. A. Müller, FH KL Software Engineering WS '11/'12 7
Sprint Backlog Quelle: Mountain Goat Software Prof. A. Müller, FH KL Software Engineering WS '11/'12 8
Scrum - Management Sprint-Planung In: Product Backlog, Stand Project, Team Entscheider: Scrum Team Out: Sprint Goal(s), Sprint Backlog tägliche Scrum-Meetings 15min, stand-up Drei Fragen Sprint-Review Team präsentiert, was es während eines Sprints erreicht hat Typischerweise in Form einer Demo von neuen Features oder der zugrunde liegenden Architektur Sprint-Retrospektive Nur das Team Feedback, Weitermachen? Prof. A. Müller, FH KL Software Engineering WS '11/'12 9
Scrum Tracking: Sprint Burndown Chart Tasks Code the user interface Code the middle tier Test the middle tier Write online help Mo 8 16 8 12 Di Mi Do Fr 4 12 16 8 10 16 7 11 8 50 40 Stunden 30 20 10 0 Mo Di Mi Do Fr Prof. A. Müller, FH KL Software Engineering WS '11/'12 10
Scrum Release Planning Quelle: Pichler, 2010 Magisches Dreieck Projekt beachten Frühe, häufige Releases Quartalszyklen, statt Jahreszyklen Planning Poker Story points Non-Function Requirements Velocity forecast Release Plan erstellen Prof. A. Müller, FH KL Software Engineering WS '11/'12 11
Scrum: Eigenschaften Größe, Skalierbarkeit: typisch: 5-10 Personen im Team Größe Projekte (100 500 Personen möglich) Teams von Teams ermöglichen Skalierbarkeit Faktoren des Skalierens Typ der Anwendung Teamgröße Teamverteilung (örtlich) Projektdauer Scrum ist mehrmals für 500-Personenprojekte verwendet worden Prof. A. Müller, FH KL Software Engineering WS '11/'12 12
Wichtige Aussagen Scrum ist ein agiler Prozess, der es erlaubt auf die Auslieferung der wichtigsten Geschäfts-Anforderungen innerhalb kürzester Zeit zu fokussieren. Scrum gestattet es schnell und in regelmäßigen Abschnitten (von zwei Wochen bis zu einem Monat) tatsächlich lauffähige Software zu inspizieren. Das Business setzt die Prioritäten. Selbst-organisierende Entwicklungsteams legen das beste Vorgehen zur Auslieferung der höchst priorisierten Features fest. Alle zwei Wochen bis zu einem Monat kann jeder lauffähige Software sehen und entscheiden, diese so auszuliefern oder in einem weiteren Abschnitt zu ergänzen. Prof. A. Müller, FH KL Software Engineering WS '11/'12 13
Quellennachweis Diverse Folien stammen von Mike Cohn mike@mountaingoatsoftware.com, www.mountaingoatsoftware.com Prof. A. Müller, FH KL Software Engineering WS '11/'12 14
Wichtige Aussagen: Die Prinzipien der agilen Methoden Quelle: Sommerville, Abbildung 17.3 Prof. A. Müller, FH KL Software Engineering WS '11/'12 15
FAQ: www.agilemodeling.com/principles Core Principles Assume Simplicity Embrace Change Enabling the Next Effort is Your Secondary Goal Incremental Change Maximize Stakeholder ROI Model With a Purpose Multiple Models Quality Work Rapid Feedback Working Software Is Your Primary Goal Travel Light Prof. A. Müller, FH KL Software Engineering WS '11/'12 16