SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
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
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
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
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
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
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
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
Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
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
Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
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
Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
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.
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
Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
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
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
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
Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
Werte
Kommunikation
Rückkopplung
Einfachheit
Mut
Respekt
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
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
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
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
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
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
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
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
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)
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
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
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

Weitere ähnliche Inhalte

Was ist angesagt?

Scrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADEDScrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADEDSwissQ Consulting AG
 
Agiles Testen
Agiles TestenAgiles Testen
Agiles Testenoose
 
Scrum zum Anfassen
Scrum zum AnfassenScrum zum Anfassen
Scrum zum AnfassenTilman Moser
 
Case Study: Automatisierte Code Reviews in einer gewachsenen SAP-Applikations...
Case Study: Automatisierte Code Reviews in einer gewachsenen SAP-Applikations...Case Study: Automatisierte Code Reviews in einer gewachsenen SAP-Applikations...
Case Study: Automatisierte Code Reviews in einer gewachsenen SAP-Applikations...Virtual Forge
 
MURCS - Wir machen jetzt Scrum (OOP 2017)
MURCS - Wir machen jetzt Scrum (OOP 2017)MURCS - Wir machen jetzt Scrum (OOP 2017)
MURCS - Wir machen jetzt Scrum (OOP 2017)Ulf Mewe
 
Agile Vorgehensmodelle in der Softwareentwicklung: Scrum
Agile Vorgehensmodelle in der Softwareentwicklung: ScrumAgile Vorgehensmodelle in der Softwareentwicklung: Scrum
Agile Vorgehensmodelle in der Softwareentwicklung: ScrumJohannes Diemke
 
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteQAware GmbH
 
Referat: Scrum Rocks – Testing Sucks?! (reloaded)
Referat: Scrum Rocks – Testing Sucks?! (reloaded)Referat: Scrum Rocks – Testing Sucks?! (reloaded)
Referat: Scrum Rocks – Testing Sucks?! (reloaded)Digicomp Academy AG
 
Scrum in Zahlen
Scrum in ZahlenScrum in Zahlen
Scrum in ZahlenSonja Uhl
 
Warum Scrum CMMI Level 5 erfüllt
Warum Scrum CMMI Level 5 erfülltWarum Scrum CMMI Level 5 erfüllt
Warum Scrum CMMI Level 5 erfülltKEGON AG
 
Kanban, Lean, and Scrum
Kanban, Lean, and ScrumKanban, Lean, and Scrum
Kanban, Lean, and ScrumThomas Moedl
 
Scrum - Wissen kompakt
Scrum - Wissen kompaktScrum - Wissen kompakt
Scrum - Wissen kompaktFrank Dostert
 
Hybrides Projektmanagement – Wie Sie agile und klassische Methoden verbinden
Hybrides Projektmanagement – Wie Sie agile und klassische Methoden verbindenHybrides Projektmanagement – Wie Sie agile und klassische Methoden verbinden
Hybrides Projektmanagement – Wie Sie agile und klassische Methoden verbindenAchim Schmidt-Sibeth
 
Testen mit, durch und in Scrum
Testen mit, durch und in ScrumTesten mit, durch und in Scrum
Testen mit, durch und in ScrumFrank Düsterbeck
 
Erfolgsfaktoren im Requirements Engineering
Erfolgsfaktoren im Requirements EngineeringErfolgsfaktoren im Requirements Engineering
Erfolgsfaktoren im Requirements EngineeringMarkus Unterauer
 
Individuelle Software Entwicklung
Individuelle Software EntwicklungIndividuelle Software Entwicklung
Individuelle Software EntwicklungDorie Fehlmann
 

Was ist angesagt? (20)

Scrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADEDScrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADED
 
Agiles Testen
Agiles TestenAgiles Testen
Agiles Testen
 
Scrum zum Anfassen
Scrum zum AnfassenScrum zum Anfassen
Scrum zum Anfassen
 
Case Study: Automatisierte Code Reviews in einer gewachsenen SAP-Applikations...
Case Study: Automatisierte Code Reviews in einer gewachsenen SAP-Applikations...Case Study: Automatisierte Code Reviews in einer gewachsenen SAP-Applikations...
Case Study: Automatisierte Code Reviews in einer gewachsenen SAP-Applikations...
 
Agilität mit Scrum - Überblick
Agilität mit Scrum - ÜberblickAgilität mit Scrum - Überblick
Agilität mit Scrum - Überblick
 
Agiles Testen - Überblick
Agiles Testen - ÜberblickAgiles Testen - Überblick
Agiles Testen - Überblick
 
MURCS - Wir machen jetzt Scrum (OOP 2017)
MURCS - Wir machen jetzt Scrum (OOP 2017)MURCS - Wir machen jetzt Scrum (OOP 2017)
MURCS - Wir machen jetzt Scrum (OOP 2017)
 
Agile Vorgehensmodelle in der Softwareentwicklung: Scrum
Agile Vorgehensmodelle in der Softwareentwicklung: ScrumAgile Vorgehensmodelle in der Softwareentwicklung: Scrum
Agile Vorgehensmodelle in der Softwareentwicklung: Scrum
 
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
 
Referat: Scrum Rocks – Testing Sucks?! (reloaded)
Referat: Scrum Rocks – Testing Sucks?! (reloaded)Referat: Scrum Rocks – Testing Sucks?! (reloaded)
Referat: Scrum Rocks – Testing Sucks?! (reloaded)
 
Scrum in Zahlen
Scrum in ZahlenScrum in Zahlen
Scrum in Zahlen
 
Agile Business Software mit der Enterprise Cloud
Agile Business Software mit der Enterprise CloudAgile Business Software mit der Enterprise Cloud
Agile Business Software mit der Enterprise Cloud
 
Warum Scrum CMMI Level 5 erfüllt
Warum Scrum CMMI Level 5 erfülltWarum Scrum CMMI Level 5 erfüllt
Warum Scrum CMMI Level 5 erfüllt
 
Kanban, Lean, and Scrum
Kanban, Lean, and ScrumKanban, Lean, and Scrum
Kanban, Lean, and Scrum
 
Scrum - Wissen kompakt
Scrum - Wissen kompaktScrum - Wissen kompakt
Scrum - Wissen kompakt
 
Hybrides Projektmanagement – Wie Sie agile und klassische Methoden verbinden
Hybrides Projektmanagement – Wie Sie agile und klassische Methoden verbindenHybrides Projektmanagement – Wie Sie agile und klassische Methoden verbinden
Hybrides Projektmanagement – Wie Sie agile und klassische Methoden verbinden
 
Testen mit, durch und in Scrum
Testen mit, durch und in ScrumTesten mit, durch und in Scrum
Testen mit, durch und in Scrum
 
Die 7 Wege zum Clean Code
Die 7 Wege zum Clean CodeDie 7 Wege zum Clean Code
Die 7 Wege zum Clean Code
 
Erfolgsfaktoren im Requirements Engineering
Erfolgsfaktoren im Requirements EngineeringErfolgsfaktoren im Requirements Engineering
Erfolgsfaktoren im Requirements Engineering
 
Individuelle Software Entwicklung
Individuelle Software EntwicklungIndividuelle Software Entwicklung
Individuelle Software Entwicklung
 

Ähnlich wie Agile Softwareentwicklung

Scrum Workshop
Scrum WorkshopScrum Workshop
Scrum Workshopmrdoubleb
 
Agilität im Systems Engineering – geht das?
Agilität im Systems Engineering – geht das?Agilität im Systems Engineering – geht das?
Agilität im Systems Engineering – geht das?HOOD Group
 
Scrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für ProgrammiererScrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für ProgrammiererTobias Schlüter
 
Agile Webentwicklungsmethoden in der Praxis
Agile Webentwicklungsmethoden in der PraxisAgile Webentwicklungsmethoden in der Praxis
Agile Webentwicklungsmethoden in der PraxisRobert Misch
 
Agile Projektentwicklung mit SCRUM
Agile Projektentwicklung mit SCRUMAgile Projektentwicklung mit SCRUM
Agile Projektentwicklung mit SCRUMTechDivision GmbH
 
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteQAware GmbH
 
Agile Teamarbeit - wie Startups Projekte managen und die Zusammenarbeit fördern
Agile Teamarbeit - wie Startups Projekte managen und die Zusammenarbeit fördernAgile Teamarbeit - wie Startups Projekte managen und die Zusammenarbeit fördern
Agile Teamarbeit - wie Startups Projekte managen und die Zusammenarbeit fördernSascha Böhr
 
Continuous Documentation statt Endless Specification - Fokus auf die nachhalt...
Continuous Documentation statt Endless Specification - Fokus auf die nachhalt...Continuous Documentation statt Endless Specification - Fokus auf die nachhalt...
Continuous Documentation statt Endless Specification - Fokus auf die nachhalt...HOOD Group
 
Agile softwareentwicklung am Beispiel von Scrum
Agile softwareentwicklung am Beispiel von ScrumAgile softwareentwicklung am Beispiel von Scrum
Agile softwareentwicklung am Beispiel von ScrumZeljko Kvesic
 
KEGON agile entwicklung in großen Organisationen
KEGON agile entwicklung in großen OrganisationenKEGON agile entwicklung in großen Organisationen
KEGON agile entwicklung in großen OrganisationenKEGON AG
 
Scrum, Lean, Kanban, XP: Was ist gut für mein Projekt?
Scrum, Lean, Kanban, XP: Was ist gut für mein Projekt?Scrum, Lean, Kanban, XP: Was ist gut für mein Projekt?
Scrum, Lean, Kanban, XP: Was ist gut für mein Projekt?Matthias Bohlen
 
mimacom f the_process
mimacom f the_processmimacom f the_process
mimacom f the_processFelix Kubasch
 
