Agile vs Waterfall - Welche Projektmanagement-Methodik zur Auswahl?
Was ist die beste Methodik für die Softwareentwicklung? Die Entscheidung ist nicht immer eine leichte Aufgabe. Hat das Projekt einen Wert für den Kunden, das Geschäft oder weder?
Wir haben diese Faktoren in den Sinn behalten, wir haben uns entschlossen, einen Kopf-zu-Kopf-Vergleich von zwei der am häufigsten verwendeten Software-Entwicklungsmethoden (agile vs-Wasserfall) zu erstellen und zu beurteilen, wo jeder am besten eingesetzt werden kann.
Was ist agil?
Agile ist ein schlanker, moderner Ansatz zur Softwareentwicklung, der im Wesentlichen als Lösungsreaktion auf die Nachteile früherer Methoden erstellt wurde. Angesichts des Namens betont Agile auf frühzeitige Lieferung des Produkts und unterstützt adaptive und flexible Änderungen, die an jedem Punkt im Lebenszyklus des Projekts vorgenommen werden können.
Agile Methodologien enthalten ein breites Spektrum unterschiedlicher Formulare: SCRUM, Extreme Programming (XP), Merkmalsgetriebene Entwicklung (FDD) und Kristall.
9. Globale Projektmanagement-Umfrage 2017, ergab, dass ungefähr 71% der Organisationen agile Ansätze verwenden.
Hauptmechanik der Agile
Der agile Workflow arbeitet in den folgenden Prinzipien:
Iterativer Ansatz -Die Entwicklung ist in kurze Zeit von Frames, die als Iterationen bekannt sind, in den letzten 2-4 Wochen bekannt. Jede Iteration beinhaltet eine funktionsfähige Teamleistung, die sich auf das Abgeben des fertigen Produkts am Ende der angegebenen Zeitbox konzentriert.
Änderungsmanagement -Jede Entwicklungsstufe unterliegt den Fortschrittsüberprüfung und -analyse, um sicherzustellen, dass die Kundenzufriedenheit mit dem Rahmen des Projekts ausgerichtet wird. Änderungen werden ermutigt und ermutigt, wenn sie für Optimierungs- und Verbesserungszwecke erforderlich sind.
Priorisierung -Team arbeitet in vollständiger Harmonie in allen Domains einer Entwicklungsphase: Planung, Gestaltung, Codierung, Prüfung und Bewertung. Jede Teameinheit kommuniziert mit der anderen Einheit, um ihren Fortschrittsbericht zu teilen, und arbeitet kollaborativ zusammen, um bestehende Schlupflöcher- oder unmittelbar bevorstehende Roadblocks zu mildern.
Überprüfen Sie andere agile Artikel auf derUDN-Task-ManagerBlog:
Agile Entwicklungslebenszyklus
Der agile Entwicklungslebenszyklus ist ein Zusammenbruch, den alle in sechs Schritten zusammenarbeiten:
Planen:Sobald das größere Bild für den Umfang des Projekts fertiggestellt ist, wird der Umriss in kleinere, leicht erreichbare Ziele aufgeteilt. Jedes dieser Ziele wird anschließend den Iterationen zugewiesen, die Ziele aufweisen und sich ausschließt.
Analyse:In der Analysephase kommt das Team zusammen, um die Hauptanforderungen des Projekts zu skizzieren. Treffen zwischen den Stakeholdern und Managern werden durchgeführt, um den Zweck und den Demografie der Nutzung des Produkts zu realisieren.
Design:Das Team beginnt mit der Arbeit an Softwaredesign und dem Systemdesign mit den in der Analysephase festgelegten Anforderungen.
Codierung:Dies ist die Implementierungsphase, in der die Entwicklung mit der ersten Iteration beginnt. Merkmale und Aspekte der Entwicklung werden erstellt und dann auf makellose Funktionalität getestet.
Testen:Sobald die Codierung und Entwicklung abgeschlossen ist, wird es dann auf Geschäftsanforderungen und mögliche Fehler getestet. Diese Phase zeichnet sich durch alle Arten von Tests aus, die die Produktionseffizienz, wie beispielsweise Tests, Systemtests, Integrationsprüfungen und Annahmeprüfungen, verbessern können.
Einsatz:Dies ist die letzte Phase eines iterativen Zyklus, in dem das fertige Produkt den Kunden eingesetzt wird. Die Kundenfeedback wird erhalten, und in dem nächsten iterativen Zyklus werden anschließende Änderungen oder Verbesserungen erforderlich, die erforderlich sind.
Beliebte agiles Frameworks und -methoden
Agile ist ein breiter Regenschirm, der mehrere Frameworks und -methoden umfasst, um sie so reibungslos wie möglich umzusetzen. Eine der beliebtesten ist:
1. Scrum
Zweifellos ist einer der beliebtesten agilen Rahmenbedingungen, die von Teams weit verbreitet sind, scrum. Der Rahmen soll Projekte durch iterative und inkrementelles Mittel umgehen. Scrum basiert auf der ständigen systematischen Zusammenarbeit zwischen den Teammitgliedern zwischen dem Projektzyklus.
Es gibt drei große Rollen im Scrum, Scrum Master, Product Inhaber und das Entwicklungsteam.
Lassen Sie uns diese Elemente durchlaufen, um ihre Rolle besser zu verstehen:
Der SCRUM MASTER, der auch als "Facilitator" bekannt ist, hilft dem Team, den Umfang des Projekts zu verstehen und als zentrale Figur in einem Projekt zu fungieren. Seine Hauptaufgaben umfassen das Clearing von Mehrdeutigkeiten, die Teammitglieder in Bezug auf den Projektbereich haben, und entfernen von Hürden, die das Team, das das Team anhält, effizient zu arbeiten.
Ein Produktinhaber ist typischerweise ein wichtiger Stakeholder eines Projekts. Er kommuniziert die Produktvision mit dem Entwicklungsteam und liefert zeitnahes Feedback zu der erledigenden Arbeit. Darüber hinaus ist er auch dafür verantwortlich, die Aufgaben zu priorisieren, die in den Backlog gehen würden.
Das Entwicklungsteam ist das Team, das an allen Entwicklungsarbeiten des Produkts arbeitet. Auch als "Scrum-Team" bekannt, ist es eine funktionsfähige Gruppe, die für die Entwicklung des eigentlichen Produkts oder der Dienstleistung verantwortlich ist.
Abgesehen davon ist der Arbeitszyklus in "Sprints" unterteilt, was in der Regel 2 bis 4 Wochen dauert. Während Sprints finden tägliche Standups statt, um den Fortschritt des Projektfortschritts und die erforderlichen Änderungen zu berichten.
2. Kanban.
Eine weitere der beliebtesten agilen Methoden, die von Teams angenommen wurden, ist Kanban. Diese agile Methodik konzentriert sich darauf, die Arbeit in kleine Teile zu teilen und den Workflow durch Karten auf eine Weise zu visualisieren, die die Identifizierung von Engpässen einfach macht.
Typisch das.Kanban-System.Funktioniert durch das Prinzip der kategorisierenden Arbeit in die jeweiligen Kategorien von "zu tun", "in Bearbeitung" und "Fertig". Sie können die Karten leicht bewegen, um den Fortschritt darzustellen. Es setzt auch die in den laufenden Arbeitsgrenzen (WIP) ein, um die Anzahl der Elemente einzuschränken, die einer bestimmten Spalte hinzugefügt werden können, um den Fokus auf aktuellen Aufgaben nur aufzuhalten.
Kanban ist ein leichtes und flexibles System, das für Projekte am besten geeignet ist, in denen sich die Anforderungen häufig ändern, da die Floating-Karten die schnellen Änderungen des Workflows ermöglichen, und dem Team ein Heads erteilen, was als nächstes kommt.
Überprüfen Sie andere agile Artikel auf derUDN-Task-ManagerBlog:
3. LEAN.
Die magere Methodik von Agile konzentriert sich auf die Beseitigung von Abfällen und bauen effiziente Arbeitsabläufe durch kontinuierliche Verbesserungen des Projektlebenszyklus. Diese Methodik arbeitet vollständig auf dem Prinzip des Hinzufügens des Werts, was den Wert schafft und den Rest entfernen.
'Abfall' bezieht sich hier auf Aufgaben, Meetings, Arbeitsprozesse oder Dokumentationen, die Sie möglicherweise verlangsamen. Beseitigen Sie sie, damit Sie in weniger Zeit mehr erreichen können. Lean-Methodik empfiehlt, drei Feinde von Lean-Muda (Abfälle), Mura (Unebenheiten) und Muri (Überwaldung) zu beseitigen.
Kurz gesehnlich ändert sich schlanke Änderungen, wie Teams ihre Konzentration laser konzentrieren, um die Arbeitsprozesse so weit wie möglich zu optimieren.
4. XP (extreme Programmierung)
Extremes ProgrammierenDie Methodik des agilen Projektmanagements richtet sich an die Verbesserung der Produktqualität und der Reaktionsfähigkeit auf die sich entwickelnden Kundenanforderungen. Die Methodik arbeitet an der Erhöhung der Produktivität von Entwicklern und setzte die Grundregeln bei der Kodierung und des Tests auf.
Einige der Regeln, wenn es um XP geht, sind Benutzergeschichten, Paarprogrammierung, testgesteuerte Entwicklung und mehr. Extreme Programmierung neigt auch zur Freigabe von Software in kurzen Entwicklungszyklen, sodass sie sich entsprechend den Kundenanforderungen einstellen kann.
Die allgemeinen Praktiken der extremen Programmierkonzentration konzentrieren sich auf kontinuierliche Überprüfung und Prüfung im gesamten Projekt, um Fehler und Probleme so aktiv wie möglich zu beheben. Und wenn ordnungsgemäß gefolgt, führen diese Praktiken zu einer höheren Qualitätssoftware.
5. Kristall.
Crystal ist eine der flexibelsten agilen Methoden da draußen. Der Fokus dieser Methodik ist Einzelpersonen und ihre Wechselwirkungen statt Prozesse. Kristall konzentriert sich in erster Linie auf 6 Aspekte, wenn es um Softwareentwicklung geht - Menschen, Interaktionen zwischen ihnen, Gemeinschaft, Kommunikation, Fähigkeiten und Talent.
Die Methodik ist eigentlich eine Familie anderer Methoden wie Kristallklar, Kristallgelb, Kristallorange und andere.
Das Genie hinter dem Crystal, Alistair Cockburn, entwickelte Richtlinien für Teamkollaboration und Teamarbeit anstelle von Schritt-für-Schritt-Entwicklungsstrategien für ein Projekt. Die Methodik unterstützt die Rechenschaftspflicht und der Transparenz der Teams und bietet einen adaptiven Ansatz, um das Team auf sich ändernde Anforderungen effektiv zu reagieren.
6. Merkmalsgetriebene Entwicklung (FDD)
Wie der Name impliziert, befinden sich Merkmale im Herzen dieser agilen Methodik. Die Funktionen in FDD beziehen sich nicht unbedingt auf Produktmerkmale, eher Benutzergeschichten im Scrum. Merkmalsbetriebene Entwicklung besteht aus 5 grundlegenden Aktivitäten - Entwicklung eines Gesamtmodells, dem Aufbau einer Funktionsliste, der Planung mit der Merkmals, der mit der Merkmale und dem Aufbau von Merkmals.
Die Funktionsliste wird in der Regel von der Einzigartigkeit jedes Projektmodells erzeugt, und der Hauptzweck von FDD besteht darin, ein kundenzentrisches Softwareprodukt zu liefern.
FDD fördert auch die Statusberichterstattung auf allen Ebenen, um den Projektfortschritt und die Ergebnisse im Laufe der Zeit im Auge zu behalten. Dies eliminiert auch Verwirrung und übermäßige Nacharbeit zwischen dem Entwicklungsteam.
7. Dynamische Systementwicklungsmethode (DSDM)
DSDM ist ein agiles Rahmen, der eine umfassende Grundlage für die Planung und Ausführung von Softwareentwicklungsprojekten bietet. Die dynamische Systementwicklungsmethode wurde aus der Dynamic Systems entwickelt, um ein Industrie-Standard-Framework für die Bereitstellung von Qualitätssoftware zu erstellen.
Die 8 Grundprinzipien, auf denen DSDM arbeitet, sind:
Als flexibles agiles Framework kann DSDM für IT und Nicht-It-Projekte leicht genutzt werden.
Überprüfen Sie andere agile Artikel auf derUDN-Task-ManagerBlog:
Was ist das Wasserfallmodell?
Aus dem Jahr 1970 zurückgehen,Wasserfallist eine traditionelle Methode der Softwareentwicklung, die in einem sequentiellen Format der Entwicklung fungiert. Es beinhaltet einen schrittweisen Fortschreiten des Prozesses, bei dem jede Phase linear verläuft und es leicht zu verwalten und zu verstehen.
Laut einem von Gartner veröffentlichten Bericht im Jahr 2015, 56% der Projektverwaltungsmethoden, die aus der Wasserfallmethodik bestehen.
Hauptmechanik, auf dem das Wasserfallmodell arbeitet
Das Wasserfallmodell arbeitet in den folgenden Prinzipien:
Verschiedene Ziele:Der langfristige Umfang des Projekts wird bestimmt, bevor die Entwicklung beginnt. Die Projektmanager, Stakeholder und Kunden müssen alle eine klare Sichtweise haben, was das Endprodukt sich formt.
Zeitbox:Jede Phase ist eine feste Zeitdauer bezeichnet. Sobald die Phase abgeschlossen ist, wird es einfriert, sodass kein Rückkehrpfad zum vorherigen Schritt vorliegt.
Unabhängige Arbeitsweise:Jedes Team für eine bestimmte Domäne, arbeitet an einzelnen Zielen mit wenig oder keine Zusammenarbeit mit den Teams, die in anderen Einheiten arbeiten.
Schlüsselaspekte der Wasserfallmethodik
DieWasserfall-Workflow.Kann in den folgenden Schritten visualisiert werden:
Anforderungen:Ähnlich wie Agiles ist dies die erste Phase, die alle technischen und nicht-technischen Anforderungen des Projekts in einem anforderungsspezifischen Dokument in Anspruch genommen hat. Diese Anforderungen sind strikt dauerhaft, die die Rolle und Outlook des Endprodukts definieren.
Analyse:Das Team führt eine Analyse der Systeme und Techniken durch, die zur Durchführung der Produktentwicklung verwendet werden.
Design:Designspezifikationen wie Dienste, Programmiersprachen und Datenschichten werden ermittelt und abgeschlossen.
Codierung:In Bezug auf die Anforderungen, Analyse und Ziele, die in den bisherigen Bühnen erstellt wurden, schreibt das Entwicklungsteam den Quellcode in der vierten Stufe.
Testen:In dieser Phase beginnen alle Arten von Testern, die abgeschlossene Version des Produkts für eine beliebige Anzahl von Fehlern und Fehler zu testen.
Operationen:Die Betriebsphase ist für die Bereitstellung der vollständigen und getesteten Version des Produkts in den Markt verantwortlich.
Agile vs Waterfall Pros & Amp; Verhältnis
Da Agile eine zeitgenössische Software-Entwicklungsmethodik ist, ist es unzählige Vorteile und Vorteile für IT-Teams, die sich dafür entscheiden, sie als ihre primäre Methodik zu verwenden.
In einem (n HP Online-Umfrage von 601 Entwicklungs- und IT-Fachkräften , 54% der Befragten erklärten, dass sie nach der Annahme von agilen Methoden die verbesserte Zusammenarbeit zwischen den Teams erlebten, die nicht anders existierten. 43% sagten, dass die Zeit, die auf den Markt gebracht wurde, massiv reduziert wurde.
Nicht alle Projekttypen und Szenarien mit den liberalen Merkmalen agiler.
Schauen wir uns sowohl die Vor- und Nachteile agil an.
Dies ist der wichtigste Vorteil von agil. Wenn die Entwicklung in Iterationen erfolgt, hat das Team einen flexiblen Zugriff, um zur vorherigen Stufe zurückzukehren, um die Sortierung und Größe der Änderungen vorzunehmen.
Da ein agiles Projekt in kurzen Iterationszyklen arbeitet, kann es der Projekt-Timeline schwer, ein definiertes Fälligkeitsdatum zuzuweisen.
Die in kleineren Chunks ausgeführten Arbeiten ermöglicht es Teammitgliedern, rechtzeitig zu enden. Da die Codierung und Prüfung synchron mit der Plan- und Designphase der Entwicklung durchgeführt wird, werden alle Änderungen und Verbesserungen mit dem sich bewegenden Workflow geschickt.
Dies erhöht die Wahrscheinlichkeit eines frühen Produkts auch.
Korrekturen und Verbesserungen, die an jedem Zyklus vorgenommen wurden, fügen eine zusätzliche Arbeit der Entwicklungsteam hinzu. Dies führt zu einem zusätzlichen Zeitpunkt, wenn das Engagement und die Kompetenz von den Mitgliedern des Entwicklungsteams nicht ausgestellt werden.
Kundenfeedback am Ende jedes iterativen Zyklus ermöglicht die gleiche Kundenbeteiligung an dem Ergebnis und dem Design des Produkts.
Da agile Teams für die engstrick-Kommunikation errichtet werden, müssen alle Teammitglieder jederzeit während der Arbeit in unmittelbarer Nähe sein, um dieses Kommunikationsniveau effektiv zu tragen.
Agile fördert Teams, um zusammenzuarbeiten, indem sie eine Ausrichtung mit ihren Zielen und Zielen zusammenstellen. Die transparente und häufige Kommunikation zwischen verschiedenen Teameinheiten ermöglicht ein stärkeres Produktivitätsgrad und löscht Chancen eines Konflikts.
Da Agile das Projekt nicht durchsetzt, um zu Beginn einen strengen Umriss zu haben, kann das Endergebnis des Produkts, um sich als völlig unerwartet zu gestalten, und von dem, was der anfängliche geschäftliche Anforderung war, völlig anders ist.
Agile erleichtert einen konstanten Raum zur Verbesserung. Am Ende jeder Iteration wird das fertige Produkt auf Schlupflöcher getestet und nach Abschluss jedes Testzyklus zur Verbesserung gebracht.
Die Verbesserungen sind auch ein kontinuierlicher Teil der Entwicklung, da die Kundenfeedback im gesamten Projektlebenszyklus abgerufen wird.
Da Fortschritte über Zyklen in Agile passiert, wird es schwierig, die Leistung zu messen. Sie können nicht zu Beginn des Projekts viel definitiven KPIs einstellen, sodass Sie nicht wissen, worauf Sie während des Projektlebenszyklus aufpassen sollen.
Agile unterstützt sich entwickeln, um Ideen und Entscheidungen zu entwickeln, um in das Umfangs- und Entwicklungsfenster des Projekts zu passen. Dies ist besonders vorteilhaft für Software-Apps und -werkzeuge, die kein definiertes Endziel aufweisen und Änderungen, die auf Kundenerfahrung basieren, unterzogen werden.
Da es am Ende des Projekts kein eingestelltes Ziel gibt, wird es zu einer Herausforderung, die zu Beginn des Projekts erforderlichen Ressourcen genau vorherzusagen.
Die Unfähigkeit, die Kosten zu bestimmen, Time und Ressourcen zu entscheiden, führt zu einer schlechten Ressourcenplanung und dürfen ein größeres Problem sein, sobald das Projekt fortschreitet.
Seitdem, seit agil, in den Rampellicht trat, ist die Wasserfall-Methodik nun weitgehend hacknediert, aber der lineare Ansatz zur Softwareentwicklung hat immer noch eine Reihe von Vorteilen, die für sich selbstverständlich sind.
Hier sind ein Satz von Vor- und Nachteilen der Wasserfallmethodik: