JavaRush /Java-Blog /Random-DE /Alles, was Sie über Softwareentwicklungsmethoden wissen m...

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 die IT die Sprache der Optimierung, Planung und Kalkulation sprechen muss. Alles, was Sie über Softwareentwicklungsmethoden wissen müssen: Trends, Prinzipien und Fallstricke für Anfänger – 1Das Verständnis von Managementkonzepten bietet sowohl Arbeitgebern als auch Entwicklern einen großen Vorteil und trägt dazu bei, die Zusammenarbeit auf die nächste Ebene zu heben.

Hinweis für Anfänger: Modelle, Methoden und allgemeine Verwirrung

Zunächst eine wichtige Klarstellung: Es gibt separate Modelle für die Softwareentwicklung und eine separate Methodik für genau diese Entwicklung. Modelle sagen das zukünftige Verhalten eines Systems voraus. Es sind Methoden erforderlich, damit das System so funktioniert, wie es benötigt wird. Die Verwechslung von Softwareentwicklungsmodellen und -methoden ist die heilige Aufgabe eines jeden IT-Anfängers, daher ist dies kein grober Fehler. Und doch handelt es sich bei den Modellen um klassische Wasserfallmodelle mit ihrer Linearität, der klaren Zielsetzung für jede Phase und der strengen Kontrolle der Fristen. Bei den Modellen handelt es sich um Spiral- Modelle , deren Schwerpunkt auf der Früherkennung und Minderung von Projektrisiken liegt. Die Spiralentwicklung beginnt im Kleinen und löst zunächst lokale und dann komplexere Probleme. Das endgültige Modell ist IID , das den Projektlebenszyklus in eine Folge von Iterationen unterteilt, von denen jede einem „Miniprojekt“ ähnelt. Im Allgemeinen ist ein Modell etwas, das den Softwareentwicklungsprozess beschreibt . Aber Methoden sind Systeme zur Steuerung, Bewertung und Überwachung der Arbeit an zugewiesenen Aufgaben. Methoden sind das Zuckerbrot und die Peitsche der modernen Entwicklung, die zur Steuerung jedes Glieds des Entwicklungsprozesses benötigt werden. Sie werden basierend auf der Ausrichtung des Projekts, seinem Budget und dem Zeitplan des Endprodukts ausgewählt. Darüber hinaus können Methoden basierend auf dem Temperament des Projektmanagers und seines Teams ausgewählt werden. Auch basierend auf der Philosophie des Unternehmens oder des Kunden. Schauen wir uns die beliebtesten Methoden an.

1. Scrum-Methodik

Scrum ist eine agile Projektmanagementmethode . Es basiert auf „Sprints“ – kurzen Iterationen, die zeitlich streng begrenzt sind (normalerweise 2-4 Wochen). Die Dauer der Treffen wird auf ein Minimum reduziert, ihre Häufigkeit nimmt jedoch zu. Jeder Sprint besteht aus einer Liste von Aufgaben bis zum Ende der Iteration, und jede davon hat ihr eigenes „Gewicht“. Bei Besprechungen bespricht das Team, wer was getan hat, was es tun wird und welche Probleme es gibt. Scrum nutzt zur Planung ein Sprint-Journal. Bei diesem Ansatz tritt häufig ein Scrum-Master im Team auf, der die kontinuierliche Arbeit des gesamten Teams festlegt und angenehme Bedingungen dafür schafft. Im Projekt erscheint auch die Rolle des Product Owners – der Entwicklungsmanager, die Person, die das Produkt überwacht und als Hauptverbindung zwischen der Kundenanfrage und dem Ergebnis des Teams fungiert.

Vorteile:

  • schneller Projektstart mit möglichst geringem Budget;
  • tägliche Überwachung des Arbeitsfortschritts, häufige Demonstrationen des Projekts;
  • die Fähigkeit, im Verlauf des Projekts Änderungen vorzunehmen.

Nachteile:

  • Schwierigkeiten beim Vertragsabschluss aufgrund des Fehlens eines festen Budgets;
  • arbeitet nicht mit geringer Qualifikation des Teams, unterschätzten Arbeitsfristen oder Budget;
  • Die Möglichkeit, zwischen Sprints ständig Änderungen vorzunehmen, kann Verwirrung stiften.

