Einordnung
“Knock knock.”
Who’s there?
“Carrie.”
Carrie who?
Haha witzig 😒. Bitte helft mir.
In "normalen" Softwareprojekten ist viel zu besprechen und zu organisieren:
Hier geht es um die Methoden, wie man letztendlich am besten die Arbeit organisiert zwischen verschiedenen Teammitgliedern.
Am Ende des Tagens: Möglichst viel richtiges Programmieren.
Es gibt die klassischen Modelle, wo die Phasen (Analyse, Entwurf, Implementierung,....) chronologisch unterteilt sind, also eins nach dem Anderen. Dazu gehören Wasserfall, V und RUP.
Dann gibt es agile Modelle, wo alles gleichzeitig passiert, mit vielen kleinen Iterationen und Intervallen; Scrum, XP
Wasserfall
V-Modell
Evolutionäre Entwicklung
RUP (rational unified process, RIP)
Jeder Arbeitsschritt (Analyse, Entwurf, Implementierung, Test) wird in vier zeitliche Phasen aufgeteilt:
- Entstehung (Projekt definieren)
- Ausarbeitung (Planen, Spezifizieren)
- Erstellung (Machen)
- Übergang ("Ausgeben")
Diese Phasen passieren für jeden Arbeitsschritt gleichzeitig, aber man kann jedem Arbeitsschritt eine Phase zuordnen, in der besonderen Fokus auf diesen Schritt gelegt wird. (In der Reihenfolge wie sie da stehen)
Scrum
Es gibt drei Rollen: Product Owner, Entwicklungsteam, ScrumMaster
Und mehrere zeitlich beschränkte (also nicht abhängig von erreichten Zielen) Aktivitäten: Sprint Planning, Sprint Review, Sprint-Retrospektive, Daily Scrum.
Scrum hat auch ein paar wichtige Artefakte (Objekte): Product Backlog (Was der User will, was noch zu implementieren ist), Sprint Backlog (Auszug aus dem Product Backlog, die Dinge, die in diesem Sprint gemacht werden), auslieferbares Produktinkrement (Was schon auslieferbar ist)
Kanban
Wurde zwar in der Vorlesung erwähnt aber nicht erklärt
EXTREME PROGRAMMING (XP haha)
Evolutionäre Methode in kleinen Inkrements, Code ist immer lauffähig!
Ein wichtiges Prinzip ist "Test-First": Erst Tests schreiben/definieren, und dann den Code passend dazu entwickeln
Es gibt nicht wirklich einen Entwurf oder Dokumentation, der Ansatz ist eher "Ja schau doch einfach in den Code und die Tests mann", XP ist deshalb eher für kleinere Projekte geeignet