Bei vielen Vorstellungsgesprächen werden Sie wahrscheinlich nach Methoden gefragt. Dies ist nicht die wichtigste oder schwierigste Frage, aber ein Spickzettel wäre schön. In diesem Artikel werden wir versuchen, zu vermitteln, was eine Entwicklungsmethodik ist, und sie zu vergleichen. Eine Softwareentwicklungsmethodik ist ein Prozess zur Entwicklung eines bestimmten Produkts, d. h. sie ist eine Möglichkeit, die Entwicklung durch ein Entwicklerteam zu organisieren. Es gibt viele verschiedene Entwicklungsmodelle, von denen jedes seinen eigenen Ansatz definiert. Man kann nicht sagen, dass jeder von ihnen für jedes Projekt verwendet werden sollte. Der richtige Ansatz hängt ganz von der Situation ab. Drei davon möchte ich näher betrachten.
Wasserfall
Die Wasserfallmethode ist eine der ältesten und beinhaltet eine strikt sequenzielle Umsetzung: Jede Phase muss abgeschlossen sein, bevor die nächste beginnt. Mit anderen Worten bedeutet ein Übergang zur nächsten Stufe, dass die Arbeit der vorherigen Stufe zu 100 % abgeschlossen ist. Das Bild zeigt, wie es funktioniert: Zuerst analysieren wir das Problem (Aufgaben dokumentieren, Herausforderungen besprechen), dann entwerfen wir (in diesem Stadium nimmt die Projektstruktur Gestalt an) und dann programmieren und testen wir. Eine Rückkehr zu vorherigen Etappen ist nicht gestattet. Dieser Ansatz empfiehlt sich für kleine Projekte, bei denen die Anforderungen im Voraus bekannt sind und sich wahrscheinlich nicht ändern werden. Vorteile:- Vollständige und konsistente Dokumentation in jeder Phase
- Benutzerfreundlichkeit
- Stabile Anforderungen
- Budgets und Fristen sind vordefiniert
- Umfangreiche Dokumentation
- Nicht sehr flexibel
- Der Kunde kann keine Demoversion des Produkts sehen
- Keine Möglichkeit, rückwärts zu gehen
Gedränge
Scrum ist eine Softwareentwicklungsmethodik, die den gesamten Prozess in Iterationen unterteilt. Am Ende jeder Interaktion ist das Team bereit, eine Demoversion des Produkts bereitzustellen. Das Bild zeigt, dass das Team alle Phasen der Entwicklung parallel durchläuft, so dass am Ende jeder Iteration ein fertiger Teil des Projekts vorliegen kann. Ich werde versuchen, das Wesentliche der Methodik mit einfachen Worten kurz zu erklären, aber es gibt eine Menge Terminologie. Ich denke, das Wichtigste ist, das Wesentliche zu verstehen. Mit Erfahrung werden Sie sich die Terminologie merken. Die gesamte Entwicklung ist in Sprints unterteilt (oft 2-3 Wochen). Es gibt einen Rückstand(Aufgabenliste) für den gesamten Entwicklungszeitraum und für jeden einzelnen Sprint. Jede Aufgabe hat ihren eigenen Story Point (Schwierigkeitsgrad). Jeder Prozessbeteiligte hat eine Rolle:- Das Scrum-Team besteht aus den Fachleuten (Entwickler, Tester, Designer), die an einem Projekt arbeiten.
- Der Scrum Master ist die Person, die dafür sorgt, dass die Prinzipien von Scrum eingehalten werden.
- Der Product Owner ist der Kunde.
- Stand-up – Hierbei handelt es sich um ein kurzes Meeting, das jeden Tag stattfindet und an dem alle Teammitglieder teilnehmen. Jeder Teilnehmer beantwortet 3 Fragen: Was habe ich getan? Was werde ich tun? Und welche Blockierungsprobleme gibt es?
- Planungstreffen – Dieses Treffen findet zu Beginn des Sprints statt. Bei diesem Treffen werden die Aufgaben identifiziert, die im nächsten Sprint erledigt werden müssen.
- Rückblick – Dieses Treffen findet am Ende des Sprints statt und dient dazu, herauszufinden, was gut gemacht wurde und was verbessert werden könnte.
- Der Kunde kann Ergebnisse während des Entwicklungsprozesses sehen
- Tägliche Überwachung des Entwicklungsprozesses
- Möglichkeit, während der Entwicklung Anpassungen vorzunehmen
- Etablierte Kommunikation mit allen Teammitgliedern
- Eine kleine Menge Dokumentation
- Es ist schwierig, die für die Entwicklung erforderlichen Arbeits- und sonstigen Kosten einzuschätzen
- Es ist schwierig, Engpässe vor Beginn der Entwicklung zu erkennen
- Die Notwendigkeit, jeden in die Arbeit der anderen Teammitglieder einzubeziehen.
Kanban
Kanban ist eine Methode, die auf der Visualisierung des Fortschritts bei der Erledigung der Aufgaben des Teams basiert. Die Hauptidee besteht darin, die Anzahl der Aufgaben zu reduzieren, die gerade ausgeführt werden (in der Spalte „In Bearbeitung“). Bei Scrum konzentriert sich das Team darauf, Sprints erfolgreich abzuschließen. Bei Kanban nimmt die Aufgabe die herausragende Stellung ein. Dies ist gut für Projekte in der Wartungsphase, bei denen die Grundfunktionalität bereits implementiert wurde und nur minimale Verbesserungen und Fehlerbehebungen verbleiben. Bei Kanban werden Aufgaben einzeln zugewiesen. Eine Aufgabe durchläuft unabhängig von anderen Aufgaben alle Phasen auf der Tafel und kann nach ihrer Erledigung dem Kunden gezeigt werden. Ein Kanban-Board besteht aus Spalten, die jeweils einen separaten Entwicklungsprozess darstellen. Einige Spalten (zum Beispiel „In Bearbeitung“ ) begrenzen die Anzahl der Aufgaben, die sie übernehmen können. Dies hilft, Problembereiche in der Aufgabenverteilung schnell und einfach zu finden. Das Bild zeigt ein Beispiel für ein solches Board. Die Anzahl der Spalten und deren Namen können variieren. Ich werde die häufigsten vorstellen:- To Do – Die Liste der Aufgaben, die erledigt werden müssen
- In Bearbeitung – Aufgaben, an denen derzeit gearbeitet wird
- Codeüberprüfung – Aufgaben, die erledigt und zur Überprüfung eingereicht wurden
- In Testing – Aufgaben bereit zum Testen
- Fertig – Erledigte Aufgaben
- Benutzerfreundlichkeit
- Sichtbarkeit (hilft, Engpässe zu lokalisieren, vereinfacht das Verständnis)
- Hohe Einbindung des Teams in den Prozess selbst
- Hochflexible Entwicklung
- Eine instabile Aufgabenliste
- Schwierig auf langfristige Projekte anwendbar
- Mangel an harten Fristen
GO TO FULL VERSION