CodeGym /Java-Blog /Random-DE /Alles, was Sie über Softwareentwicklungsmethoden wissen m...
John Squirrels
Level 41
San Francisco

Alles, was Sie über Softwareentwicklungsmethoden wissen müssen: Trends, Prinzipien und Fallstricke für Anfänger

Veröffentlicht in der Gruppe Random-DE
Softwareentwicklung ist ein komplexer Geschäftsprozess. Das bedeutet, dass IT-Experten die Sprache der Optimierung, Planung und Kostenberechnung sprechen müssen. Ein Verständnis von Managementkonzepten verschafft sowohl Arbeitgebern als auch Entwicklern einen großen Vorteil und hilft, die Zusammenarbeit auf die nächste Ebene zu heben. Alles, was Sie über Softwareentwicklungsmethoden wissen müssen: Trends, Prinzipien und Fallstricke für Anfänger – 1

Achtung, Anfänger! Modelle, Methoden und allgemeine Verwirrung

Zunächst müssen wir eine wichtige Klarstellung vornehmen: Softwareentwicklungsmodelle und Softwareentwicklungsmethoden sind getrennt und unterschiedlich. Modelle sagen voraus, wie sich ein System verhalten wird. Damit das System ordnungsgemäß funktioniert, sind Methoden erforderlich. Das Verwechseln von Softwareentwicklungsmodellen und -methoden ist für jeden IT-Neuling eine Standardvorgehensweise und wird daher nicht als großer Fehler angesehen. Ein Beispiel für ein Modell ist das klassische Wasserfallmodell mit seinem linearen Verlauf, der klaren Definition der Ziele für jede Phase und der strengen Kontrolle der Fristen. Ein weiteres Modell ist das Spiralmodell, wobei der Schwerpunkt auf der Früherkennung und Minderung von Projektrisiken liegt. Die Spiralentwicklung fängt klein an, löst zunächst lokale Probleme und geht dann zu komplexeren über. Ein weiteres Modell schließlich ist die iterative und inkrementelle Entwicklung (IID) , bei der der Projektlebenszyklus in eine Reihe von Iterationen unterteilt wird, die jeweils einem „Miniprojekt“ ähneln. Im Allgemeinen ist ein Modell eine Beschreibung des Softwareentwicklungsprozesses . Aber Methoden sind Systeme zur Steuerung, Bewertung und Überwachung der Arbeit an zugewiesenen Aufgaben. Methoden sind das Zuckerbrot und die Peitsche der Moderne und werden benötigt, um jeden Schritt im Entwicklungsprozess zu steuern. Sie werden auf der Grundlage der Projektrichtung, des Budgets und der Fristen für die Umsetzung des Endprodukts ausgewählt. Darüber hinaus können die Methoden je nach Temperament des Projektleiters und seines Teams ausgewählt werden. Auch basierend auf der Philosophie des Unternehmens oder Kunden. Werfen wir einen Blick auf die beliebtesten Methoden.

1. Gedränge

Scrum ist eine agile Projektmanagementmethode. Es basiert auf „Sprints“ oder kurzen Iterationen, die zeitlich streng begrenzt sind (normalerweise 2–4 Wochen). Dies minimiert die Dauer von Besprechungen, erhöht jedoch deren Häufigkeit. Jeder Sprint besteht aus einer Liste von Aufgaben, die bis zum Ende der Iteration erledigt werden müssen, und jede von ihnen hat ihr eigenes „Gewicht“. Während der Besprechungen bespricht das Team, was die Teammitglieder getan haben, was sie vorhaben und welche Probleme es gibt. Scrum nutzt einen Backlog für die Planung. Bei diesem Ansatz verfügen Teams im Allgemeinen über einen Scrum Master. Diese Person hilft dem Team, ohne Unterbrechung zu arbeiten und schafft eine angenehme Umgebung für das Team. Das Projekt wird auch jemanden in der Rolle des Product Owners haben. Diese Person ist der Leiter der Entwicklung, überwacht das Produkt und fungiert als Hauptverbindung zwischen dem, was der Kunde wünscht, und dem, was das Team produziert.

Vorteile:

  • Fähigkeit, schnell ein Projekt mit dem geringstmöglichen Budget zu starten;
  • tägliche Überwachung des Fortschritts, häufige Projektdemos;
  • die Möglichkeit, während des Projekts Anpassungen vorzunehmen.

Nachteile:

  • Schwierigkeiten beim Vertragsabschluss aufgrund des Fehlens eines festen Budgets;
  • funktioniert nicht für ein unerfahrenes Team oder wenn Fristen oder das Budget zu niedrig angesetzt sind;
  • Die Möglichkeit, zwischen Sprints ständig Änderungen vorzunehmen, kann Verwirrung stiften.

Für wen ist das?

Ein solches System eignet sich für Projekte mit bis zu zehn Personen, unabhängig davon, ob sie unabhängig sind oder in großen Unternehmen bestehen. Dies ist praktisch, wenn das Team einen großen Arbeitsaufwand und einen langen Lebenszyklus hat, der es dazu zwingt, sich zu ändern und an neue Marktbedingungen anzupassen.

2. Kanban

Das wichtigste Merkmal von Kanban ist die Visualisierung des Projektlebenszyklus. Es werden Spalten zum Ausführen von Arbeitselementen erstellt. Die Arbeitsaufgaben werden einzeln angegangen. Die Spalten sind mit Status wie „Zu erledigen“, „In Bearbeitung“, „Codeüberprüfung“, „Im Test“ und „Fertig“ gekennzeichnet (die Spaltennamen können natürlich variieren). Das Ziel jedes Teammitglieds besteht darin, die Anzahl der Arbeitselemente in der ersten Spalte zu reduzieren. Der Ansatz von Kanban ist intuitiv und hilft Ihnen zu verstehen, wo Probleme liegen. Die Struktur von Kanban ist nicht endgültig und unwiderruflich festgelegt: Abhängig von den Besonderheiten des Projekts können Sie improvisierte Spalten hinzufügen. Einige Teams verwenden beispielsweise ein System, in dem Sie Fertig-Regeln für ein Arbeitselement definieren müssen, bevor Sie es ausführen. In diesem Fall werden zwei Spalten hinzugefügt: Specify (Angabe der Parameter) und Implement (an die Arbeit gehen).

Vorteile:

  • Flexibilität in der Planung. Das Team konzentriert sich nur auf die aktuelle Arbeit, auch die Priorität einer Aufgabe wird definiert;
  • Sichtweite. Wenn alle Teilnehmer Zugriff auf Daten haben, lassen sich globale Probleme leichter erkennen;
  • hohe Einbindung in den Entwicklungsprozess. Die Visualisierung von Prozessen steigert die Selbstorganisation und Selbstkontrolle.

Nachteile:

  • arbeitet nicht mit Teams von mehr als fünf Personen;
  • nicht für eine langfristige Planung gedacht;
  • Nicht geeignet für ein unmotiviertes Team. Kanban hat nicht für jedes Arbeitselement Fristen. Die Methodik sieht auch keine Strafen für Verzögerungen vor.

Für wen ist das?

Kanban funktioniert hervorragend in Unternehmen, in denen das Team motiviert ist, zu wachsen und Ergebnisse zu erzielen. Es sollte bereits klar sein – dies ist für ein kleines Team. Vielleicht sogar eine Abteilung oder ein Teil eines Teams.

3. Rational Unified Process (RUP)

Die RUP-Methodik verwendet ein iteratives Entwicklungsmodell. Am Ende jeder Iteration (die 2 bis 6 Wochen dauert) sollte das Team die geplanten Ziele erreichen und eine funktionierende, wenn auch temporäre Version des Projekts erhalten. RUP fordert eine Aufteilung des Projekts in vier Phasen . In jeder Phase wird an der nächsten Generation des Produkts gearbeitet: Konzeption, Ausarbeitung, Konstruktion und Übergang. Am Ende einer Phase wird ein Projektmeilenstein erreicht. Der Moment, in dem das Team seine Ergebnisse auswertet, könnte als Projektmeilenstein betrachtet werden. Dies bedeutet, dass die Methodik impliziert, dass die Hauptfunktionen in der ersten Phase veröffentlicht und Ergänzungen in den nachfolgenden Phasen hinzugefügt werden.

Vorteile:

  • ermöglicht die Bewältigung wechselnder Aufgabenstellungen, sowohl seitens des Kunden als auch im Laufe der Arbeit;
  • sorgt für eine kontinuierliche Verbesserung des Produkts. Während der Iterationen können Sie das Projekt gewissenhaft bewerten;
  • ermöglicht es, Risiken in frühen Arbeitsphasen zu erkennen und zu beseitigen sowie die Qualität der Entwicklung effektiv zu kontrollieren.

Nachteile:

  • Diese Methodik ist ziemlich komplex und in einem kleinen Team oder Unternehmen schwer umzusetzen;
  • hängt von der Fähigkeit der Experten ab, Aufgaben zu stellen;
  • erfordert eine übermäßige Dokumentation der Anforderungen.

Für wen ist das?

Große Projekte mit klar festgelegten Anforderungen und Risiken, die gut verstanden werden, bei denen das Produkt so schnell wie möglich freigegeben werden muss. Auch auf Kosten der Funktionalität, um schnell Ihre Nische zu besetzen und erst später den letzten Schliff zu geben.

Es gibt viele Methoden, aber einen Trend

Neben Scrum und Kanban, die zweifellos beliebt sind und auf agilen Prinzipien basieren , sowie der robusten, iterativen RUP-Methodik verwenden Unternehmen viele Variationen von Methoden. Ein Unternehmen ist möglicherweise näher an der extremen Programmierung und trifft die schnellsten und einfachsten Entscheidungen. Ein anderes könnte näher an der testgetriebenen Entwicklung liegen. Ein anderer wiederum bevorzugt möglicherweise die schnelle Anwendungsentwicklung (RAD). Dennoch gibt es einen starken und unbestreitbaren Trend zur gleichzeitigen Verwendung mehrerer Methoden. Oder sogar Modelle und Methoden zu einem einzigartigen Managementsystem kombinieren. Heutige Unternehmen streben danach, bürokratische Hürden abzubauen und eine Atmosphäre einheitlicher Teamarbeit innerhalb der Organisation zu schaffen, ohne die Verantwortung zwischen Abteilungen und Organisationseinheiten zu verlagern. Laut Scrum Alliance70 % der IT-Unternehmen nutzen Scrum. Darunter sind Giganten wie Google, Amazon, Salesforce, Microsoft und Adobe. Startups und junge Projekte neigen eher zu Kanban, aber auch Toyota und beispielsweise die Gamer von Wargaming nutzen es. Scrum ist ein Planungstool, während Kanban der Überwachung des Fortschritts dient. RUP wird am häufigsten von westlichen Unternehmen mit 50–200 Mitarbeitern und einem Umsatz von 1–10 Millionen US-Dollar genutzt. Allerdings hat IBM RUP modifiziert, um sich den agilen Prinzipien anzunähern, und die OpenUP-Methodik veröffentlicht (RUP, aber agil). Diese vielgepriesene agile Methodik bestimmt nun die IT-Welt . Dabei handelt es sich nicht nur um eine vorübergehende Modeerscheinung – es ist immer noch innovativ und wird tatsächlich in vielen großen Unternehmen eingesetzt. Agile wird im Silicon Valley eingesetzt. Facebook und Uber nutzen es.

Das Endergebnis

Jedes Projekt hat seine eigene Softwareentwicklungsmethodik, die vom Team, der Finanzierung, den Fristen und den Kundenanforderungen abhängt. Es gibt keine universelle Managementtechnik: Selbst die äußerst beliebte agile Methodik kann nicht den besten Ansatz für den Entwicklungsprozess gewährleisten. Daher werden die Methoden sorgfältig ausgewählt, manchmal sogar aus Prinzip. So sehr, dass wir anhand der Methodik Rückschlüsse auf ein Unternehmen selbst oder auf seine Kunden ziehen können. Methoden werden gemischt, mit Modellen ergänzt und angepasst. So sehr, dass daraus neue Ansätze entstehen. Allerdings bleibt der Managementbereich letztendlich in den Händen von Scrum und Kanban, mit unerwarteten Elementen des Wasserfallmodells oder der iterativen RUP-Methodik.
Mehr Lektüre:
Websites: Bücher:
  • Andrew Stelman, Jennifer Greene: „Agiles Lernen“;
  • Per Kroll, Bruce MacIsaac: „Agilität und Disziplin leicht gemacht: Praktiken von OpenUP und RUP“;
  • Mike Cohn: „Erfolgreich mit Agile: Softwareentwicklung mit Scrum“;
  • Robert C. Martin: „Agile Softwareentwicklung: Prinzipien, Muster, Praktiken“;
  • Marcus Hammarberg, Joakim Sunden: „Kanban in Aktion“;
  • I. Jacobson, G. Booch, J. Rumbaugh: „Unified Software Development Process“.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION