Als die Software zum ersten Mal entwickelt wurde, passte der Entwicklungsprozess zu keiner Art von Governance. Dann kam der Wasserfall , der die Idee einführte, dass die Softwareentwicklung zum Zeitpunkt der Erstellung oder Erstellung einer Anwendung bestimmt werden kann.
Früher dauerte das Testen und Bereitstellen von Software viel länger als heute, da während des Entwicklungsprozesses kein Gleichgewicht und keine Überprüfungen dazwischen bestanden. Infolgedessen erhielten wir Software von geringer Qualität mit Fehlern und Fehlern, die viel später als die festgelegten Fristen erstellt wurden. Das Hauptaugenmerk lag auf einer langen und langwierigen Projektplanung.
Wasserfalldesigns wurden mit dem Triple-Constraint-Modell verknüpft, auch Projektmanagement-Dreieck genannt. Jede Seite des Dreiecks stellt eine der Einschränkungen des Projektmanagements dar: Skalierung , Zeit und Kosten . Wie Angelo Beretta schreibt , heißt es im Triple-Constraint-Modell: „Kosten sind eine Funktion von Zeit und Volumen, und diese drei Faktoren hängen auf eine bestimmte und vorhersehbare Weise zusammen ... Wenn wir die Vorlaufzeit (Zeit) verkürzen wollen, müssen wir die Kosten erhöhen. Das Modell impliziert auch, dass wir die Kosten oder die Vorlaufzeit erhöhen müssen, wenn wir das Volumen erhöhen wollen. "
Umzug vom Wasserfall zum Agilen
Der Wasserfall kam aus der Produktion und dem Maschinenbau zu uns, die ohne einen linearen Prozess kaum vorstellbar sind. Bevor Sie ein Dach bauen, bauen Sie Wände. Softwareentwicklungsprobleme wurden auch als etwas angesehen, das durch Planung gelöst werden konnte.
Am Ende wurde der Wasserfall als schädlicher Ansatz erkannt, im Gegensatz zum intuitiven Ansatz bei der Softwareentwicklung. Sehr oft konnte der Wert eines Projekts erst am Ende des Projektzyklus ermittelt werden. In vielen Fällen sind Projekte gescheitert. Außerdem sah der Kunde bis zum Ende des Projekts keine funktionierende Software.
Agile impliziert einen anderen Ansatz, der von der Planung des gesamten Projekts abweicht und an geschätzte Daten und Berichte gebunden ist. Die agile Methodik setzt Unsicherheit voraus und berücksichtigt sie. Es ermutigt Sie, auf Veränderungen zu reagieren, anstatt sie zu ignorieren. Veränderungen werden als ein Weg gesehen, um die Kundenbedürfnisse zu erfüllen.
Agile Werte
Agile unterliegt dem Agile Manifest. Hier sind seine 12 Prinzipien :
- Kundenzufriedenheit hat höchste Priorität.
- Sich ändernde Anforderungen werden auch in späteren Entwicklungsstadien gefördert.
- Ein funktionierendes Produkt sollte so oft wie möglich freigegeben werden.
- Entwickler und Unternehmensvertreter müssen zusammenarbeiten.
- Motivierte Fachkräfte sollten an dem Projekt arbeiten.
- Live-Kommunikation ist der praktischste und effektivste Weg, um Informationen auszutauschen.
- Ein funktionierendes Produkt ist der Hauptindikator für den Fortschritt.
- Agile Prozesse tragen zu einer nachhaltigen Entwicklung bei.
- Es ist wichtig, auf technische Exzellenz und gutes Design zu achten.
- Einfachheit ist wichtig.
- Die besten architektonischen Lösungen, Anforderungen und Designideen stammen von selbstorganisierenden Teams.
- Überlegen Sie regelmäßig, wie Sie die Leistung verbessern und Ihren Arbeitsstil anpassen können.
4 Hauptideen von Agile:
- Menschen und Interaktion sind wichtiger als Prozesse und Werkzeuge,
- Ein funktionierendes Produkt ist wichtiger als eine umfassende Dokumentation.
- Die Zusammenarbeit mit dem Kunden ist wichtiger als die Vereinbarung der Vertragsbedingungen.
- Die Bereitschaft zur Veränderung ist wichtiger als die Befolgung des ursprünglichen Plans.
Dieser Ansatz unterscheidet sich stark von einem harten Wasserfall. In Agile ist der Kunde Mitglied des Entwicklungsteams. Am Wasserfall ist er nur am Anfang, bei der Definition der Geschäftsanforderungen und am Ende bei der Betrachtung des Endprodukts beteiligt. In Agile hilft der Kunde dem Team beim Schreiben der Produktakzeptanzkriterien und bleibt während des gesamten Prozesses involviert. Darüber hinaus erfordert Agile von allen Mitgliedern der Organisation Änderungen und kontinuierliche Verbesserungen. Das Entwicklungsteam arbeitet mit anderen Teams zusammen, einschließlich Projektmanagern und Testern. Wer was wann tut, hängt von der zugewiesenen Rolle ab und wird mit dem gesamten Team besprochen.
Agile Software Entwicklung
Agile Softwareentwicklung erfordert adaptive Planung, evolutionäres Design und Lieferung des Endprodukts. Viele Methoden, Strukturen und Praktiken der Softwareentwicklung werden als agil eingestuft, darunter:
- Gedränge
- Kanban ( )
- XP ( )
- Lean
- DevOps
- FDD ( )
- TDD ( )
- Crystal
- DSDM ( )
- ASD ( )
Sie werden alle einzeln oder in Kombination mit anderen Methoden für die Softwareentwicklung und -bereitstellung verwendet. Am häufigsten sind Scrum , Kanban (oder eine Kombination namens Scrumban) und DevOps.
Scrum ist ein Framework, in dem ein Team unabhängig und funktionsübergreifend arbeitet, um die Liefergeschwindigkeit des fertigen Produkts zu erhöhen und das Geschäft des Kunden aufzuwerten. Das Team besteht normalerweise aus einem Scrum Master, einem Produktmanager und Entwicklern. Das Hauptaugenmerk in Scrum liegt auf schnelleren Iterationen mit weniger Verbesserungen .
KanbanIst ein agiles Framework, das manchmal auch als Workflow-Management-System bezeichnet wird. Es hilft dem Team, seine Arbeit zu visualisieren und die Effizienz zu steigern (und dabei agil zu bleiben). Kanban ist normalerweise ein digitales oder physisches Whiteboard. Die Aufgaben des Teams bewegen sich je nach Phase auf dem Brett: Die Aufgabe wurde noch nicht gestartet, wird gerade ausgeführt, getestet und abgeschlossen. Mit Kanban kann jedes Teammitglied den Status von Aufgaben anzeigen.
DevOps-Werte
DevOps ist eine Kultur, eine Denkweise, eine Art der Entwicklung von Software oder Infrastruktur sowie eine Art der Erstellung und Bereitstellung von Software und Anwendungen. Betrieb und Entwicklung sind nicht getrennt; Sie arbeiten gleichzeitig, ohne sich gegenseitig zu stören.
DevOps basiert auf zwei weiteren Bereichen: Lean und Agile. DevOps ist kein Name oder eine Rolle in einem Unternehmen. Dies ist eine Verpflichtung, die eine Organisation oder ein Team in Bezug auf die kontinuierliche Bereitstellung, Bereitstellung und Integration von Produkten eingeht. Laut Jin Kim , Autor von The Phoenix und The Unicorn Project, gibt es drei „Pfade“, die die DevOps-Prinzipien definieren:
- Flussprinzipien,
- Prinzipien des Feedbacks,
- Prinzipien des endlosen Lernens.
DevOps Softwareentwicklung
DevOps ist eine agile Praxis. In seiner wahren Form repräsentiert es eine gemeinsame Kultur und ein gemeinsames Denken über Softwareentwicklung und die Implementierung von Informationstechnologie oder Infrastruktur.
Wenn Sie an Automatisierung, Cloud, Microservices denken, denken Sie an DevOps.
Nicole Forsgren, Jez Humble und Jin Kim haben das Buch Hurry Up! Erstellen und Skalieren von Hochleistungsorganisationen. " In einem Interview erklärten sie, was DevOps ist:
- Effektive Softwarebereitstellung ist wichtig. Dies hat erhebliche Auswirkungen auf Rentabilität, Marktanteil, Qualität, Kundenzufriedenheit, organisatorische Ziele und Mission.
- Unternehmen mit hoher Effizienz erreichen eine hohe Entwicklungsgeschwindigkeit, Stabilität und Qualität. Sie müssen nichts opfern, um all dies zu erreichen.
- Sie können Ihre Leistung verbessern, indem Sie DevOps-Prinzipien und -Praktiken von Lean, Agile implementieren.
- Die Umsetzung dieser Praktiken und Möglichkeiten wirkt sich auch auf Ihre Unternehmenskultur aus. Dies wirkt sich wiederum sowohl auf die Effektivität Ihrer Software als auch auf die Produktivität des Unternehmens aus.
- Es erfordert viel Arbeit, um herauszufinden, wie die Effizienz verbessert werden kann.
DevOps und Agile
Trotz der Ähnlichkeiten sind DevOps und Agile alles andere als dasselbe. Einige argumentieren, dass DevOps besser ist als Agile. Es ist wichtig, der Geschichte auf den Grund zu gehen, um Verwirrung zu vermeiden.
Ähnlichkeiten
- Beides sind Softwareentwicklungsmethoden, mit denen kann man nicht streiten.
- Agile gibt es seit über 20 Jahren, DevOps ist auch relativ neu.
- Beide Ansätze glauben an eine schnelle Softwareentwicklung. Ihre Prinzipien basieren darauf, wie Software schnell entwickelt werden kann, ohne den Kunden oder den Betrieb zu schädigen.
Unterschiede
- , .
- , DevOps, Agile. , Agile , . DevOps, , , . .
- Agile , . DevOps , DevOps . , .
- DevOps , Agile . Agile MVP ( ) .
- Agile — , .
Agile | DevOps |
---|---|
, | |
Agile und DevOps sind verschiedene Dinge, obwohl ihre Ähnlichkeiten viele glauben lassen, dass sie ein und dasselbe sind. Dieses Missverständnis macht Agile und DevOps einen schlechten Dienst.
Ich habe in Agile gearbeitet und aus meiner Erfahrung kann ich sagen, dass es für Teams und Organisationen sehr wichtig ist, zu verstehen, was DevOps und Agile sind. Sie müssen auch verstehen, wie sie Teams dabei unterstützen, schneller und effizienter zu arbeiten, die Produktqualität sicherzustellen und die Kundenzufriedenheit zu verbessern.
Agile und DevOps sind keineswegs Rivalen miteinander (zumindest gibt es noch keine Gründe). Sie sind eher Verbündete als Feinde im agilen Bereich. Agile und DevOps können exklusiv und inklusiv arbeiten, sodass sie im selben Raum existieren können.
Übersetzung: Diana Sheremieva
Erfahren Sie mehr darüber, wie Sie einen hochkarätigen Beruf von Grund auf neu aufbauen oder Ihre Fähigkeiten und Ihr Gehalt verbessern können, indem Sie an den kostenpflichtigen Online-Kursen von SkillFactory teilnehmen:
- DevOps Kurs (12 Monate)
Weitere Kurse
- Machine Learning (12 )
- Data Science (12 )
- (9 )
- «Python -» (9 )