Agile Softwareentwicklung

2,648 views

Published on

Published in: Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,648
On SlideShare
0
From Embeds
0
Number of Embeds
115
Actions
Shares
0
Downloads
31
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Agile Softwareentwicklung

  1. 1. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Seminarpräsentation Projektgruppe knowAAN Agile Softwareentwicklung Tobias Varlemann, tobiashv@upb.de Fakultät für Elektrotechnik, Informatik und Mathematik Institut für Informatik Fachgruppe Didaktik der Informatik 26. November 2010
  2. 2. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Was ist agile Softwateentwicklung Agile Softwareentwicklung bezeichnet eine Gegenbewegung zur klassischen Softwareentwicklung Entwicklungsprozesse flexibler und schlanker Fokusierung auf technische und soziale Probleme Agile Werte als Grundlage Agile Prinzipieren als Handlungsgrundlage Agile Methoden als Verfahren der Softwareentwicklung Agile Prozesse Vorgehensweise
  3. 3. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Agile Werte, das agile Manifest Individuen und Interaktion sind wichtiger als Prozesse und Werkzeuge Qualifikation und Kommunikation des Team hoch bewertet. Kein Versteifung auf Werkzeuge oder Techniken Funktionierende Programme sind wichtiger als ausführliche Dokumentation Ziel ist es funktionierende Software zu entwickeln nicht ausführliche Dokumentationen Das stetige Abstimmen mit dem Kunden ist wichtiger als die Ursprüngliche Leistungsbeschreibung in Verträgen Flexibilität ist gefordert. Reagieren auf wechselnde Anforderungen, statt umsetzen veralteter aus Verträgen Der Mut und die Offenheit für Änderungen steht über den Befolgen eines festgelegten Plans Es erfordert Mut mit dem Team offen umzugehen, Probleme anzusprechen und Änderungen anzunehmen
  4. 4. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Agile Prinzipien Leitsätze für agiles Arbeiten Beispiele: Zweckmäßigkeit KISS-Prinzip YAGNI (You ain’t gonna need it) Kundennähe Gemeinsamer Code-Besitz Ressourcen mehrfach benutzen
  5. 5. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Agile Methoden Best Practices aus der Softwareentwicklung Methoden aus verschiedene Bereichen Thinking Collaborating Releasing Planning Development
  6. 6. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Agile Prozesse Erstellung eines Prozesses aus Werten Prinzipien und Methoden Ziel Abbau der Bürokratie und Integration menschlicher Aspekte Beispiele: Extrem Programming Scrum Cristal Feature Driven Development
  7. 7. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Agile Methoden: Thinking Pair Programming Programmieren im Paar. Einer programmiert, einer kontrolliert Energized Work Angagiertes Mitarbeiten. 40h Woche Informative Workspace Team informationen öffentlich und einfach zugänglich Retrospective Abschließende Kritische Begutachtung der Prozesse
  8. 8. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
  9. 9. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
  10. 10. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
  11. 11. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
  12. 12. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Agile Methoden Collaborating Trust Sit Together Kurze Wege, enge Kommunikation Real Costumer Involvement Kunde vor Ort, kurze Antwortzeiten auf Fragen Stand-Up Meetings Täglich, nach Mittag, 3 Fragen Was habe ich seid letzten Meeting gemacht Was werde ich bis zum nächsten Meeting machen Was behindert mich Coding Standards Code Formatierung, Code Dokumentation
  13. 13. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
  14. 14. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Agile Methoden Releasing Done Done Fertig ist eine Anforderung wenn sie geschrieben, getestet, integriert und deployed wurde No Bugs Im Repository befindet sich immer funktionierender Code Version Control Ten-Minute Build Ein build mit Tests sollen nnicht länger als zehn Minuten dauern, ansonsten aufspalten Continuous Integration Documentation Tests dokumentieren den Code. In Ausnahmen externe Dokumentation
  15. 15. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
  16. 16. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
  17. 17. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Agile Methoden Planning Vision Release Planning Planning Game Kunden erstellen Anforderungen, Entwickler schätzen, Kunden ordnen Iterationen zu Iteration Planning Slack Einplanen von Zusatzzeit für Problemebehandlung Stories Anforderungen werden in Stories aufgeschrieben. Als Einkäufer erstelle ich Auftrage mit Lieferzeiten Schätzung Relative Aufwandsabschätzungen mit 5 Punkten mit Sching-Schang-Schong-Schätzen.
  18. 18. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Agile Methoden Development Test Driven Development Graybox Testing, erst Tests für Anforderung Schreiben, dann Anforderung umsetzten. Refactoring Ständiges Anpassen und vereinfachen der Architektur und des Codes Simple Design Deduplication des Codes, möglichst wenig Klassen und Methoden Incremental Design Löse nur das aktuelle Problem, erst wenn für ein Anderes Problem der Code angefasst wird generalisieren. Customer Tests Tests die mit dem Kunden entwickelt werden um funktionales Wissen abzubilden
  19. 19. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
  20. 20. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Gemeinsamkeiten Frühe und häufige Auslieferung Abstimmung des richtigen Wegs Entdeckung von Fehlentwicklungen Kontrolle des Fortschritts Rückkopplung und Kommunikation Häufig, mit möglichst geringen Aufwand Intern Kommunikation statt Dokumentation Reaktion auf Veränderung Veränderungen begrüßen und akzeptieren Nicht über Veränderungen ärgern Lernen Lernen durch Mitarbeit Lernen über Fachlichkeiten, technischen Details und Techniken und Werkzeuge
  21. 21. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Gemeinsamkeiten Entwurf der gesamten Software reduzieren Früh ausführbare Software erstellen Häufige Abstimmung mit Kunden Flexible auf Kundenwünsche eingehen Aufwand gering halten, mehr Zeit für die Umsetzung
  22. 22. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Einführung Sammlung von Agilen Methoden und Regelungen für das Zusammenspiel Zwei Sätze an Methoden Primäre Methoden die verwendet werden müssen Sekundäre Methoden können nach belieben angewendet werden Zusammenhang der Methoden ergeben sich aus Werten und Prinzipien
  23. 23. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Werte Kommunikation Rückkopplung Einfachheit Mut Respekt
  24. 24. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Prinzipien Menschlichkeit Wirtschaftlichkeit Gegenseitiger Vorteil Selbstähnlichkeit Verbesserung Mannigfaltigkeit Reflexion Fluss Gelegenheit Redundanz Fehlschlag Qualität Babyschritte Akzeptierte Verantwortlichkeit
  25. 25. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit 13 Primär Methoden Räumlich zusammen sitzen Komplettes Team Informative Arbeitsumgebung Energized Work Pair Programming Stories Wochenzyklus Quatalszyklus Freiraum (Slack) Ten-Minute Build Continuous Integration Test Driven Development Inkrementeller Entwurf
  26. 26. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit 11 Sekundär Praktiken Kundenbeteiligung Inkrementelles Deployment Team Kontinuität Schrumpfende Teams Ursachen Analyse Gemeinsamer Quelltext Quelltests und Tests Eine Quelltextbasis Daily Deployment Vertrag mit verhandelbaren Umfang Bezahlung pro Benutzung
  27. 27. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Rollenverteilung Kunde Anforderungen aufschreiben und priorisieren Auskunft zu Details XP-Coach Führt das Team sanft Beobachtet den Ablauf und korrigiert Entwickler
  28. 28. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Projekt Ablauf 1 Kunde wählt grob Anforderungen für ein Release aus (ca. 3 Monate) 2 Entwickler schätzen den Aufwand und geben den Kunden Rückkopplung 3 Kunde wählt genauer nach Aufwand die Anforderungen für das Release und die nächste Iteration (1 Woche) aus 4 Entwickler beginnen Iteration, Rückfragen an den Kunden 5 Präsentation am Ende der Iteration, Rückkopplung des Kunden 6 Planung der nächsten Iteration oder des nächsten Releases. Wenn Anforderungen oder Prioritäten geändert wurden weiter mit Schritt 2 Wenn keine Änderungen weiter mit Schritt 4
  29. 29. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Einführung Fertigung und Entwicklung so komplex das nicht im Voraus geplant werden kann. Nicht explizit Softwareentwicklung sondern generell Management Product Backlog Iterationen gleicher Länge (Sprints) Sprint Backlog
  30. 30. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Rollenverteilung Product Owner Team eigenverantwortliche Umsetzung des Auftrags Handelt mit Owner aus wann welche Anforderungen umgesetzt werden Scrum-Master Achtet auf Einhalte des Prozesses Sollte nicht Teammitglied sein
  31. 31. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Projekt Ablauf 1 Sprint-Planungstreffen 1 Kunden anwesend Auffüllen den Product Backlog Festlegen des Sprintziels 2 Sprint-Planungstreffen 2 Nur Scrum Team Auswahl der Anforderungen für das Sprint Backlog Anforderungen in Tasks zerlegen und an die Entwickler verteilen 3 Sprint 1 bis 4 Wochen lang Daily Scrums im Sprint 4 Review Vorstellung der Sprintergebnisses für den Owner Mögliche Änderungen am Product Backlog 5 Retrospektive Betrachtung der letzten Sprintphase Feststellung Was war gut und Was kann verbessert werden
  32. 32. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Einführung Basis sind zu entwickelnde Features Aufteilung großer Teams in kleine mit Chefprogrammierer Projekt max. 6 Monate 2-3 Wochen für Planung (Schritt 1-3) 2 Wochen Iterationen (Schritt 4-5)
  33. 33. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Rollenverteilung Projektleiter Chefarchitekt Hält Überblick über die Gesamtarchitektur und fachlichen Aspekte Chefprogrammierer Führt Entwicklerteams in größeren Projekten Entwickler
  34. 34. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Projektablauf 1 Entwickle Gesamtmodell Erstellung von Fachmodellen in klein Gruppen und Integration in Gesamtmodell 2 Erstelle Feature-Liste Aufspaltung des Gesamtmodells in Features Verwendunge eines Schemas: Subject Areas <- Business Activities <- Steps Steps entsprechen Features 3 Plane je Feature Planung der Reihenfolge der Features, berücksichtigt Abhängigkeiten Jeder Buisness Activity wird ein Chefprogrammierer zugeordnet 4 Entwurf je Feature Zuweisung von Features an Entwicklerteams Erstellung von Sequenzdiagrammen und Klassen- und Methodenrümpfen 5 Konstruiere je Feature Erstellung von Quelltext
  35. 35. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Agile Entwicklung in Projektgruppen Raum um einen informativen Arbeitsplatz einzurichten. Veränderung der Iterationsdauer oder -umfang für Teilzeit. Feste Tage für Entwicklung und Standupmeetings Repository und Integrationsserver

×