Mimacom f the_process
Mimacom f the_processMimacom f the_process
Mimacom f the_processFelix Kubasch
 
Responsive Multichannel-E-Commerce: Vorgehen und Learnings aus der Praxis
Responsive Multichannel-E-Commerce: Vorgehen und Learnings aus der PraxisResponsive Multichannel-E-Commerce: Vorgehen und Learnings aus der Praxis
Responsive Multichannel-E-Commerce: Vorgehen und Learnings aus der PraxisRoberto Rizzi
 
OOP2015 agile im konzern gloger ewe
OOP2015 agile im konzern gloger eweOOP2015 agile im konzern gloger ewe
OOP2015 agile im konzern gloger eweMarkus Theilen
 
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der ZukunftTest-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der ZukunftChristian Drumm
 

Ähnlich wie Agile Softwareentwicklung (20)

Scrum Workshop
Scrum WorkshopScrum Workshop
Scrum Workshop
 
Agilität im Systems Engineering – geht das?
Agilität im Systems Engineering – geht das?Agilität im Systems Engineering – geht das?
Agilität im Systems Engineering – geht das?
 
Scrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für ProgrammiererScrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für Programmierer
 
Scrum 2009 10_23
Scrum 2009 10_23Scrum 2009 10_23
Scrum 2009 10_23
 
2017 05-23 agil arbeiten
2017 05-23 agil arbeiten2017 05-23 agil arbeiten
2017 05-23 agil arbeiten
 
Agile Webentwicklungsmethoden in der Praxis
Agile Webentwicklungsmethoden in der PraxisAgile Webentwicklungsmethoden in der Praxis
Agile Webentwicklungsmethoden in der Praxis
 
Agile Projektentwicklung mit SCRUM
Agile Projektentwicklung mit SCRUMAgile Projektentwicklung mit SCRUM
Agile Projektentwicklung mit SCRUM
 
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
 
Murcs
MurcsMurcs
Murcs
 
OOP2017: Scrum statt Murcs - Agile Software-Entwicklung
OOP2017: Scrum statt Murcs - Agile Software-EntwicklungOOP2017: Scrum statt Murcs - Agile Software-Entwicklung
OOP2017: Scrum statt Murcs - Agile Software-Entwicklung
 
Agile Teamarbeit - wie Startups Projekte managen und die Zusammenarbeit fördern
Agile Teamarbeit - wie Startups Projekte managen und die Zusammenarbeit fördernAgile Teamarbeit - wie Startups Projekte managen und die Zusammenarbeit fördern
Agile Teamarbeit - wie Startups Projekte managen und die Zusammenarbeit fördern
 
Continuous Documentation statt Endless Specification - Fokus auf die nachhalt...
Continuous Documentation statt Endless Specification - Fokus auf die nachhalt...Continuous Documentation statt Endless Specification - Fokus auf die nachhalt...
Continuous Documentation statt Endless Specification - Fokus auf die nachhalt...
 
Agile softwareentwicklung am Beispiel von Scrum
Agile softwareentwicklung am Beispiel von ScrumAgile softwareentwicklung am Beispiel von Scrum
Agile softwareentwicklung am Beispiel von Scrum
 
KEGON agile entwicklung in großen Organisationen
KEGON agile entwicklung in großen OrganisationenKEGON agile entwicklung in großen Organisationen
KEGON agile entwicklung in großen Organisationen
 
Scrum, Lean, Kanban, XP: Was ist gut für mein Projekt?
Scrum, Lean, Kanban, XP: Was ist gut für mein Projekt?Scrum, Lean, Kanban, XP: Was ist gut für mein Projekt?
Scrum, Lean, Kanban, XP: Was ist gut für mein Projekt?
 
mimacom f the_process
mimacom f the_processmimacom f the_process
mimacom f the_process
 
Mimacom f the_process
Mimacom f the_processMimacom f the_process
Mimacom f the_process
 
Responsive Multichannel-E-Commerce: Vorgehen und Learnings aus der Praxis
Responsive Multichannel-E-Commerce: Vorgehen und Learnings aus der PraxisResponsive Multichannel-E-Commerce: Vorgehen und Learnings aus der Praxis
Responsive Multichannel-E-Commerce: Vorgehen und Learnings aus der Praxis
 
OOP2015 agile im konzern gloger ewe
OOP2015 agile im konzern gloger eweOOP2015 agile im konzern gloger ewe
OOP2015 agile im konzern gloger ewe
 
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der ZukunftTest-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
 

Agile Softwareentwicklung

  • 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. 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. 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. 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. 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. 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. 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. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
  • 9. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
  • 10. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
  • 11. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
  • 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. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
  • 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. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
  • 16. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
  • 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. 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. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit
  • 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. 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. 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. Motivation Agile Methoden Agile Prozesse Extrem Programming Scrum Feature Driven Development Fazit Werte Kommunikation Rückkopplung Einfachheit Mut Respekt
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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