CodeGym /Java-Blog /Random-DE /Methoden der Softwareentwicklung
Autor
Alexey Yelenevych
Co-Founder at CodeGym

Methoden der Softwareentwicklung

Veröffentlicht in der Gruppe Random-DE
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. Softwareentwicklungsmethoden – 2Vorteile:
  • Vollständige und konsistente Dokumentation in jeder Phase
  • Benutzerfreundlichkeit
  • Stabile Anforderungen
  • Budgets und Fristen sind vordefiniert
Nachteile:
  • 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. Softwareentwicklungsmethoden – 3Ich 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.
Diese Methodik basiert auf Kommunikation, daher gibt es eine große Anzahl von Besprechungen:
  • 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.
Vorteile:
  • 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
Nachteile:
  • 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: Softwareentwicklungsmethoden – 4
  • 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
Vorteile:
  • Benutzerfreundlichkeit
  • Sichtbarkeit (hilft, Engpässe zu lokalisieren, vereinfacht das Verständnis)
  • Hohe Einbindung des Teams in den Prozess selbst
  • Hochflexible Entwicklung
Nachteile:
  • Eine instabile Aufgabenliste
  • Schwierig auf langfristige Projekte anwendbar
  • Mangel an harten Fristen

Ein letztes Wort zu Softwareentwicklungsmethoden

Personen, die Führungspositionen bekleiden oder anstreben, müssen die Methoden der Softwareentwicklung gründlich verstehen, aber jeder muss zumindest die Grundlagen verstehen. Methoden sind ein integraler Bestandteil des Entwicklungsprozesses und werden nicht nur im IT-Bereich eingesetzt. Vielen Dank, dass Sie sich die Zeit genommen haben, meinen Artikel zu lesen. Ich hoffe, es war hilfreich für Sie. Ich habe versucht, nur die wichtigsten Punkte so verständlich und prägnant wie möglich zu beschreiben. Daher erhebt dieser Artikel keinen Anspruch auf Vollständigkeit. Ich würde mich freuen, Ihre Meinung dazu zu hören und Ihre Fragen zu beantworten. Alles Gute!
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION