Softwareentwicklung und Projektmanagement · 2018. 11. 23. · Übersicht über Themen der...

Preview:

Citation preview

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

Recommended