Wahlpflichtmodul Projekt I Softwareprojekt I Dipl. Inf. Andrea Meyer
Agiles Projektmanagement SCRUM
BEDEUTUNG SCRUM - (rummage) -> Rugby
ZIELE Fakten über SCRUM (Überblick und einige Techniken im Detail) Aufgabenbereiche von SCRUM (Was ist möglich und wo sind Grenzen?) Hinweise für den Praxiseinsatz
AGENDA Grundlagen Einführung in agiles Projektmanagement mit Scrum Rollen, Artefakte und Vorgehen Weitere Aspekte, z.b. Tools
AGENDA SCRUM-Projekt Projektplanung Sprintausführung mit App-Entwicklung Dokumentation des Projektes und Ergebnisse
HUMANFAKTOREN Wir brauchen möglichst schnell diese neue Funktion! Der Kunde ist König! Ich entwickle so schnell ich kann.
HUMANFAKTOREN Macht Fehler aus Zeitdruck
HUMANFAKTOREN Findet den Fehler
HUMANFAKTOREN Beschwert sich über die schlechte Umsetzung.
HUMANFAKTOREN Gibt die Beschwerde weiter.
HUMANFAKTOREN Wieder unter Druck, wird der Fehler behoben -> Frustration
HUMANFAKTOREN Wir brauchen noch...
HUMANFAKTOREN Wir brauchen noch... DEADLOCK! Motivation sinkt und neue Ideen werden abgelehnt
MOTIVATION Unsere Projekte scheitern, trotz ausgereiftem Software Process Model! Wir müssen etwas ändern... SCRUM macht jetzt jeder, deswegen machen wir das auch! Wir sind frustriert und enttäuscht, wir brauchen etwas neues! Wir testen neue Ansätze, keine Ahnung was wir tun sollen
MOTIVATION Die Erhebung und Auswertung von Prozessmetriken und kausalen Analysen ergeben, dass Prozessoptimierung notwendig ist. (Dumke, 2006)
EINFÜHRUNG SCRUM ist kein Allheilmittel! Konstruktive und offene Athmosphäre Alle Mitglieder sind eingebunden Änderungen sind erlaubt und willkommen Neue Art, Dinge anzupacken Management ist Mediator Entwickler haben mehr Verantwortung Absprachen sind notwendig
EINFÜHRUNG Was ist ein Projekt? Wozu braucht man ein Gant-Diagramm? Was ist ein Time Frame und was ist Duration? Was ist ein Prozess?
EINFÜHRUNG Prozess = latein. processus <- procedere vorwärts gehen, voranschreiten, vortreten Eine zeitlich begrenzte Bemühung ein einzelnes Produkt, eine Dienstleistung oder ein Ergebnis zu erschaffen.
KLASSISCHE ORGANISATIONSSTRUKTUREN Pyramiden oder Hierarchien mit einem Leiter/Manager und Teammitgliedern Teamleiter hat Verantwortung für das Team und setzt Anweisungen, Verantwortlichkeiten und Haftung im Team durch Teammitglieder sind verantwortlich für ihre eigene Arbeit, den Arbeitsaufwand und einzelne Aufgaben
AGILE ORGANISATIONSSTRUKTUREN Andere Machtverhältnisse Das Team ist atonomer Das Team verwaltet und organisiert sich selbst (SCRUM-Master ist dafür verantwortlich ->Lean Management) Teammitglieder sind verantwortlich für alle anderen
AGILE ORGANISATIONSSTRUKTUREN SCRUM is for projects!
AGILE ORGANISATIONSSTRUKTUREN Nicht nur für Softwareprojekte, auch für das Produktmanagement Ein Projekt ist immer einzigartig: Ziele, Bedingungen, Dauer, Verantwortungen, Bereich, Organisation, u.a. Ein Projekt braucht individuelle Anpassungen / Erweiterungen / Veränderungen für das Produktmanagement, Support und Erfahrungen SCRUM recycled klassische PM Techniken und Prinzipien Produkt on time und on budget Erfolg und Misserfolg können gemessen werden Time-Boxing, Milestones, Effort estimation, Risikoanalyse, Brooks Law
Projektmanagement (mit SCRUM)... ist eine Aufgabe vom Aufbau bis zum Abschluss und enthält: Planung: geplante Aufgaben, Ressourcen und Kosten Monitoring: Vergleich IST/SOLL Controlling: Stay On Track aber auch: Buchhaltung, Führung, Zusammenarbeit, Wissen, Struktur und Kundenpflege
UNTERSCHIED ZU SCRUM? Anderes Machtgefüge! Das Team ist autonom. Verantwortung wird geteilt
DISKUSSION 42 Welchen Ruf hat SCRUM in eurer Firma? Wie waren bisher die Anforderungen mit dem Projektmanagement verknüpft? Ist die Engineeringmethode wichtig für das Projektmanagement? Wie weisst du, dass eine Aufgabe abgeschlossen ist? Wie wurde bisher der Projektstatus gemessen?
DISKUSSION 42 Agile Ansätze, wie SCRUM beschäftigen sich mit diesen Problemen, aber Projektmanagement ist trotzdem noch eine Herausforderung.
DISKUSSION Viele Sachen werden sich niemals ändern: Schätzwerte sind essentiell - ohne detaillierte Anforderungen gehts nicht! Entwicklungsmethoden sind wichtig - sonst weisst man nicht, was man tun soll! Einfache Iterationen funktionieren nicht - ein schrittweiser Ansatz ist empfehlenswert Aufgaben mit mehr als 1/2 oder 1em Tag Dauer planen - besser noch Story Points Maßeinheit zur Messung des Arbeitsaufwands für die Umsetzung einer User Story
DISKUSSION Viele Sachen werden sich niemals ändern: Tools sind nur Werkzeuge - Menschen übernehmen die Verantwortung Reale Projekte kommen nicht aus dem Lehrbuch Jedes Projekt ist anders - kein copy&paste Einige Projekte sind gut (und du hast ein schlechtes) Zeit für die Einrichtung planen - Teambildung ist sehr wichtig!
DISKUSSION
SCRUM ÜBERBLICK SCRUM = Framework für agiles Projektmanagement strickter inkrementeller Ansatz Liefer jeden Monat!
SCRUM ÜBERBLICK Methode, um komplexe Aufgaben zu managen! Prüfen und Adaptieren - Ständige Verbesserung
SCRUM ÜBERBLICK Selbst organisierende Teams mit Verantwortung für die anderen. Frag die Anderen - Expertenwissen wird genutzt.
SCRUM ÜBERBLICK Projektmanagement ist nicht mehr nur eine Managementaufgabe! Das Team ist involviert!
SCRUM ÜBERBLICK Offenheit, Anpassbarkeit und Erweiterbarkeit Kombination mit anderen Ansätzen und Methoden Enterprise SCRUM für große Projekte Produktmanagement und Projektmanagement
SCRUM ÜBERBLICK Grundlegende Idee: Agiles Manifest latein. agiles = schnell bewegen agile Werte und Prinzipien, wie Kundeneinbindung Methoden (keine Prinzipien) Nur wenige Prozesse für Projektmanagement Wenige Rollen, Prinzip des gesamten Teams Wenig Dokumente um Bürokratie zu vermeiden
SCRUM ÜBERBLICK ZIEL: Effektivität durch Fokus auf Hauptaspekte mit Einbindung menschlicher Faktoren ANSATZ: Minimalistische Analyse und Design - früher Auslieferung des Softwareprodukts www.agilemanifesto.org(iso/de)
SCRUM ÜBERBLICK 1948 Toyota Produktionssystem LEAN - Manufacturing - Schlanke Produktion
SCRUM ÜBERBLICK 1975 Konzept: Veränderung zum Besseren Kaizen - Eternal Change Veränderung im Selbstverständnis von Mitarbeitern und dem Handeln von Führungskräften
SCRUM ÜBERBLICK 1986 Takeuchi und Nonaka veröffentlichen The new new Product Develoment Game viele Anlehnungen in der Praxis
SCRUM ÜBERBLICK 1993 Jeff Sutherland und sein Team (Easel Corp.) dokumentieren SCRUM
SCRUM ÜBERBLICK 1995 Ken Schwaber formuliert die Regeln für SCRUM
SCRUM ÜBERBLICK 1999 Kent Beck veröffentlicht XP (1ste Edition)
SCRUM ÜBERBLICK 2001 Light Weight wird zu Agile Das Agile Manifesto erscheint.
AGILE MANIFESTO Agile Manifesto und seine Unterzeichner 12 Prinzipien agiler Softwareentwicklung
SCRUM ÜBERBLICK 2005 Eine Forrester Untersuchung zeigt, dass 14% der Unternehmen agil entwicklen und 19% darüber nachdenken 84% der Unternehmen setzen agile Prozesse ein
SCRUM WERTE Individuen und Interaktion ist wichtiger als Prozesse und Werkzeuge! Qualifikation und effiziente Kommunikation sind ein gut definierter Prozess und Werkzeug
SCRUM WERTE Funktionierende Software ist wichtiger als eine umfangreiche Dokumentation Hauptziel: funktionierende Software
SCRUM WERTE Kundenzusammenarbeit ist wichtiger als Kundenverhandlung Verträge sind zwar wichtig für die Zusammenarbeit, aber ein erfolgreiches Projekt erfordert Zusammenabreit und ein gemeinsames Verständnis von dem Produkt.
SCRUM WERTE Kurzfristige Änderungen sind wichtiger als einen Plan zu verfolgen Der Aufgabenbereich kann sich während des Projekts ändern - das Team muss schnell darauf reagieren können
SCRUM WERTE Andere Werte sind wichtiger: Humanfaktoren, Kommunikation, Teamwork, Flexibilität, am allermeisten aber das Softwareprodukt! Auch wichtig: Prozesse, Werkzeuge, Verträge, Dokumente, Planung, Regeln
SCRUM WERTE Es geht um die Personen, die Teil des Projekts sind. Im Fokus stehen personenorientierte Themen
SCRUM WERTE Agile Ansätze bedeuten Verantwortung, Respekt, Regelbefolgung und den Willen Veränderungen (Verbesserungen) anzunehmen
SCRUM WERTE Agilität ist nicht Anarchie, Cowboy Coding, Abwarten und Tee trinken und kein Allheilmittel für alles in der Softwareentwicklung!
SCRUM WERTE
SCRUM WERTE Agile Prinzipien Fundamentale Regeln für Verhalten und Aktivitäten
SCRUM WERTE Beispiele: Starte nur mit motivierten Leuten! Recycle Ressourcen (wie Code, Tools, Methoden) Vermeide NIH! Not invented here! KISS (Keep It Simple Stupid) Implementiere nur, was gebraucht wird - YAGNI Collective Code Ownership You ain t gonna need it!
SCRUM METHODEN Agile Methoden (Techniken) = Aktivität um ein bestimmtes Ziel zu erreichen z.b. wiederbenutzbares Modul für Prozesse und Methoden Beispiel: Pair-Programming, Test Driven Development, Refactoring, Story Cards
SCRUM PROJEKTMANAGEMENT Prozessstandards, wie SCRUM decken Aspekte der Softwareentwicklung ab: Rollen, Qualifikation. Profile, Kompetenzen, Dokumente, Produkte, Artefakte Aktivitäten, Prozesse, Aufgaben Milestones, Entscheidungspunkte Projektspezifische Anpassungen, Tailoring Methoden und Techniken für SE, QA, PM, CM... Werkzeuge Layouts für Reporting & Sprachen Kein Standard deckt diese Aspekte perfekt ab!
SCRUM PROZESSE Scrum enthält ein Definitonsset für: Rollen und Prozesse, z.b. Sprint Dokumente, z.b. Produkt- und Sprint backlog Projektspezifische Adaptionen, z.b. mit Scrum of Scrums Methoden, z.b. für Releaseplanung, MuSCoW prioritization Reporting, z.b. Sprint burndown chart PM Must Should Could Wont Tools sind auf dem Markt verfügbar, z.b. Projektron BCS Agile Ansätze: Viele Regeln, die unterschiedlich sind in der Praxis (keine Erfolgsgarantie) bei Überschreitung von Teamgröße
SCRUM Rollen Product Owner Product backlog: Dokumentation und Priorisierung von Anforderungen Verantwortlich für Ergebnisse & ROI (Produktqualität) Team 7+/-2 Teilnehmer Selbstorganisation Interdisziplinäre Vollzeitangestellte Scrum Master Moderator und Teamcoach Verantwortlich für die Prozessqualität
SCRUM ROLLEN Committed people are pigs, people with some involvement are chickens 2 Stichworte: to commit and to involve to be committed to sth. sie sind verantwortlich to be involved in/with sth. (to be part of sth.) sie zeigen Interesse
SCRUM ROLES Pigs: Scrum Master, Product Owner, Team, Product und Sprint Back log etc. Chickens: sind interessiert, erlaubt zuzuhören, sind aber nicht Teil des Prozesses vermeide management-by-helicopter vermeide externe Kontrolle über das Projekt vermeide Overhead Terminologie ist ein bisschen verrückt, aber die Mission ist klar: Externe Personen haben keine Verantwortung oder Kontrolle in dem Projekt, aber die Commited People (PO, SM, Team)
SCRUM PRODUCT BACKLOG Product Backlog ist ein Living Document Anforderungen und Eigenschaften (Hierarchie: Epic und User Story; Themes für Gruppierung), ähnliche wie Use Cases (UML) Arbeitsergebnis, wie Test und Entwicklungsumgebung, Schwerpunkte (Relevanz, Risiko und Kosten) und erwartete Elemente (unit: story points) Keine Aktivitäten
SCRUM PRODUCT BACKLOG Funktionale und nicht funktionale Anforderungen sind nicht homogen spezifiziert (einige wenig, andere umso mehr) Keine Change Requests (Änderungen sind normal), aber: Versionen von Zeit zu Zeit abzuspeichern, macht Sinn
SCRUM SPRINT BACKLOG Sprint (Iteration) liefert Inkrement (release, version) Sprint planning (mit Produkt Back-log) Activities und daily Scrum Sprint review und Sprint retrospective Erfolgsmessung (für den nächsten Sprint) Sprint ist eine Methapher: keine Pause, keine Veränderungen, ein kompltter Stop (cancellation) Sprint back-log Anforderungen von Produkt back-log: detaillierte Beschreibung Auswahl durch Proiritäten und Release Plan Erwartung: Team (Aktivitäten, die einen Tag dauern)
SCRUM PROZESS
SCRUM RELEASE PLANNING Release Planning ist oft erforderlich in größeren Projekten Ziel: Transparenz durch Ermittlung von Zeit und Kostengrößen für die Implementierung von Anforderungen Erwartung: Anzahl der Sprints Release Planning kann vertagt werden (Planung von Sprint zu Sprint) Control over functionality, time, cost Methode: Estimation of features in story points or ideal days, determination of velocity and Sprints duration, priorities for features, planning of Sprints with features and milestones for releases
SCRUM ZUSAMMENFASSUNG Agile Ansätze: Scrum für PM, XP für Entwicklung Anforderungen: Priorisieren, ändern, Detail (für jede Iteration) Q: Was ist mit den typischen Phasen? Requirements Analysis, Architektur und Design, Programmierung, Test? Qualitätsgarantie nach Iteration: Review der implementierten Anforderungen Prozessverbesserungen mit Retrospectives, z.b. Team diskutiert den Prozess und die Ergebnisse Dokumente, Prozesse, Werkzeuge und Verträge bleiben
SCRUM ZUSAMMENFASSUNG Zusammenarbeit: Kunden und Teams, z.b. Implementierung vor Ort Team: multifunktional, interdisziplinär und selbstorganisierend Inkrement: Entwicklung kleinerer Releases Ergebnisse und ROI ist früh sichtbar Iterationen (Sprints): Divide and conquer der Entwicklungsaktivitäten, Dauer 2-4 Wochen
SCRUM ZUSAMMENFASSUNG Zwei Seiten der Medaille --- nichts neues, Agile ist ein bisschen chaotischer und gefährlicher +++ neue Terminologie, Fokus auf Humanfaktoren und Hauptfaktoren im Projekt
SCRUM ZUSAMMENFASSUNG Bei SCRUM geht es um Teamarbeit und Kommunikation, nicht passend für Lonesome Coders Daily Scrum, Reviews und Retrospectives erfordern Kompetenzen auf sozialem Level Pflicht: kontinierliche Verbesserung, Learning-by-Doing Verpflichtung und Verantwortung: Ergebnisse während eines Sprints erzielen, z.b: Implementierung von Anforderungen Zusammenarbeit mit dem Kunden ist nicht immer so intensiv, wie verlangt (beim Kunden vor Ort möglich?) Collective code ownership könnte ein Problem sein (niemand fühlt sich verantwortlich) Einige Aspekte sind noch nicht klar definiert: Was macht man mit SCRUM- Gegener oder Guerillos?
Vielen Dank und bis nächste Woche!