Für wen ist es geeignet:

Dieses System eignet sich für Projekte mit bis zu zehn Personen – unabhängig oder innerhalb großer Unternehmen. Dies ist praktisch, wenn das Team einen großen Arbeitsaufwand und einen langen Lebenszyklus hat, was es dazu zwingt, sich zu ändern und an neue Marktbedingungen anzupassen.

2. Kanban-Methodik

Das wichtigste Merkmal von Kanban ist die Visualisierung des Projektlebenszyklus . Für die Erledigung einzeln eingereichter Aufgaben werden Spalten erstellt. Die Spalten sind mit Markierungen wie „Zu erledigen“, „In Bearbeitung“, „Codeüberprüfung“, „Im Test“ und „Fertig“ gekennzeichnet (die Namen der Spalten können sich natürlich ändern). Das Ziel jedes Teammitglieds besteht darin, die Anzahl der Aufgaben in der ersten Spalte zu reduzieren. Der Kanban-Ansatz ist visuell und hilft Ihnen zu verstehen, wo das Problem liegt. Die Kanban-Struktur ist nicht endgültig und unwiderruflich festgelegt: Abhängig von den Besonderheiten des Projekts können improvisierte Spalten hinzugefügt werden. Einige Teams verwenden beispielsweise ein System, bei dem sie Kriterien für die Bereitschaft einer Aufgabe definieren müssen, bevor sie diese ausführen. Dann werden zwei Spalten hinzugefügt – angeben (Parameter angeben) und ausführen (mit der Arbeit beginnen).

Vorteile:

  • Planungsflexibilität. Das Team konzentriert sich nur auf die aktuelle Arbeit, auch die Priorität der Aufgabe wird festgelegt;
  • Sichtweite. Wenn alle Akteure Zugriff auf Daten haben, sind globale Probleme leichter zu erkennen;
  • hohe Einbindung in den Entwicklungsprozess. Prozessvisualisierung steigert die Selbstorganisation und Selbstkontrolle.

Nachteile:

  • arbeitet nicht mit Teams von mehr als fünf Personen;
  • nicht für eine langfristige Planung gedacht;
  • ungeeignet für die Arbeit im Team ohne Motivation. Bei Kanban sind für jede Aufgabe keine Fristen festgelegt und die Methodik sieht keine Strafen für Verzögerungen vor.

Für wen ist es geeignet:

Kanban funktioniert hervorragend in Unternehmen, in denen das Team motiviert ist, sich zu entwickeln und Ergebnisse zu erzielen. Wie man schon sieht, ein kleines Team. Vielleicht sogar eine Abteilung oder ein Teil eines Teams.

3. RUP-Methodik

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 über eine temporäre, aber funktionierende Version des Projekts verfügen. Bei RUP wird das Projekt in vier Phasen unterteilt , in denen jeweils an einer neuen Generation des Produkts gearbeitet wird: Projektinitiierungsphase, Verfeinerung, Konstruktion und Implementierung. Am Ende der Phase wird eine Etappenabschlussmarkierung (Projektmeilenstein) eingetragen. Als Projektmeilenstein gilt der Moment, in dem das Team die erzielten Ergebnisse bewertet. Die Methodik impliziert daher, dass die Hauptfunktionen in der ersten Phase veröffentlicht und Ergänzungen in den nachfolgenden Phasen hinzugefügt werden.

Vorteile:

  • ermöglicht es Ihnen, sich ändernde Aufgaben sowohl vom Kunden als auch während der Arbeit zu bewältigen;
  • sorgt für eine kontinuierliche Verbesserung des Produkts. Während der Iterationen kann das Design unter die Lupe genommen werden;
  • ermöglicht es Ihnen, Risiken in den frühen Phasen der Arbeit zu erkennen und zu beseitigen sowie die Qualität der Entwicklung effektiv zu kontrollieren.

Nachteile:

  • eine ziemlich komplexe Methode, die mit einem kleinen Team oder Unternehmen nur schwer umzusetzen ist;
  • Abhängigkeit von der Fähigkeit von Experten, Aufgaben zu stellen;
  • erfordert eine übermäßige Dokumentation der Anforderungen.

Für wen ist es geeignet:

Große Projekte mit klar definierten Anforderungen und definierten Risiken, bei denen das Produkt so schnell wie möglich freigegeben werden muss. Auch auf Kosten der Funktionalität, um schnell seine Nische zu besetzen und erst dann die Nuancen zu verfeinern.

Viele Methoden, ein Trend

Neben dem unbestreitbar beliebten Scrum und Kanban, die unter dem Sammelnamen „Agile“ auf den Prinzipien der Flexibilität basieren , sowie dem hartnäckigen iterativen RUP arbeiten Unternehmen mit vielen Variationen von Methoden. Manche Menschen bevorzugen extreme Programmierung und das Treffen der schnellsten und einfachsten Entscheidungen, andere bevorzugen testgetriebene Entwicklung und andere bevorzugen Rapid Application Development (RAD). Gleichzeitig besteht der wichtigste und unbedingte Trend in der gleichzeitigen Verwendung mehrerer Methoden . Oder sogar Modelle und Methoden zu einem einzigartigen Kontrollsystem kombinieren. Alles, was Sie über Softwareentwicklungsmethoden wissen müssen: Trends, Prinzipien und Fallstricke für Anfänger – 2Moderne Unternehmen streben danach, bürokratische Hürden abzubauen und eine Atmosphäre allgemeiner Teamarbeit innerhalb der Organisation zu schaffen, ohne die Verantwortung zwischen Abteilungen und Blöcken zu verlagern. Laut dem Scrumalliance-Bericht nutzen 70 % der IT-Unternehmen Scrum. Darunter sind Giganten wie Google, Amazon, Salesforce, Microsoft, Adobe. Startups und junge Projekte neigen eher zu Kanban, es wird aber auch von Toyota und beispielsweise Gamern von Wargaming genutzt. Die kleineren CIS-Unternehmen Prom.ua, Bigl.ua und Kabanchik.ua verwenden gleichzeitig Scrum- und Kanban-Methoden, jedoch für unterschiedliche Aufgaben. Scrum – als Planungstool, Kanban – zur Überwachung des Arbeitsfortschritts. Was RUP betrifft, so wird es am häufigsten von westlichen Unternehmen mit 50–200 Mitarbeitern und einem Umsatz von 1–10 Millionen Dollar praktiziert. Aber gleichzeitig änderte IBM RUP, um sich den Agile-Prinzipien anzunähern, indem es die OpenUP-Methodik veröffentlichte – „RUP, only agile“. Dieselbe gepriesene agile Agilität beherrscht jetzt die IT-Landschaft . Es ist heutzutage keine Modeerscheinung, sondern immer noch innovativ und funktioniert tatsächlich in vielen großen Unternehmen. Agile wird im Silicon Valley eingesetzt und von Facebook und Uber genutzt.

Endeffekt

Jedes Projekt verfügt über eine eigene Softwareentwicklungsmethodik, abhängig vom Team, der Finanzierung, dem Zeitplan und den Kundenanforderungen. Es gibt keine universelle Managementtechnologie: Selbst die äußerst beliebte Agile-Technologie kann nicht den besten Ansatz für den Entwicklungsprozess bieten. Daher wird die Methodik sorgfältig und manchmal sogar grundlegend ausgewählt. So sehr, dass man daraus Rückschlüsse auf das Unternehmen selbst oder seine Kunden ziehen kann. Methoden werden gemischt, mit Modellen ergänzt und individuell angepasst. So sehr, dass daraus neue Ansätze entstehen. Obwohl der Managementbereich letztendlich in den Händen von Scrum und Kanban bleibt, mit unerwarteten Einbeziehungen des Wasserfallmodells oder des iterativen RUP.
Was gibt es sonst noch zu lesen?
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: Scrum. Agile Entwicklung";
  • Robert K. Martin: „Schnelle Softwareentwicklung. Prinzipien, Beispiele, Praxis“;
  • Markus Hammarberg, Joakim Sundén: „Kanban in Aktion“;
  • A Jacobson, G. Booch, J. Rumbaugh: „Ein einheitlicher Softwareentwicklungsprozess.“
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION