Agile Softwareentwicklung vs. Wasserfall Softwareentwicklung
Es gibt keine einheitliche Methodik, die Sie auf alle Projekte anwenden können. Allerdings bewegen sich viele Teams bei der Entwicklung von Software weg von der vorausschauenden Wasserfall-Methode hin zu einer adaptiven Methodik wie Agile. Die herkömmliche Wasserfall-Entwicklungsmethode folgt strengen Phasen und hält sich an den ursprünglichen Anforderungs- und Designplan, der zu Beginn des Projekts erstellt wurde. Ein Projektmanager verbringt viel Zeit mit der Aushandlung von Meilensteinen, Funktionen und Ressourcen und arbeitet ausführlich an der Planung eines Projekts, wobei er in der Regel einen umfassenden Projektplan entwickelt, in dem detailliert festgelegt ist, wie die Arbeit bis zur Fertigstellung durch die vielen Tore geführt werden soll.
死Kunden legen死Anforderungen电影节,bevor死亡Entwicklung beginnt, und dann beginnt ein langwieriger Entwicklungsprozess, bei dem der Projektmanager jede Bewegung des Projekts bei jeder Übergabe und schließlich bei der Auslieferung verfolgt. Wenn alles gut läuft, führt dieser Prozess zu einer pünktlichen und budgetgerechten Veröffentlichung. Die Hauptnachteile dieses Ansatzes sind gut dokumentiert: Er ist nicht anpassungsfähig und es dauert lange, bis eine funktionierende Software geliefert wird. Wenn die Technologie das Spielfeld bildet und jede Änderung vorantreibt, wird ein sechsmonatiger (oder längerer) Release-Zyklus mit in Stein gemeißelten Anforderungen den geschäftlichen Anforderungen nicht gerecht.
Der Verlauf der Agilen Softwareentwicklung ist geprägt von der Frustration über die traditionelle Wasserfall-Methodik. Agile wurde entwickelt, um dem Wandel und der Notwendigkeit einer schnelleren Softwareentwicklung Rechnung zu tragen (wie in den Werten und Grundsätzen desAgilen Manifestsbeschrieben). Der Projektleiter erleichtert in der Regel die Arbeit des Entwicklungsteams, beseitigt Engpässe und hilft dem Team, konzentriert zu bleiben, um regelmäßig Wiederholungen der Software zu liefern. Dabei geht es weniger um Meilensteine als um Stunden, die Auswahl von Funktionen, die Priorisierung und Besprechungen.
Im Gegensatz zum Wasserfall-Modell entscheidet das Entwicklungsteam zu Beginn eines Sprints (oder einer Wiederholung), was in diesem Zeitrahmen erreicht werden kann, und macht sich daran, eine Reihe von Funktionen zu entwickeln, um am Ende des Sprints eine funktionierende Software zu liefern, die in einer Produktionsumgebung installiert werden kann. Da Agile Softwareentwicklungsmethoden (wie z. B. die Dynamic Systems Development Method – DSDM) flexibel sind, eignen sich die meisten von ihnen für eine maßgeschneiderte Methode, bei der die Entwicklungsteams den Ablauf an die Bedürfnisse des Produkts anpassen können.
Der Agile Lebenszyklus
Es gibt eine Vielzahl von Methoden für die Agile Softwareentwicklung (oder Systementwicklung), einschließlich, aber nicht beschränkt auf
- Disziplinierte Agile Entwicklung (DAD)
- Adaptive Softwareentwicklung
- Agile Modellierung
- Kanban
- Scrum
- Scrumban
- Extreme Programmierung (XP)
- Dynamische Systementwicklung (DSDM)
- Feature-gesteuerte Entwicklung
- Softwareentwicklung
Das übergeordnete Ziel jeder Agilen Methode ist es, sich an Veränderungen anzupassen und so schnell wie möglich funktionierende Software zu liefern. Die einzelnen Methoden unterscheiden sich jedoch leicht in der Art und Weise, wie sie die Phasen der Softwareentwicklung definieren. Und auch wenn das Ziel dasselbe ist, kann der Prozessablauf jedes Teams je nach Projekt oder Situation variieren. Der vollständige Lebenszyklus der Agilen Softwareentwicklung umfasst zum Beispiel die Phasen Konzept, Inception, Konstruktion, Release, Produktion und Ausmusterung.
Der Agile Prozessablauf
- Konzept– Projekte werden ins Auge gefasst und mit Prioritäten versehen
- Anfang– Teammitglieder werden identifiziert, die Finanzierung wird sichergestellt und erste Umgebungen und Anforderungen werden diskutiert
- Iteration/Konstruktion– Das Entwicklungsteam arbeitet daran, auf der Grundlage der Anforderungen der Wiederholung und des Feedbacks funktionierende Software zu liefern
- Freigabe– QA-Tests (Qualitätssicherung), interne und externe Schulungen, Entwicklung der Dokumentation und endgültige Freigabe der Wiederholung in die Produktion
- Produktion– Laufende Unterstützung der Software
- Auslauf– End-of-Life-Aktivitäten, einschließlich Benachrichtigung des Kunden und Migration
Diese Ansicht stellt das vollständige Modell des Agilen Lebenszyklus im Unternehmen dar. In jedem Unternehmen kann es Projekte geben, die gleichzeitig laufen, mehrere Sprints/Wiederholungen, die für verschiedene Produktlinien protokolliert werden, und eine Vielzahl von Kunden, sowohl externe als auch interne, mit einer Reihe von Geschäftsanforderungen.
Agile Softwareentwicklung – Lebenszyklus
Agile Software Development Workflow
The Agile software development lifecycle is dominated by the iterative process. Each iteration delivers the next piece of the development puzzle: software and supporting elements (e.g. documentation) available for use by customers, until the final product is complete. Each iteration is usually two to four weeks in length and has a fixed completion time. The iteration process is methodical and the scope of each iteration is only as broad as the allotted time allows.
Multiple iterations will take place during the Agile software development lifecycle and each follows its own workflow. During an iteration, customers and business stakeholders provide feedback to ensure that the features meet their needs.
A typical iteration process flow can be visualized as follows:
- Requirements:Define the requirements for the iteration based on the product backlog, sprint backlog, and customer and stakeholder feedback.
- Development:Design and develop software based on defined requirements.
- Testing:Quality assurance (QA) testing, internal and external training, documentation development.
- Delivery:Integrate and deliver the working iteration into production.
- Feedback:Review customer and stakeholder feedback and work it into the requirements of the next iteration.
Agile Software Development Workflow Diagram
While you may feed additional features into the product backlog throughout the project, the rest of the process repeats until the product backlog has been cleared. As a result, the Agile software development process flow is a loop rather than a linear process.
Agile Scrum Workflow
The flow of work in Scrum is directed via a series of meetings, as described below:
Sprint planningis used to choose the work that will be incorporated into an upcoming Sprint based on the product backlog.
Adaily Scrumis a short meeting where each participant answers the following questions:
- What work did you do yesterday?
- What work will you do today?
- What obstacles are in your way?
The Scrum master, who manages the meetings, uses the data gathered to update the burndown chart and look for ways to remove the obstacles that were identified.
A冲刺评审is a meeting at the end of each Sprint to evaluate what was completed and to review the product backlog and determine what still needs to be done. Reviews focus on the product.
Finally, thesprint retrospectivemeeting at the end of each Sprint which covers what worked well and what can be improved. Retrospectives focus on the process.
You can read more aboutScrum in our comprehensive guide.
Making the Agile Process Work for You
As with any methodology, there are advantages and disadvantages (Read about the advantages and disadvantages of Agile). The Agile method is more suitable in situations where customers and project stakeholders are available to provide input, functional portions of software are needed quickly, flexibility is desired to accommodate changing requirements, and the team is co-located and able to collaborate effectively.
As with any change, integrating Agile processes into your business can be overwhelming. Here are four activities that will help support the adoption of Agile workflow:
- Daily Meetings:Host consistent or daily stand-up meetings to maintain open communication, hold workers accountable, and keep each iteration moving forward.
- Live Demonstrations:Deliver live demonstrations of each iteration’s final product to show progress.
- Share Feedback:Receive feedback from stakeholders and customers and share it with the entire team before the next iteration begins.
- Remain Agile:Make changes to your process based on feedback to ensure each iteration improves the last.
Streamline the Agile Software Lifecycle with Smartsheet for Project Management
From simple task management and project planning to complex resource and portfolio management, Smartsheet helps you improve collaboration and increase work velocity -- empowering you to get more done.
The Smartsheet platform makes it easy to plan, capture, manage, and report on work from anywhere, helping your team be more effective and get more done. Report on key metrics and get real-time visibility into work as it happens with roll-up reports, dashboards, and automated workflows built to keep your team connected and informed.
当团队有清晰的工作完成, there’s no telling how much more they can accomplish in the same amount of time.Try Smartsheet for free, today.