Softwareentwicklung und Projektmanagement
Fr. Hauser, WS 2018/2019
Agenda
1. Organisatorisches
2. Überblick & Motivation
3. Klassisches Projektmanagement
4. Tools (klassisches PM)
5. Agiles Projektmanagement – Einführung
6. Agiles Projektmanagement - Scrum
2Softwareentwicklung und Projektmanagement18.10.2018
1. Organisatorisches
Veranstaltung
1. Bw(Ba)3.13 – 3.18: Donnerstags 07:45 - 11:00 (ungerade Wochen)
2. Bw(Ba)3.07 – 3.12: Donnerstags 07:45 - 11:00 (gerade Wochen)
3. Bw(Ba)3.01 – 3.06: Donnerstags 11:30 - 15:00 (ungerade Wochen)
Ort: Labor
3Softwareentwicklung und Projektmanagement18.10.2018
Materialien/Fallstudien
Im Moodle (Softwareentwicklung und Projektmanagement WS 2018/19)
Oder unter nina.stodolka.com -> EAH Jena -> WS 18/19 -> Softwareentwicklung und Projektmanagement
4Softwareentwicklung und Projektmanagement18.10.2018
1. Organisatorisches
Prüfungsleistung:
Klausur 90 min
100 Punkte
Bonuspunkte (10 Punkte) für Klausur durch Vortrag möglich
Musterklausur mit und ohne Lösungen wird ca. 4 Wochen vor der Klausur bereitgestellt
Fragen der Musterklausur kommen nicht in Klausur dran, es soll die Art der Fragen verdeutlicht werden
5Softwareentwicklung und Projektmanagement18.10.2018
1. Organisatorisches
Ziele
Überblick über Projektmanagement (agil)
Überblick zu den Tools - mit Vorstellung & Übung
Übersicht über Themen der Softwareentwicklung
Erste eigene Erfahrungen sammeln
Kenntnis der Schnittstellen zu anderen Bereichen
Vorstellung der Aufgaben/Rollen
Präsentationsfähigkeiten stärken
6Softwareentwicklung und Projektmanagement18.10.2018
2. Überblick & Motivation
Zielerreichung durch:
Vorlesung
Gruppenarbeiten, individuelle Übungen
Einzel-Vorträge
Vorträge von Praxispartnern
Wichtig: Vorlesungsfolien sollen Mitschrift erleichtern, enthalten nicht alle Informationen, um sich den Stoff eigenständig zu erarbeiten.
7Softwareentwicklung und Projektmanagement18.10.2018
2. Überblick & Motivation
Vorträge:
Termine vorläufig, ggf. Verschiebung durch Praxisvorträge
max. 5 Minuten
Präsentationen bitte spät. zum Vortrag abgeben
Inhalte sind ebenfalls klausurrelevant
Ziele:
Professionell präsentieren
Frei sprechen
Strukturierung von Themen
8Softwareentwicklung und Projektmanagement18.10.2018
2. Überblick & Motivation
Anforderungen an die Vorträge Aufbau & Gliederung & Qualität
Quantität & Zeit
Gestaltung & Quellen
Redefluss
Ausdrucksvermögen & Sprachrichtigkeit
Blickkontakt
Mimik & Gestik
Sprechweise & Sprechtempo
Wirksamkeit
Hintergrundwissen
9Softwareentwicklung und Projektmanagement18.10.2018
2. Überblick & Motivation
Themen 1. Lean 2. Design Thinking 3. Wekan 4. Trello 5. Basecamp 6. Vertragsarten im agilen Umfeld 7. Gegenüberstellung agiles und
klassisches Projektmanagement 8. Use Cases 9. Pflichtenheft (& Unterschied
zum Lastenheft) 10. Anforderungsmanagement
11. Schätzmethoden: Experten & Delphi
12. Schätzmethoden: CoCoMo & FPA
13. Mock-Up Tool 14. Bugtrackertool 15. Continous Integration 16. Dev Ops 17. Objektorientierte
Programmierung 18. Modularisierung 19. Versionsmanagement &
Workflows 20. Dokumentation
10Softwareentwicklung und Projektmanagement18.10.2018
2. Überblick & Motivation
11Softwareentwicklung und Projektmanagement18.10.2018
3. Klassisches Projektmanagement
12Softwareentwicklung und Projektmanagement18.10.2018
3. Klassisches Projektmanagement
Weitere (bekannte) Vorgehensmodelle Wasserfall
V-Modell
13Softwareentwicklung und Projektmanagement18.10.2018
3. Klassisches Projektmanagement
Wasserfall
14Softwareentwicklung und Projektmanagement18.10.2018
3. Klassisches Projektmanagement
Wasserfall
Weite Verbreitung in der industriellen Praxis
Phasenweises Vorgehen
Sequentiell aufeinanderfolgende Phasen
Ergebnisorientierte Arbeitsweise
16Softwareentwicklung und Projektmanagement18.10.2018
3. Klassisches Projektmanagement
Wasserfall Vorteile
Methodisch fundiert Technisch ausgereiftes Konzept zur Systemstrukturierung Wirkungsvolle Mittel für Projektführung
Nachteile▬Mangelnde Flexibilität▬Softwarebürokratie -> Dokumente zu festen Zeitpunkten▬Realitätsferne
▬Trennung von Anwender – und Entwicklerwelt
17Softwareentwicklung und Projektmanagement18.10.2018
3. Klassisches Projektmanagement
V-Modell
18Softwareentwicklung und Projektmanagement18.10.2018
3. Klassisches Projektmanagement
V-Modell Phasenmodell -> auch hier Ergebnisse als bindende
Vorgaben der nächsten Phase
Unterschied zum Wasserfall-Modell: der Spezifikation gegenübergestellte Testphasen
In Literatur unterschiedliche Anzahl an Phasen und Bezeichnungen, aber immer mit Gegenüberstellung von Spezifikation und Tests
Vorgehensmodell für IT Entwicklungsprojekte der Bundesrepublik Deutschland
20Softwareentwicklung und Projektmanagement18.10.2018
3. Klassisches Projektmanagement
Projektplan / Gantt-Chart
21Softwareentwicklung und Projektmanagement18.10.2018
4. Tools (klassisches PM)
Projektplan
22Softwareentwicklung und Projektmanagement18.10.2018
4. Tools (klassisches PM)
Quelle: https://www.projectmanager.com/gantt-chart
Projektplan
23Softwareentwicklung und Projektmanagement18.10.2018
4. Tools (klassisches PM)
Quelle: http://www.covalconsultores.com/kanban-como-nos-hemos-empezado-a-organizar-en-nuestra-propia-casa/
Projektplan / Gantt-Chart
Infos:
24Softwareentwicklung und Projektmanagement18.10.2018
4. Tools (klassisches PM)
Übungsaufgabe
26Softwareentwicklung und Projektmanagement18.10.2018
4. Tools (klassisches PM)
Häufige Änderungen
Schnellere Zyklen
28Softwareentwicklung und Projektmanagement18.10.2018
5. Agiles Projektmanagement - Einführung
Agiles Manifest
http://agilemanifesto.org/iso/de/manifesto.html
Individuen und Interaktionen mehr als Prozesse und Werkzeuge
Funktionierende Software mehr als umfassende Dokumentation
Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung
Reagieren auf Veränderung mehr als das Befolgen eines Plans
29Softwareentwicklung und Projektmanagement18.10.2018
5. Agiles Projektmanagement - Einführung
Unsere höchste Priorität ist es, den Kunden durch frühe und kontinuierliche Auslieferung wertvoller Software zufrieden zu stellen.
Heisse Anforderungsänderungen selbst spät in der Entwicklung willkommen. Agile Prozesse nutzen Veränderungen zum Wettbewerbsvorteil des Kunden.
Liefere funktionierende Software regelmäßig innerhalb weniger Wochen oder Monate und bevorzuge dabei die kürzere Zeitspanne.
30Softwareentwicklung und Projektmanagement18.10.2018
5. Agiles Projektmanagement - Einführung
Fachexperten und Entwickler müssen während des Projektes täglich zusammenarbeiten.
Errichte Projekte rund um motivierte Individuen. Gib ihnen das Umfeld und die Unterstützung, die sie benötigen und vertraue darauf, dass sie die Aufgabe erledigen.
Die effizienteste und effektivste Methode, Informationen an und innerhalb eines Entwicklungsteams zu übermitteln, ist im Gespräch von Angesicht zu Angesicht.
31Softwareentwicklung und Projektmanagement18.10.2018
5. Agiles Projektmanagement - Einführung
Funktionierende Software ist das wichtigste Fortschrittsmaß.
Agile Prozesse fördern nachhaltige Entwicklung. Die Auftraggeber, Entwickler und Benutzer sollten ein gleichmäßiges Tempo auf unbegrenzte Zeit halten können.
Ständiges Augenmerk auf technische Exzellenz und gutes Design fördert Agilität.
32Softwareentwicklung und Projektmanagement18.10.2018
5. Agiles Projektmanagement - Einführung
Einfachheit -- die Kunst, die Menge nicht getaner Arbeit zu maximieren -- ist essenziell.
Die besten Architekturen, Anforderungen und Entwürfe entstehen durch selbstorganisierte Teams.
In regelmäßigen Abständen reflektiert das Team, wie es effektiver werden kann und passt sein Verhalten entsprechend an.
33Softwareentwicklung und Projektmanagement18.10.2018
5. Agiles Projektmanagement - Einführung
34Softwareentwicklung und Projektmanagement18.10.2018
6. Agiles Projektmanagement - Scrum
Quelle: https://www.youtube.com/watch?v=XU0llRltyFM
Offizieller Scrumguide: https://www.scrumguides.org/index.html
Sonstige Info-Seiten: https://de.wikipedia.org/wiki/Scrum https://www.wibas.com/de/scrum/ https://www.it-agile.de/wissen/einstieg-und-
ueberblick/scrum/
In Praxis oftmals kein reines Scrum, sondern Abweichungen
Andere Formen: u.a Scrumban
35Softwareentwicklung und Projektmanagement18.10.2018
6. Agiles Projektmanagement - Scrum
Sprint 2-4 Wochen
Keine Änderungen
Immer gleich lang
Sprint Burndown Chart
Definition of Done
36Softwareentwicklung und Projektmanagement18.10.2018
6. Agiles Projektmanagement - Scrum
Rollen
37Softwareentwicklung und Projektmanagement18.10.2018
6. Agiles Projektmanagement - Scrum
Product Owner
• Legt Funktionsumfang fest
• Pflegt und priorisiert das Product Backlog
• Nimmt Umsetzung ab
Scrum Master
• Sorgt für die Einhaltung der Werte
• Beseitigt Behinderungen
• Stellt Produktivität sicher
• Schützt das Team vor äußeren Einflüssen
Entwicklungsteam
• 2-9 Mitglieder
• Cross-Funktional
• Selbstorganisiert
• Entscheidet, was umgesetzt wird
• Verantwortlich für die Erreichung der Sprintziele
Meetings
Sprint Planning
I und II (Commitment und Konkretisierung)
Alle, 1,5 – 16 h
Daily Scrum
Täglich (Synchronisation)
Alle, Max. 15 min
„Was hab ich gestern getan?“, „Was tue ich heute?“ und „Was hindert mich?“
38Softwareentwicklung und Projektmanagement18.10.2018
6. Agiles Projektmanagement - Scrum
Meetings Sprint Review
Demo
Alle, 15 min – 4 h
Sprint Retrospective
Auswertung (Betrachtung der Arbeitsweise des letzten Sprints)
Alle, 15 min – 4 h
Product Backlog Refinement
Vorstellung und Schätzung der neuen Aufgaben
39Softwareentwicklung und Projektmanagement18.10.2018
6. Agiles Projektmanagement - Scrum
Artefakte
40Softwareentwicklung und Projektmanagement18.10.2018
6. Agiles Projektmanagement - Scrum
• Gewünschte Funktionalitäten
• Vom Product Owner priorisiert
• Nach jedem Sprint neu priorisiert
Product Backlog
• Die für den Sprint bestimmten Elemente des PB
• Team entscheidet selbst
• Nur das Team ändert das Backlog
Sprint Backlog
VorteileWenige Regeln, leicht verständlich und schnell
einführbarKurze KommunikationswegeHohe Flexibilität/Agilität durch adaptives PlanenHohe Effektivität durch SelbstorganisationHohe Transparenz durch regelmäßige Meetings und
BacklogsZeitnahe Realisation neuer Produkteigenschaften bzw.
InkrementeKontinuierlicher VerbesserungsprozessKurzfristige Problem-Identifikation
41Softwareentwicklung und Projektmanagement18.10.2018
6. Agiles Projektmanagement - Scrum
Nachteile▬ Kein Gesamtüberblick über die komplette Projektstrecke▬Hoher Kommunikations- und Abstimmungsaufwand▬Wenige konkrete Handlungsempfehlungen▬ Zeitverluste bei zu „defensiven" Sprintplanungen▬ „Tunnelblick-Gefahr" bei ausschließlicher Fokussierung auf
Tasks▬ Erschwerte Koordination mehrerer Entwicklungsteams bei
Großprojekten▬ Potenzielle Verunsicherung aufgrund fehlender
Zuständigkeiten und Hierarchien▬ Potenzielle Unvereinbarkeit mit bestehenden
Unternehmensstrukturen
42Softwareentwicklung und Projektmanagement18.10.2018
6. Agiles Projektmanagement - Scrum
Balzert, Helmut: Lehrbuch der Software-Technik, ISBN: 3-8274-0065-1 https://de.wikipedia.org/wiki/Softwaretechnik https://www.ibm.com/developerworks/rational/library/4763.html Gumm, Heinz Peter, Sommer, Manfred: Einführung in die Informatik, 9.
Auflage, ISBN: 978-3-486-5911-0 https://de.wikipedia.org/wiki/V-Modell_(Entwicklungsstandard) https://de.wikipedia.org/wiki/V-Modell https://www.cio.bund.de/Web/DE/Architekturen-und-Standards/V-
Modell-XT/vmodell_xt_node.html http://agilemanifesto.org/iso/de/manifesto.html https://www.it-agile.de/wissen/einstieg-und-ueberblick/kanban/ https://de.wikipedia.org/wiki/Testgetriebene_Entwicklung http://agiles-projektmanagement.org/scrum-vorteile-nachteile/
43Softwareentwicklung und Projektmanagement18.10.2018
Quellen
Wasserfall- Modell Problemanalyse und Anforderungsdefinition
-> Systemanalyse / Requirements Engineering Modellierung und fachlicher Entwurf
-> Datenmodell, Informationsmodell, Klassenmodell, Objektmodell-> Anwendungsmodell
Softwaretechnischer Entwurf-> Komponenten, bestehend aus Modulen und Schnittstellen
Programmierung und Modultest-> Implementierung, Testfalldefinition und -ausführung
Systemintegration und Systemtest Installation, Betrieb und Weiterentwicklung
-> Abnahmetests
44Softwareentwicklung und Projektmanagement18.10.2018
3. Klassisches Projektmanagement
Scrum Skalierung:
LeSS
SaFe
DAD
Nexus
45Softwareentwicklung und Projektmanagement18.10.2018
6. Agiles Projektmanagement - Scrum