Agile Software Entwicklung

Im Software-Entwicklung, agil (manchmal geschrieben Agil)[1] Zu den Praktiken gehören Anforderungen zur Entdeckung und Lösungen durch die Zusammenarbeit von der Zusammenarbeit von Selbstorganisierung und funktionsübergreifend Teams mit ihren Kunden)/Endverbraucher),[2] Adaptive Planung, evolutionäre Entwicklung, frühe Lieferung, ständige Verbesserung, und flexible Reaktionen auf Änderungen der Anforderungen, Kapazitäten und des Verständnisses der zu lösenen Probleme.[3][4]

Populär in der 2001 Manifest für agile Softwareentwicklung,[5] Diese Werte und Prinzipien wurden aus einem breiten Spektrum von abgeleitet und untermauert Softwareentwicklungsrahmen, einschließlich Gedränge und Kanban.[6][7]

Während es viel gibt anekdotische Beweise Die Einführung agiler Praktiken und Werte verbessert die Effektivität von Softwareprofis, Teams und Organisationen, die empirischen Beweise sind gemischt und schwer zu finden.[8][9]

Geschichte

Iterative und inkrementelle Softwareentwicklungsmethoden kann bereits 1957 zurückverfolgt werden,[10] mit evolutionärem Projektmanagement[11][12] und Adaptive Softwareentwicklung[13] In den frühen 1970er Jahren auftauchen.[14]

In den 1990er Jahren eine Reihe von Leicht Softwareentwicklungsmethoden entwickelten sich als Reaktion auf die vorherrschenden Schwergewicht Methoden (oft kollektiv als als Wasserfall) die Kritiker als übermäßig reguliert, geplant und bezeichneten mikromaniert.[15] Diese leichten Methoden waren: Schnelle Anwendungsentwicklung (Rad), ab 1991;[16][17] das einheitlicher Prozess (Auf und Dynamische Systementwicklungsmethode (DSDM), beide ab 1994; Gedrängeab 1995; Kristallklar und extremes Programmieren (XP), beide ab 1996; und Feature-Trien-Entwicklung (FDD), ab 1997. Obwohl diese alle vor der Veröffentlichung des Agiles ManifestSie werden jetzt gemeinsam als agile Softwareentwicklungsmethoden bezeichnet.[7]

Bereits seit 1991 waren in der Fertigung ähnliche Veränderungen im Gange gewesen[18][19] und Managementdenken[20] abgeleitet von Schlankes Management.

Im Jahr 2001 trafen sich siebzehn Softwareentwickler in einem Resort in Snowbird, Utah Diskussion von leichten Entwicklungsmethoden. Sie sind: Kent Beck (Extremes Programmieren), Ward Cunningham (Extremes Programmieren), Dave Thomas (Pragprog, Ruby), Jeff Sutherland (Gedränge), Ken Schwaber (Gedränge), Jim Highsmith (Adaptive Softwareentwicklung), Alistair Cockburn (Kristall), Robert C. Martin (FEST), Mike Beedle (Scrum), Arie van Bennekum, Martin Fowler (Ooad und Uml), James Grenning, Andrew Hunt (Pragprog, Ruby), Ron Jeffries (Extreme Programmierung), Jon Kern, Brian Marick (Ruby, TDD) und Steve Mellor (OOA). Zusammen veröffentlichten sie die Manifest für agile Softwareentwicklung.[5]

Im Jahr 2005 schrieb eine Gruppe unter der Leitung von Cockburn und Highsmith ein Nachtrag von Projektmanagement Prinzipien, die PM -Erklärung der gegenseitigen Abhängigkeit,[21] Leitfaden für das Software -Projektmanagement nach agilen Softwareentwicklungsmethoden.

Im Jahr 2009 schrieb eine Gruppe mit Martin eine Erweiterung von Software-Entwicklung Prinzipien, die Software Craftsmanship Manifesto, um agile Softwareentwicklung nach Fachmann Verhalten und Beherrschen.

Im Jahr 2011 schuf die Agile Alliance die Leitfaden für agile Praktiken (Umbenannt in die Agiles Glossar im Jahr 2016),,[22] Ein weiterentwickeltes Open-Source-Kompendium der Arbeitsdefinitionen agiler Praktiken, Begriffe und Elemente sowie Interpretationen und Erfahrungsrichtlinien der weltweiten Gemeinschaft agiler Praktiker.

Das Manifest für agile Softwareentwicklung

Agile Softwareentwicklungswerte

Basierend auf ihrer kombinierten Erfahrung mit der Entwicklung von Software und der Unterstützung anderer erklärten die Autoren des Manifests, dass sie schätzten:[5]

  • Individuen und Interaktionen Über Prozesse und Werkzeuge
  • Arbeitssoftware Über umfassende Dokumentation
  • Kundendienstumarbeit über Vertragsverhandlungen
  • Reaktion auf Veränderung Über einen Plan folgen

Das heißt, obwohl beide Seiten einen Wert haben und die Elemente rechts in Betracht gezogen werden sollten, waren die Autoren der Ansicht, dass die linken Gegenstände mehr Einfluss darauf haben sollten, wie Menschen sich ihrer Arbeit nähern.

Wie Scott Ambler erklärt:[23]

  • Werkzeuge und Prozesse sind wichtig, aber es ist wichtiger, dass kompetente Menschen effektiv zusammenarbeiten.
  • Eine gute Dokumentation ist nützlich, um Menschen zu verstehen, wie die Software erstellt wird und wie sie verwendet werden soll. Der Hauptpunkt der Entwicklung besteht jedoch darin, Software und nicht die Dokumentation zu erstellen.
  • Ein Vertrag ist wichtig, ist jedoch kein Ersatz für die enge Zusammenarbeit mit Kunden, um herauszufinden, was sie brauchen.
  • Ein Projektplan ist wichtig, darf jedoch nicht zu starr sein, um Änderungen in der Technologie oder der Umwelt, der Prioritäten der Stakeholder und dem Verständnis der Menschen für das Problem und seine Lösung zu berücksichtigen.

Einige der Autoren bildeten die Agile Alliance, eine gemeinnützige Organisation, die die Softwareentwicklung gemäß den Werten und Prinzipien des Manifests fördert. Einführung des Manifests im Namen der agilen Allianz, Jim Highsmith sagte,

Die agile Bewegung ist keine Anti-Methodologie, in der Tat wollen viele von uns die Glaubwürdigkeit der Wortmethodik wiederherstellen. Wir wollen ein Gleichgewicht wiederherstellen. Wir umfassen Modellierung, aber nicht, um ein Diagramm in einem staubigen Unternehmensrepository einzureichen. Wir umfassen Dokumentation, aber nicht Hunderte von Seiten von nie gepflegten und selten verwendeten Büchern. Wir planen, erkennen aber die Planungsgrenzen in einer turbulenten Umgebung. Diejenigen, die Befürworter von XP oder Scrum oder einer der anderen agilen Methoden als "Hacker" brandmarken würden, kündigen sowohl die Methoden als auch die ursprüngliche Definition des Begriffs Hacker.

-Jim Highsmith, Geschichte: Das agile Manifesto[24]

Agile Softwareentwicklungsprinzipien

Das Manifest für agile Softwareentwicklung basiert auf zwölf Prinzipien:[25]

  1. Kundenzufriedenheit durch frühzeitige und kontinuierliche Lieferung wertvoller Software.
  2. Willkommen ändernde Anforderungen auch in der späten Entwicklung.
  3. Liefern Sie die Arbeitssoftware häufig (Wochen und nicht Monate).
  4. Enge, tägliche Zusammenarbeit zwischen Geschäftsleuten und Entwicklern.
  5. Projekte basieren auf motivierten Personen, denen es vertrauen sollte.
  6. Ein persönliches Gespräch ist die beste Form der Kommunikation (Co-Location).
  7. Arbeitssoftware ist das Hauptmaß für den Fortschritt.
  8. Nachhaltige Entwicklung, in der Lage, ein konstantes Tempo aufrechtzuerhalten.
  9. Kontinuierliche Aufmerksamkeit für technische Exzellenz und gutes Design.
  10. Einfachheit - die Kunst, die Menge der nicht geleisteten Arbeiten zu maximieren - ist unerlässlich.
  11. Am besten Architekturen, Anforderungen und Designs entstehen aus selbstorganisierenden Teams.
  12. Regelmäßig reflektiert das Team, wie man effektiver wird, und passt sich entsprechend an.

Überblick

Paar-Programmierung, eine agile Entwicklungstechnik von von XP.

Iterativ, inkrementell und evolutionär

Die meisten agilen Entwicklungsmethoden unterteilen die Produktentwicklung in kleinen Schritten, die die Menge an Planung und Design im Voraus minimieren. Iterationen oder Sprints sind kurze Zeitrahmen (Zeitboxen) Das dauert normalerweise von ein bis vier Wochen. Jede Iteration beinhaltet a funktionsübergreifende Team Arbeiten in allen Funktionen: Planung, Analyse, Entwurf, Codierung, Unit -Tests, und Akzeptanzprüfung. Am Ende der Iteration wird ein Arbeitsprodukt den Stakeholdern gezeigt. Dies minimiert das Gesamtrisiko und ermöglicht es dem Produkt, sich schnell an Änderungen anzupassen.[26] Eine Iteration fügt möglicherweise nicht genügend Funktionen hinzu, um eine Marktveröffentlichung zu rechtfertigen. Ziel ist es jedoch, eine verfügbare Veröffentlichung zu erhalten (mit minimaler Käfer) am Ende jeder Iteration.[27] Durch inkrementelle Entwicklung haben Produkte in jeder iterativen Phase Raum, um "oft und früh zu scheitern", anstatt an einem endgültigen Veröffentlichungsdatum drastisch.[28] Möglicherweise müssen mehrere Iterationen ein Produkt oder neue Funktionen veröffentlichen. Arbeitssoftware ist das Hauptmaß für den Fortschritt.[25]

Ein wesentlicher Vorteil von agilen Ansätzen ist die Geschwindigkeit der Markt- und Risikominderung. Kleinere Schritte werden in der Regel freigegeben, um die Zeit und das Kostenrisiko für das Engineering eines Produkts zu verkürzen, das den Benutzeranforderungen nicht entspricht.

Effiziente und persönliche Kommunikation

Das 6. Prinzip des agilen Manifests für die Softwareentwicklung besagt, dass "die effizienteste und effektivste Methode zur Übermittlung von Informationen an und innerhalb eines Entwicklungsteams ist, ist ein persönliches Gespräch". Das im Jahr 2001 geschriebene Manifest, als Videokonferenzen nicht weit verbreitet waren, gibt dies in Bezug auf die Kommunikation von Informationen an, nicht unbedingt, dass ein Team gemeinsam gelegt werden sollte.

Das Prinzip von Co-Lokation Ist die Mitarbeiter im selben Team zusammen, um die Identität als Team besser festzustellen und die Kommunikation zu verbessern.[29] Das ermöglicht Interaktionen von Angesicht zu Angesichtidealerweise vor einem Whiteboard, so dass die Zykluszeit typischerweise genommen wird, wenn Fragen und Antworten per Telefon vermittelt werden. anhaltender Chat, Wiki oder E -Mail.[30] Angesicht[31] Rund um Co-Location und verteilte Arbeiten, die zeigen, dass Co-Location immer weniger relevant ist.

Unabhängig davon, welche Entwicklungsmethode befolgt wird, sollte jedes Team a enthalten Kunden Vertreter (bekannt als Produktbesitzer in Gedränge). Dieser Vertreter ist von den Stakeholdern vereinbart, in ihrem Namen zu handeln, und verpflichtet sich persönlich, für Entwickler zur Verfügung zu stehen, um Fragen während der Iteration zu beantworten. Am Ende jeder Iteration die Projekt Stakeholder Zusammen mit dem Fortschritt der Kundenrepräsentation überprüft und bewerten Sie die Prioritäten neu, um die Optimierung der Optimierung Return on Investment (ROI) und Gewährleistung der Ausrichtung auf Kundenbedürfnisse und Unternehmensziele. Die Bedeutung der Zufriedenheit der Stakeholder, detailliert durch häufige Wechselwirkung und Überprüfung am Ende jeder Phase, ist der Grund, warum der Ansatz häufig als als bezeichnet wird kundenorientierte Methodik.[32]

In der agilen Softwareentwicklung ist ein Informationskühler eine (normalerweise große) physische Anzeige mit Board mit Haftnotizen oder ähnlich, in der Nähe des Entwicklungsteams, wo Passanten es sehen können. Es präsentiert eine aktuelle Zusammenfassung des Produktentwicklungsstatus.[33][34] A Lichtanzeige bauen Kann auch verwendet werden, um ein Team über den aktuellen Status ihrer Produktentwicklung zu informieren.

Sehr kurzer Rückkopplungsschleife und Anpassungszyklus

Ein gemeinsames Merkmal in der agilen Softwareentwicklung ist die täglicher Stand-up (bekannt als täglich Scrum im Scrum -Framework). In einer kurzen Sitzung (z. B. 15 Minuten) überprüfen die Teammitglieder gemeinsam, wie sie sich zu ihrem Ziel entwickeln, und stimmen zu, ob sie ihren Ansatz anpassen müssen. Um sich an das vereinbarte Frist zu halten, verwenden Teams häufig einfache codierte Fragen (z. B. das, was sie am Vortag abgeschlossen haben, was sie an diesem Tag abschließen wollen und ob es irgendwelche Hindernisse oder Risiken für Fortschritte gibt) und detaillierte Diskussionen und Probleme zu verzögern Auflösung bis nach dem Stand-up.[35]

Qualitätsfokus

Spezifische Werkzeuge und Techniken, wie z. kontinuierliche Integration, automatisiert Unit -Tests, Paar-Programmierung, Testgetriebene Entwicklung, Designmuster, Verhaltensgetriebene Entwicklung, Domänengetriebenes Design, Code Refactoring und andere Techniken werden häufig verwendet, um die Qualität zu verbessern und die Agilität der Produktentwicklung zu verbessern.[36] Dies basiert darauf, von Anfang an die Qualität zu entwerfen und aufzubauen und zumindest am Ende jeder Iteration Software für Kunden nachweisen zu können.[37]

Philosophie

Im Vergleich zur herkömmlichen Software-Engineering zielt die agile Softwareentwicklung hauptsächlich komplexe Systeme und Produktentwicklung mit dynamischen, nicht deterministischen und nichtlinearen Eigenschaften ab. Genaue Schätzungen, stabile Pläne und Vorhersagen sind oft schwer in frühen Stadien, und das Vertrauen in sie ist wahrscheinlich gering. Agile Praktiker werden versuchen, die zu reduzieren Glaubens Sprung Dies wird benötigt, bevor ein Wertenachweis erhalten werden kann.[38] Anforderungen und Designs werden als aufkommend angesehen. Große Vorabspezifikationen würden in solchen Fällen wahrscheinlich viel Abfall verursachen, d. H. Wirtschaftlich nicht wirtschaftlich. Diese grundlegenden Argumente und früheren Branchenerfahrungen, die aus jahrelanger Erfolge und Misserfolge gelernt wurden, haben dazu beigetragen, die Gunst der adaptiven, iterativen und evolutionären Entwicklung der Agile -Entwicklung zu formen.[39]

Adaptiv gegen Vorhersage

Entwicklungsmethoden existieren auf einem Kontinuum von adaptiv zu Vorhersage.[40] Agile Softwareentwicklungsmethoden liegen auf der adaptiv Seite dieses Kontinuums. Ein Schlüssel für adaptive Entwicklungsmethoden ist a Rollwelle Ansatz zur Planungsplanung, die Meilensteine ​​identifiziert, aber die Flexibilität im Weg lässt, um sie zu erreichen, und es auch ermöglicht, die Meilensteine ​​selbst zu ändern.[41]

Adaptiv Die Methoden konzentrieren sich darauf, sich schnell an sich ändernde Realitäten anzupassen. Wenn sich die Bedürfnisse eines Projekts ändern, ändert sich auch ein adaptives Team. Ein adaptives Team hat Schwierigkeiten, genau zu beschreiben, was in Zukunft passieren wird. Je weiter ein Datum entfernt ist, desto vage geht es in einer adaptiven Methode darum, was an diesem Datum passieren wird. Ein adaptives Team kann nicht genau berichten, welche Aufgaben sie nächste Woche erledigen werden, sondern nur welche Features, die sie für nächsten Monat planen. Auf die Frage nach einer Veröffentlichung in sechs Monaten kann ein adaptives Team möglicherweise nur das Leitbild für die Veröffentlichung oder eine Erklärung zum erwarteten Wert und den Kosten melden.

Vorhersage Im Gegensatz dazu konzentrieren sich die Methoden auf die Analyse und Planung der Zukunft im Detail und zur Bekämpfung von bekannten Risiken. In den Extremen kann ein Vorhersageteam genau berichten, welche Funktionen und Aufgaben für die gesamte Länge des Entwicklungsprozesses geplant sind. Vorhersagemethoden beruhen auf eine effektive frühe Phasenanalyse, und wenn dies sehr schief geht, kann das Projekt Schwierigkeiten haben, die Richtung zu ändern. Vorhersageteams setzen häufig a ein Kontrollplatine ändern Um sicherzustellen, dass sie nur die wertvollsten Änderungen berücksichtigen.

Risikoanalyse kann verwendet werden, um zwischen adaptiv zu wählen (agil oder wertgetrieben) und prädiktiv (plangetrieben) Methoden.[42] Barry Boehm und Richard Turner Schlagen Sie vor, dass jede Seite des Kontinuums ihre eigene hat heimischer Boden, folgendermaßen:[43]

Hausgelände verschiedener Entwicklungsmethoden
Wertorientierte Methoden (agil) Plangetriebene Methoden (Wasserfall) Formale Methoden
Geringe Kritikalität Hohe Kritikalität Extreme Kritikalität
Seniorentwickler Juniorentwickler (?) Seniorentwickler
Die Anforderungen ändern sich häufig Die Anforderungen ändern sich nicht häufig Begrenzte Anforderungen, begrenzte Funktionen, siehe Wirths Gesetz[Klarstellung erforderlich]
Kleine Anzahl von Entwicklern Große Anzahl von Entwicklern Anforderungen, die modelliert werden können
Kultur, die auf Veränderungen reagiert Kultur, die Ordnung erfordert Extreme Qualität

Agil gegen Wasserfall

Einer der Unterschiede zwischen agilen Softwareentwicklungsmethoden und Wasserfall ist der Ansatz für Qualität und Test. In dem Wasserfall-Modell, Arbeit bewegt sich durch Softwareentwicklungslebenszyklus (SDLC) Phasen - mit einer Phase, die vor einer anderen abgeschlossen ist - daher die Testphase ist getrennt und folgt a Phase bauen. In der agilen Softwareentwicklung wird jedoch die Tests in derselben Iteration wie Programmierung abgeschlossen.

Da die Tests in jeder Iteration durchgeführt werden, die ein kleines Stück der Software entwickelt, können Benutzer häufig diese neuen Softwarestücke verwenden und den Wert validieren. Nachdem die Benutzer den wahren Wert der aktualisierten Software kennen, können sie bessere Entscheidungen über die Zukunft der Software treffen. Mit einem Wert für die Retrospektive und der Wiedereinstellung der Software-Wiederaufgaben in jeder Iteration-Gedränge Normalerweise hat Iterationen von nur zwei Wochen - hält das Team seine Pläne kontinuierlich an, um den von ihm lieferenden Wert zu maximieren. Dies folgt einem Muster ähnlich dem Plan-Do-Check-Act (PDCA) Zyklus, wie die Arbeit ist geplant, erledigt, überprüft (in der Überprüfung und Retrospektive) und alle vereinbarten Änderungen sind gehandelt auf.

Dieser iterative Ansatz unterstützt a Produkt eher als ein Projekt Denkweise. Dies bietet eine größere Flexibilität während des gesamten Entwicklungsprozesses. Während der Projekte die Anforderungen von Anfang an definiert und gesperrt werden, was es schwierig macht, sie später zu ändern. Die iterative Produktentwicklung ermöglicht es der Software, sich als Reaktion auf Änderungen des Geschäftsumfelds oder der Marktanforderungen zu entwickeln.

Code vs. Dokumentation

In einem Brief an IEEE -Computer, Steven Rakitin drückte Zynismus über agile Softwareentwicklung aus und nannte es "Ein weiterer Versuch, die Disziplin der Software -Engineering zu untergraben"und übersetzen"Arbeitssoftware über umfassende Dokumentation" wie "Wir wollen all unsere Zeit damit verbringen, codieren. Denken Sie daran, echte Programmierer schreiben keine Dokumentation. "[44]

Dies wird durch Befürworter der agilen Softwareentwicklung bestritten, die feststellen, dass Entwickler Dokumentation schreiben sollten, wenn dies der beste Weg ist, um die relevanten Ziele zu erreichen, aber es gibt oft bessere Möglichkeiten, diese Ziele zu erreichen, als statische Dokumentation zu schreiben.[45] Scott Ambler gibt an, dass die Dokumentation "einfach kaum gut genug" sein sollte (JBGE),[46] Diese zu viel oder umfassende Dokumentation würde normalerweise Abfall verursachen, und Entwickler vertrauen selten detaillierte Dokumentationen, da sie normalerweise nicht mit Code synchronisiert sind.[45] Während zu wenig Dokumentation auch Probleme für Wartung, Kommunikation, Lernen und Wissensaustausch verursachen kann. Alistair Cockburn schrieb über die Kristallklar Methode:

Crystal betrachtet die Entwicklung als eine Reihe von Genossenschaftsspielen und beabsichtigt, dass die Dokumentation ausreicht, um den nächsten Sieg beim nächsten Spiel zu unterstützen. Die Arbeitsprodukte für Kristall umfassen Anwendungsfälle, Risikoliste, Iterationsplan, Kerndomänenmodelle und Entwurfsnotizen, die über Auswahlmöglichkeiten informiert sind. Es gibt jedoch keine Vorlagen für diese Dokumente und Beschreibungen sind notwendigerweise vage, aber das Ziel ist klar. Gerade genug Dokumentation Für das nächste Spiel. Ich neige immer dazu, dies für mein Team zu charakterisieren, um zu wissen: Was möchten Sie wissen, wenn Sie morgen dem Team beigetreten sind?

-Alistair Cockburn[47]

Agile Softwareentwicklungsmethoden

Softwareentwicklung Lebenszyklusunterstützung[48]
Agiler einheitlicher Prozess (AUP) basiert auf Einheitlicher Prozess (Ein iterativer und inkrementeller Softwareentwicklungsprozess -Framework)

Agile Softwareentwicklungsmethoden unterstützen ein breites Spektrum der Lebenszyklus der Softwareentwicklung.[48] Einige Methoden konzentrieren sich auf die Praktiken (z. B.,, XP, pragmatische Programmierung, Agile Modellierung), während sich einige auf die Verwaltung des Arbeitsflusss (z. B. Scrum, Kanban) konzentrieren. Einige Unterstützungsaktivitäten für Anforderungenspezifikation und -entwicklung (z. B.,, FDD), während einige versuchen, den vollen Entwicklungslebenszyklus abzudecken (z. B.,, DSDM, Rupe).

Bemerkenswerte agile Softwareentwicklungsrahmen umfassen:

Rahmen Hauptvertreter (en)
Adaptive Softwareentwicklung (ASD) Jim Highsmith, Sam Bayer
Agile Modellierung Scott Ambler, Robert Cecil Martin
Agiler einheitlicher Prozess (AUP) Scott Ambler
Disziplinierte agile Lieferung Scott Ambler
Dynamische Systementwicklungsmethode (DSDM) Jennifer Stapleton
Extremes Programmieren (XP) Kent Beck, Robert Cecil Martin
Feature-Trien-Entwicklung (FDD) Jeff de Luca
Lean Softwareentwicklung Mary Poppendieck, Tom Poppendieck
Lean Startup Eric Ries
Kanban Taiichi Ohno
Schnelle Anwendungsentwicklung (Rad) James Martin
Gedränge Ken Schwaber, Jeff Sutherland
Schrott
Skaliertes agiles Rahmen - sicher Scaled Agile, Inc.

Agile Softwareentwicklungspraktiken

Die agile Softwareentwicklung wird durch eine Reihe von konkreten Praktiken unterstützt, die Bereiche wie Anforderungen, Design, Modellierung, Codierung, Tests, Planung, Risikomanagement, Prozess, Qualität usw. abdecken. Einige bemerkenswerte agile Softwareentwicklungspraktiken umfassen:[49]

Trainieren Hauptvertreter (en)
Akzeptanz-Testentwicklung (ATDD)
Agile Modellierung
Agile Tests
Rückstände (Produkt und Sprint) Ken Schwaber
Verhaltensgetriebene Entwicklung (BDD) Dan North, Liz Keogh
Kontinuierliche Integration (CI) Grady Booch
Funktionsübergreifende Team
Tägliches Stand-up / tägliches Scrum James O Coplien
Domänengetriebenes Design (DDD) Eric Evans
Iterative und inkrementelle Entwicklung (Iid)
Paar-Programmierung Kent Beck
Poker planen James Grenning, Mike Cohn
Refactoring Martin Fowler
Retrospektive
Scrum -Ereignisse (Sprintplanung, Sprintüberprüfung und Retrospektive)
Spezifikation mit Beispiel
Modeling mit Geschichtenbetrieben Albert Zündorf
Testgetriebene Entwicklung (TDD) Kent Beck
Zeitboxing
Benutzer Geschichte Alistair Cockburn
Geschwindigkeitsverfolgung

Methode Schneiderei

In der Literatur beziehen sich unterschiedliche Begriffe auf den Begriff der Anpassung der Methode, einschließlich „Methodenspeisung“, „Anpassung von Methodenfragment“ und „Situationsmethode Engineering“. Die Anpassung an die Methode wird definiert als:

Ein Prozess oder eine Fähigkeit, bei der menschliche Agenten einen Systementwicklungsansatz für eine bestimmte Projektsituation durch reaktionsschnelle Veränderungen und dynamische Zusammenspielen zwischen Kontexten, Absichten und Methodenfragmenten bestimmen.

-Mehmet Nafiz Aydin et al., Eine agile Methode zur Entwicklung des agilen Informationssystems[50]

Die Situationsereignisheit sollte als Unterscheidungsmerkmal zwischen agilen Methoden und planorientierteren Softwareentwicklungsmethoden angesehen werden, wobei agile Methoden die Produktentwicklungsteams ermöglichen, die Arbeitspraktiken entsprechend den Anforderungen einzelner Produkte anzupassen.[51][50] Potenziell könnten die agilen Methoden für die Anpassung an Methoden geeignet sein,[48] wie zum Beispiel DSDM zugeschnitten in a CMM Kontext.[52] und XP mit der zugeschnittenen Regelbeschreibung Praktiken (RDP) Technik.[53] Nicht alle agilen Befürworter sind sich jedoch einig, wobei Schwaber bemerkte: "So haben wir in erster Linie in Schwierigkeiten geraten und der Meinung, dass das Problem keine perfekte Methodik hatte. Bemühungen sollten sich auf die Änderungen konzentrieren, die [benötigt] im Unternehmen erforderlich sind." .[54] Bas Vodde verstärkte diesen Standpunkt und schlägt vor, dass Scrum im Gegensatz zu herkömmlichen, großen Methoden, bei denen Sie Elemente auswählen müssen, die Grundlagen zur Verfügung stellen, über die Sie zusätzliche Elemente hinzufügen, um die Verwendung zu lokalisieren und zu kontextualisieren.[55] Praktizierende verwenden selten Systementwicklungsmethodenoder agile Methoden spezifisch durch das Buch, die häufig einige der Praktiken einer Methode weglassen oder anpassen, um eine interne Methode zu erstellen.[56]

In der Praxis können Methoden mit verschiedenen Werkzeugen zugeschnitten werden. Generische Prozessmodellierungssprachen wie z. Einheitliche Modellierungssprache Kann verwendet werden, um Softwareentwicklungsmethoden anzupassen. Dedizierte Tools für Method Engineering wie die Essence -Theorie der Software -Engineering von jedoch Semat existieren auch.[57]

Groß angelegt, offshore und verteilt

Agile Softwareentwicklung wurde weithin als sehr geeignet für bestimmte Arten von Umgebungen angesehen, einschließlich kleiner Expertenteams, an denen wir arbeiten Greenfield -Projekte,[43][58] und die Herausforderungen und Einschränkungen bei der Einführung von agilen Softwareentwicklungsmethoden in einer großen Organisation mit Legacy Infrastruktur sind gut dokumentiert und verstanden.[59]

Als Reaktion darauf hat sich eine Reihe von Strategien und Mustern entwickelt, um Herausforderungen mit großen Entwicklungsbemühungen zu überwinden (> 20 Entwickler)[60][61] oder verteilte (nicht-kolozierte) Entwicklungsteams,[62][63] unter anderem Herausforderungen; Und es gibt jetzt mehrere anerkannte Frameworks, die diese Herausforderungen mindern oder vermeiden wollen.

Es gibt viele widersprüchliche Ansichten darüber, ob alle diese effektiv sind oder tatsächlich zur Definition der agilen Entwicklung passen, und dies bleibt ein aktives und laufendes Forschungsbereich.[60][64]

Wenn eine agile Softwareentwicklung in einer verteilten Umgebung angewendet wird (mit Teams, die über mehrere Geschäftsstandorte hinweg verteilt sind), wird sie häufig als als bezeichnet Verteilte agile Softwareentwicklung. Ziel ist es, die einzigartigen Vorteile einzelnen Vorteile zu nutzen, die jeder Ansatz bieten. Distributed Development ermöglicht es Unternehmen, Software zu erstellen, indem Teams in verschiedenen Teilen des Globus strategisch eingerichtet werden, wodurch die Software praktisch rund um die Uhr (häufiger als folgendes Modell bezeichnet) erstellt wird. Andererseits bietet agile Entwicklung eine erhöhte Transparenz, kontinuierliches Feedback und mehr Flexibilität, wenn sie auf Änderungen reagiert.

Regulierte Domänen

Agile Softwareentwicklungsmethoden wurden ursprünglich als am besten für nicht kritische Produktentwicklungen geeignet angesehen, dadurch aus der Verwendung in regulierten Domänen wie z. medizinische Geräte, Pharmazeutische, finanzielle, nukleare Systeme, Automobil- und Avioniksektoren usw. In den letzten Jahren gab es jedoch mehrere Initiativen zur Anpassung agiler Methoden für diese Bereiche.[65][66][67][68][69]

Es gibt zahlreiche Standards, die in regulierten Bereichen gelten können, einschließlich ISO 26262, ISO 9000, ISO 9001, und ISO/IEC 15504. Eine Reihe von wichtigen Bedenken ist in regulierten Bereichen von besonderer Bedeutung:[70]

  • Qualitätssicherung (QA): Systematisches und inhärentes Qualitätsmanagement, das einen kontrollierten professionellen Prozess und Zuverlässigkeit und Richtigkeit des Produkts zugrunde liegt.
  • Sicherheit und Sicherheit: formelles Planungs- und Risikomanagement, um Sicherheitsrisiken für Benutzer zu mildern und Benutzer sicher vor unbeabsichtigten und böswilligen Missbrauch zu schützen.
  • Rückverfolgbarkeit: Dokumentation liefert prüfbare Beweise für die Einhaltung von Vorschriften und die Erleichterung der Rückverfolgbarkeit und die Untersuchung von Problemen.
  • Verifizierung und Validierung (V & V): Eingebettet während des gesamten Softwareentwicklungsprozesses (z.

Erfahrung und Adoption

Obwohl agile Softwareentwicklungsmethoden mit jedem Programmierparadigma oder der Sprache in der Praxis verwendet werden können, waren sie ursprünglich eng mit objektorientierten Umgebungen wie Smalltalk, Lisp und später Java, C#verbunden. Die anfänglichen Anwender von agilen Methoden waren in der Regel kleine bis mittelgroße Teams, die an beispiellosen Systemen arbeiteten und die Anforderungen schwer zu finanzieren waren und sich wahrscheinlich ändern dürften, wenn das System entwickelt wurde. Dieser Abschnitt beschreibt gemeinsame Probleme, auf die Organisationen begegnen, wenn sie versuchen, agile Softwareentwicklungsmethoden sowie verschiedene Techniken zur Messung der Qualität und Leistung agiler Teams zu messen.[71]

Agilität messen

Interne Bewertungen

Das Agilitätsmessungsindexunter anderem bewertet die Entwicklungen gegen fünf Dimensionen der Produktentwicklung (Dauer, Risiko, Neuheit, Aufwand und Interaktion).[72] Andere Techniken basieren auf messbaren Zielen[73] und eine Studie legt das nahe Geschwindigkeit kann als Metrik der Beweglichkeit verwendet werden. Es gibt auch agile Selbsteinschätzungen, um festzustellen, ob ein Team agile Softwareentwicklungspraktiken verwendet (Nokia Test,[74] Karlskrona -Test,[75] 42 Punkte Test).[76]

Öffentliche Umfragen

Eine der frühen Studien, die Gewinne in Bezug auf Qualität, Produktivität und Unternehmenszufriedenheit unter Verwendung von agilen Softwareentwicklungsmethoden melden, war eine Umfrage von Shine Technologies von November 2002 bis Januar 2003.[77]

Eine ähnliche Umfrage, die Zustand von Agile, wird jedes Jahr ab 2006 mit Tausenden von Teilnehmern aus der gesamten Softwareentwicklungsgemeinschaft durchgeführt. Dies verfolgt Trends zu den wahrgenommenen Vorteilen von Agilität, den gewonnenen Erkenntnissen und guten Praktiken. In jeder Umfrage wurde angegeben, dass die agile Softwareentwicklung ihnen hilft, Software schneller zu liefern. verbessert ihre Fähigkeit, die Veränderung der Kundenprioritäten zu verwalten; und erhöht ihre Produktivität.[78] Umfragen haben im Vergleich zum klassischen Projektmanagement auch konsequent bessere Ergebnisse mit agilen Produktentwicklungsmethoden gezeigt.[79][80] In Balance gibt es Berichte, dass einige der Meinung sind, dass agile Entwicklungsmethoden immer noch zu jung sind, um eine umfassende akademische Forschung ihres Erfolgs zu ermöglichen.[81]

Gemeinsame Fallstricke der agilen Softwareentwicklung

Organisationen und Teams, die eine agile Softwareentwicklung implementieren Wasserfallentwicklung, wie Teams, die einen agilen Prozess mit ihnen erzwingen.[82] Diese werden oft als bezeichnet Agile Anti-Muster oder häufiger agile Gerüche. Im Folgenden finden Sie einige häufige Beispiele:

Mangel an Gesamtproduktdesign

Ein Ziel der agilen Softwareentwicklung ist es, sich mehr auf die Erzeugung von Arbeitssoftware und weniger auf Dokumentation zu konzentrieren. Dies steht im Gegensatz zu Wasserfallmodellen, bei denen der Prozess häufig stark kontrolliert ist und geringfügige Änderungen am System eine signifikante Überarbeitung der unterstützenden Dokumentation erfordern. Dies rechtfertigt jedoch nicht vollständig ohne Analyse oder Design. Wenn ein Team zunächst schnell vorgeht, kann es dazu führen, dass ein Team zunächst schnell weitergeht, aber dann erhebliche Nacharbeit erforderlich ist, wenn es versucht, das System zu skalieren. Eine der wichtigsten Merkmale der agilen Softwareentwicklung ist, dass sie iterativ ist. Wenn das korrekte Entwurf erfolgt, wird das System entwickelt, und es werden Gemeinsamkeiten und Wiederverwendungsmöglichkeiten entdeckt.[83]

Hinzufügen von Geschichten zu einer laufenden Iteration

In der agilen Softwareentwicklung, Geschichten (ähnlich zu Anwendungsfall Beschreibungen) werden normalerweise verwendet, um Anforderungen zu definieren und eine Wiederholung ist eine kurze Zeit, in der das Team bestimmte Ziele verpflichtet.[84] Das Hinzufügen von Geschichten zu einer laufenden Iteration ist nachteilig auf einen guten Arbeitsfluss. Diese sollten dem Produkt Rückstand hinzugefügt und für eine nachfolgende Iteration priorisiert oder in seltenen Fällen die Iteration storniert werden.[85]

Dies bedeutet nicht, dass sich eine Geschichte nicht erweitern kann. Die Teams müssen sich mit neuen Informationen befassen, die zusätzliche Aufgaben für eine Geschichte erstellen können. Wenn die neuen Informationen verhindert, dass die Geschichte während der Iteration abgeschlossen wird, sollte sie auf eine nachfolgende Iteration übertragen werden. Es sollte jedoch gegen alle verbleibenden Geschichten priorisiert werden, da die neuen Informationen möglicherweise die ursprüngliche Priorität der Geschichte verändert haben.

Mangel an Sponsorunterstützung

Agile Softwareentwicklung wird häufig als Basis in Organisationen durch Softwareentwicklungsteams implementiert, die versuchen, ihre Entwicklungsprozesse zu optimieren und die Konsistenz im Lebenszyklus der Softwareentwicklung zu gewährleisten. Durch die Nicht -Sponsor -Unterstützung können die Teams Schwierigkeiten und Widerstand von Geschäftspartnern, anderen Entwicklungsteams und Management haben. Darüber hinaus können sie ohne angemessene Finanzierung und Ressourcen leiden.[86] Dies erhöht die Wahrscheinlichkeit eines Versagens.[87]

Unzureichendes Training

In einer von Versionone durchgeführten Umfrage wurde festgestellt[88] Die Teams sind in die Falle geraten, die reduzierten Prozesse der agilen Softwareentwicklung im Vergleich zu anderen Ansätzen wie Wasserfall zu übernehmen, bedeutet, dass es keine tatsächlichen Regeln für die Entwicklung der agilen Software gibt.

Die Rolle des Produktbesitzers ist nicht ordnungsgemäß gefüllt

Das Produktbesitzer ist verantwortlich für die Vertretung des Geschäfts in der Entwicklungsaktivität und ist häufig die anspruchsvollste Rolle.[89]

Ein häufiger Fehler besteht darin, die Rolle des Produktbesitzers von jemandem aus dem Entwicklungsteam gefüllt zu haben. Dies erfordert, dass das Team seine eigenen Entscheidungen über Priorisierung ohne echtes Feedback des Unternehmens trifft. Sie versuchen, Geschäftsprobleme intern zu lösen oder die Arbeit zu verzögern, da sie außerhalb des Teams nach der Richtung erreichen. Dies führt oft zu Ablenkung und einem Zusammenbruch der Zusammenarbeit.[90]

Teams sind nicht fokussiert

Bei der agilen Softwareentwicklung müssen die Teams Produktverpflichtungen einhalten, was bedeutet, dass sie sich nur für dieses Produkt auf die Arbeit konzentrieren sollten. Es wird jedoch häufig erwartet, dass Teammitglieder andere Arbeiten übernehmen, was es für sie schwierig macht, die Arbeit zu vervollständigen, für die ihr Team begangen wurde.[91]

Übermäßige Vorbereitung/Planung

Die Teams können in die Falle fallen, zu viel Zeit für die Vorbereitung oder Planung zu verbringen. Dies ist eine häufige Falle für Teams, die mit der agilen Softwareentwicklung weniger vertraut sind, bei der sich die Teams verpflichtet fühlen, ein vollständiges Verständnis und die Spezifikation aller Geschichten zu haben. Die Teams sollten bereit sein, nur mit den Geschichten voranzukommen, in die sie Vertrauen haben, und während der Iteration weiterhin Arbeiten für nachfolgende Iterationen entdecken und vorbereiten Raffinesse oder Pflege).

Problemlösung im täglichen Standup

Ein täglicher Standup sollte ein fokussiertes, zeitnahes Treffen sein, bei dem alle Teammitglieder Informationen verbreiten. Wenn eine Problemlösung auftritt, kann sie häufig nur bestimmte Teammitglieder einbeziehen und potenziell nicht die beste Nutzung der gesamten Zeit des Teams. Wenn das Team während des täglichen Standups in die Problemlösung eintaucht, sollte es beiseite gelegt werden, bis ein Unterteam diskutiert werden kann, normalerweise unmittelbar nach Abschluss des Standups.[92]

Aufgaben zuweisen

Einer der beabsichtigten Vorteile der agilen Softwareentwicklung besteht darin, das Team zu befähigen, Entscheidungen zu treffen, da sie dem Problem am nächsten sind. Darüber hinaus sollten sie die Entscheidungen so nahe wie möglich treffen, um zeitnaher Informationen in der Entscheidung zu verwenden. Wenn Teammitgliedern von anderen oder zu früh im Prozess Aufgaben zugewiesen werden, können die Vorteile lokaler und rechtzeitiger Entscheidungsfindung verloren gehen.[93]

Die zugewiesene Arbeit beschränkt auch die Teammitglieder in bestimmte Rollen (z. B. Teammitglied muss immer die Datenbankarbeit erledigen), was die Möglichkeiten für Cross-Training einschränkt.[93] Die Teammitglieder selbst können sich dafür entscheiden, Aufgaben zu übernehmen, die ihre Fähigkeiten ausdehnen und Möglichkeiten für Cross-Training bieten.

Scrum Master als Mitwirkender

Im Scrum -Framework, der behauptet, mit agilen Werten und Prinzipien übereinzustimmen, die Scrum Master Die Rolle ist dafür verantwortlich, sicherzustellen, dass der Scrum -Prozess befolgt wird und das Scrum -Team während dieses Prozesses coachen. Eine häufige Gefahr besteht darin, dass ein Scrum -Meister als Mitwirkender fungiert. Obwohl der Scrum -Master nicht durch das Scrum -Framework verboten ist, muss er sicherstellen, dass er in der Rolle des Scrum -Meisters zuerst handelt und nicht an Entwicklungsaufgaben arbeitet. Die Aufgabe eines Scrum -Masters besteht darin, den Prozess zu erleichtern, anstatt das Produkt zu erstellen.[94]

Wenn der Scrum -Master auch Multitasking hat, kann zu viele Kontextschalter produktiv sein. Da ein Scrum -Master dafür verantwortlich ist, dass die Straßensperren entfernt werden, sodass das Team den Fortschritt erzielen kann, kann der Nutzen, der durch individuelle Aufgaben erzielt wird, möglicherweise keine Straßensperren, die aufgrund mangelnder Kapazität verschoben werden.[95]

Mangel an Testautomatisierung

Aufgrund der iterativen Natur der agilen Entwicklung werden häufig mehrere Testrunden benötigt. Automatisierte Tests reduzieren die Auswirkungen von wiederholten Einheiten, Integration und Regressionstests und befreit Entwickler und Tester, um sich auf Arbeiten mit höherem Wert zu konzentrieren.[96]

Die Testautomatisierung unterstützt auch die Fortsetzung Refactoring erforderlich durch iterative Softwareentwicklung. Wenn ein Entwickler schnell Tests durchführen kann, um das Refactoring zu bestätigen, kann die Funktionalität der Anwendung nicht geändert werden, um die Arbeitsbelastung zu verringern und das Vertrauen zu erhöhen, dass Aufräumarbeiten keine neuen Defekte eingeführt haben.

Die Aufbau technischer Schulden zulassen

Die Konzentration auf die Bereitstellung neuer Funktionen kann zu Erhöhungen führen Technische Schulden. Das Team muss sich Zeit für eine Fehlersanierung und Refaktorierung zulassen. Technische Schulden behindern die Planungsfähigkeiten, indem die Menge an außerplanmäßigen Arbeiten erhöht wird, da Produktionsfehler das Team von weiteren Fortschritten ablenken.[97]

Wenn sich das System weiterentwickelt, ist es wichtig, dass es wichtig ist Refaktor Mit natürlich zunehmender Entropie des Systems.[98] Im Laufe der Zeit führt der Mangel an ständiger Wartung zu zunehmenden Mängel und Entwicklungskosten.[97]

Versuch, zu viel in einer Iteration zu übernehmen

Ein häufiges Missverständnis ist, dass die agile Softwareentwicklung kontinuierliche Veränderungen ermöglicht. Ein Iterations -Rückstand ist jedoch eine Vereinbarung darüber, welche Arbeiten während einer Iteration erledigt werden können.[99] Zu viel haben Work-in-Progress (WIP) führt zu Ineffizienzen wie z. Kontext-Schalter und Warteschlange.[100] Das Team muss es vermeiden, sich unter Druck gesetzt zu fühlen, zusätzliche Arbeiten zu übernehmen.[101]

Feste Zeit, Ressourcen, Umfang und Qualität

Agile Software Development repariert Zeit (Iterationsdauer), Qualität und idealerweise im Voraus (obwohl die Aufrechterhaltung fester Ressourcen schwierig sein kann, wenn Entwickler häufig von Aufgaben weggezogen werden, um die Produktionsvorfälle zu bewältigen), während die Umfang bleibt variabel. Der Kunde oder Produktbesitzer drängt häufig auf einen festen Bereich für eine Iteration. Die Teams sollten sich jedoch nur ungern auf die gesperrte Zeit, Ressourcen und den Umfang festlegen (allgemein bekannt als die Projektmanagementdreieck). Die Bemühungen, die feste Zeit und die Ressourcen der agilen Softwareentwicklung zu erweitern, können zu einer verringerten Qualität führen.[102]

Entwickler Burnout

Aufgrund des fokussierten Tempos und der kontinuierlichen Natur der agilen Praktiken besteht ein erhöhtes Burnout -Risiko bei Mitgliedern des Lieferteams.[103]

Agile Management

Das Agile -Projektmanagement ist ein iterativer Entwicklungsprozess, bei dem Feedback von Benutzern und Stakeholdern kontinuierlich gesammelt wird, um die richtige Benutzererfahrung zu schaffen. Unterschiedliche Methoden können verwendet werden, um einen agilen Prozess durchzuführen, darunter auch Gedränge, extremes Programmieren, mager und Kanban.[104] Der Begriff Agile Management wird auf eine iterative, inkrementelle Methode zur Verwaltung der Design- und Aufbauaktivitäten von Ingenieurwesen, Informationstechnologie und anderen Geschäftsbereichen angewendet, die auf hochflexible und interaktive Weise neue Produkt- oder Dienstleistungsentwicklung bereitstellen sollen Manifest für agile Softwareentwicklung.[105] Agile Projektmanagementkennzahlen tragen dazu bei, Verwirrung zu verringern, Schwachstellen zu identifizieren und die Leistung des Teams während des gesamten Entwicklungszyklus zu messen. Die Agilität der Lieferkette ist die Fähigkeit einer Lieferkette, mit Unsicherheit und Variabilität zu bewältigen, die angeboten und nachgefragt werden. Eine agile Lieferkette kann ihre Kapazität schnell erhöhen und reduzieren, sodass sie sich an eine sich schnell verändernde Kundennachfrage anpassen kann. Schließlich ist strategische Agilität die Fähigkeit einer Organisation, ihre Vorgehensweise zu ändern, wenn sich seine Umgebung weiterentwickelt. Der Schlüssel für die strategische Agilität besteht darin, externe Veränderungen früh genug zu erkennen und Ressourcen zur Anpassung an diese sich ändernden Umgebungen zuzuweisen.[104]

Agile X -Techniken können auch genannt werden Extreme Projektmanagement. Es ist eine Variante von Iterativer Lebenszyklus[106] wo Leistungen werden in Phasen eingereicht. Der Hauptunterschied zwischen agiler und iterativer Entwicklung besteht darin, dass agile Methoden kleine Teile der Ergebnisse in jedem Lieferzyklus (Iteration) vervollständigen.[107] Während iterative Methoden im Laufe der Zeit den gesamten Satz von Ergebnissen entwickeln, werden sie am Ende des Projekts vervollständigt. Sowohl iterative als auch agile Methoden wurden als Reaktion auf verschiedene Hindernisse entwickelt, die sich in sequentielleren Formen der Projektorganisation entwickelten. Wenn beispielsweise Technologieprojekte in Komplexität wachsen, haben Endbenutzer in der Regel Schwierigkeiten, die langfristigen Anforderungen zu definieren, ohne progressive Prototypen anzusehen. Projekte, die sich in Iterationen entwickeln, können ständig Feedback sammeln, um diese Anforderungen zu verfeinern.

Das Agile -Management bietet auch ein einfaches Rahmen, das die Kommunikation und Reflexion über frühere Arbeiten fördert. Mannschaft Mitglieder.[108] Teams, die die traditionelle Wasserfallplanung einsetzten und die agile Entwicklungsmethode übernommen haben, durchlaufen in der Regel eine Transformationsphase und nehmen häufig agile Trainer, die die Teams durch eine reibungslosere Transformation führen. Es gibt normalerweise zwei Arten von Agile Coaching: Push-basierte und Pull-basierte Agile Coaching. Hier kann sich ein "Push-System" auf eine Vorabschätzung beziehen, welche Aufgaben in einen Sprint (Pushing-Arbeit) eingebaut werden können, z. typisch mit Scrum; Ein "Pull -System" kann sich auf eine Umgebung beziehen, in der Aufgaben nur ausgeführt werden, wenn die Arbeit verfügbar ist, z. Typisch für Kanban.[Klarstellung erforderlich] Agile Management -Ansätze wurden auch angewendet und an den Wirtschafts- und Regierungssektor angepasst. Zum Beispiel innerhalb der Bundesregierung der Vereinigten Staaten, das Die Agentur der Vereinigten Staaten für internationale Entwicklung (USAID) beschäftigt a kollaboratives Projektmanagement Ansatz, der sich auf die Einbeziehung konzentriert Zusammenarbeit, Lernen und Anpassung (CLA) Strategien zur Itereration und Anpassung der Programmierung.[109]

Agile Methoden werden in der erwähnt Leitfaden zum Projektmanagementkörper (PMBOK Guide 6. Ausgabe) unter dem Produktentwicklungslebenszyklus Definition:

"In einem Projektlebenszyklus gibt es im Allgemeinen eine oder mehrere Phasen, die mit der Entwicklung des Produkts, der Dienstleistung oder des Ergebniss verbunden sind. Diese werden als Entwicklungslebenszyklus (...) adaptive Lebenszyklen agil, iterativ oder bezeichnet Inkrementell. Der detaillierte Umfang wird vor Beginn einer Iteration definiert und zugelassen. Anpassungslebenszyklen werden auch als agile oder veränderte Lebenszyklen bezeichnet.]].[110]

Anwendungen außerhalb der Softwareentwicklung

Agile Brasilien 2014 Konferenz

Laut Jean-Loup Richet (Research Fellow bei Essec Institut für strategische Innovation und Dienstleistungen) "Dieser Ansatz kann effektiv für Nicht-Software-Produkte und für das Projektmanagement im Allgemeinen genutzt werden, insbesondere in Bereichen Innovation und Unsicherheit." Das Ergebnis ist ein Produkt oder ein Projekt, das den aktuellen Kundenanforderungen am besten entspricht und mit minimalen Kosten, Abfall und Zeit geliefert wird, sodass Unternehmen die Gewinne von Großzeilen früher als durch herkömmliche Ansätze erzielen können.[111]

Agile Softwareentwicklungsmethoden wurden ausführlich für die Entwicklung von Softwareprodukten verwendet, und einige verwenden bestimmte Merkmale der Software, wie z. Objekttechnologien.[112] Diese Techniken können jedoch auf die Entwicklung von Nicht-Software-Produkten wie Computern, Medizinprodukten, Lebensmitteln, Kleidung und Musik angewendet werden.[113] Agile Softwareentwicklungsmethoden wurden in der Nichtentwicklung verwendet IT Infrastruktur Bereitstellungen und Migrationen. Einige der umfassenderen Prinzipien der agilen Softwareentwicklung haben auch die Anwendung im allgemeinen Management gefunden[114] (z. B. Strategie, Governance, Risiko, Finanzen) unter den Bedingungen Geschäftslehre oder Agile Business Management.

Agile Softwareentwicklungsparadigmen können in anderen Lebensbereichen wie z. B. Kindererziehung eingesetzt werden. Der Erfolg bei der Entwicklung von Kindern könnte auf einigen grundlegenden Managementprinzipien beruhen. Kommunikation, Anpassung und Bewusstsein. In einem Ted TalkBruce Feiler teilte mit, wie er grundlegende agile Paradigmen auf Haushaltsmanagement und Erziehung von Kindern anwand.[115]

Kritik

Agile Praktiken wurden in großen Organisationen und bestimmten Entwicklungsarten als potenziell ineffizient angesehen.[116] Viele Organisationen glauben, dass agile Softwareentwicklungsmethoden zu extrem sind und einen Hybridansatz verfolgen[117] Das mischt Elemente der agilen Softwareentwicklung und planorientierten Ansätze.[118] Einige Methoden wie z. Dynamische Systementwicklungsmethode (DSDM) Versuchen Sie dies auf disziplinierte Weise, ohne grundlegende Prinzipien zu beeinträchtigen.

Die zunehmende Einführung agiler Praktiken wurde auch als a kritisiert Management Mode Das beschreibt einfach bestehende gute Praktiken unter New Jargon, fördert a eine Grösse passt allen Denkweise für Entwicklungsstrategien und betont die Methode über die Ergebnisse fälschlicherweise.[119]

Alistair Cockburn organisierte eine Feier zum 10. Jahrestag der Manifest für agile Softwareentwicklung In Snowbird, Utah, am 12. Februar 2011, versammelte sich mehr als 30 Personen, die am ursprünglichen Treffen beteiligt waren und seitdem. Eine Liste von ungefähr 20 Elefanten im Raum ('unerkutbare' agile Themen/Themen) wurden gesammelt, einschließlich Aspekte: Allianzen, Fehler und Einschränkungen der agilen Softwareentwicklungspraktiken und des Kontext , kognitive Vorurteile und Argumentationsstraßen), Politik und Kultur.[120] Wie Philippe Kruchtten schrieb:

Die agile Bewegung ist in gewisser Weise ein bisschen wie ein Teenager: Sehr selbstbewusst, überprüft ständig sein Aussehen in einem Spiegel, akzeptiert nur wenige Kritikpunkte, nur daran interessiert, mit seinen Kollegen zusammen zu sein, und lehne en bloc die ganze Weisheit aus der Vergangenheit ab, nur weil sie es ist aus der Vergangenheit, die Modeerscheinungen und New Jargon adoptieren, manchmal übermütig und arrogant. Aber ich habe keine Zweifel daran, dass es weiter reifen, offener für die Außenwelt, reflektierender und daher effektiver werden.

-Philippe Kruchtten[120]

Das "Manifest" hat sich möglicherweise negative Auswirkungen auf das Management und die Führung des Hochschulbildes gehabt, wo es den Administratoren vorschlug, dass langsamere traditionelle und beratende Prozesse durch "flinkere" ersetzt werden sollten. Das Konzept fand selten Akzeptanz an der Universitätsfakultät.[121]

Eine weitere Kritik ist, dass das agile Management und traditionelle Managementpraktiken in vielerlei Hinsicht gegenseitig gegeneinander stehen. Eine häufige Kritik an dieser Praxis ist, dass die Zeit, die ich für den Versuch, die Praxis zu lernen, zu lernen und umzusetzen, trotz potenzieller Vorteile zu kostspielig ist. Ein Übergang vom traditionellen Management zum agilen Management erfordert die vollständige Einreichung von Agile und eine feste Verpflichtung aller Mitglieder der Organisation, den Prozess durchzusehen. Probleme wie ungleiche Ergebnisse im gesamten Unternehmen, zu viel Veränderung für die Fähigkeit der Mitarbeiter, am Ende der Transformation zu handhaben, sind nur einige Beispiele.[122]

Siehe auch

Verweise

  1. ^ Rally (2010). "Agile mit einer Hauptstadt" A "gegen Agile mit einem Kleinbuchstaben" a "". Archiviert vom Original am 5. Januar 2016. Abgerufen 9. September 2015.{{}}: CS1 Wartung: Ungeeignete URL (Link)
  2. ^ Collier, Ken W. (2011). Agile Analytics: Ein wertorientierter Ansatz für Business Intelligence und Data Warehousing. Pearson Ausbildung. S. 121 ff. ISBN 9780321669544. Was ist ein selbstorganisierendes Team?
  3. ^ Beck, Kent M.; Beedle, Mike; Bennekum, Arie Van; Cockburn, Alistair; Cunningham, Gemeinde; Fowler, Martin; Grenning, James; Highsmith, Jim; Jagd, Andy; Jeffries, Ron; Kern, Jon; Marick, Brian; Martin, R. C.; Mellor, Steve J.; Schwaber, Ken; Sutherland, Jeff; Thomas, Dave. "Manifest für agile Softwareentwicklung". S2CID 109006295. {{}}: Journal zitieren erfordert |journal= (Hilfe)
  4. ^ "Was ist agile Softwareentwicklung?". Agile Allianz. 8. Juni 2013. Abgerufen 4. April 2015.
  5. ^ a b c Kent Beck; James Grenning; Robert C. Martin; Mike Beedle; Jim Highsmith; Steve Mellor; Arie van Bennekum; Andrew Hunt; Ken Schwaber; Alistair Cockburn; Ron Jeffries; Jeff Sutherland; Ward Cunningham; Jon Kern; Dave Thomas; Martin Fowler; Brian Marick (2001). "Manifest für agile Softwareentwicklung". Agile Allianz. Abgerufen 14. Juni 2010.{{}}: CS1 Wartung: URL-Status (Link)
  6. ^ Was ist besser - Kanban oder Scrum?, 4. März 2016
  7. ^ a b Larman, Craig (2004). Agile und iterative Entwicklung: Der Leitfaden eines Managers. Addison-Wesley. p. 27. ISBN 978-0-13-111155-4.
  8. ^ Dybå, zerrissen; Dingsøyr, Torger (1. August 2008). "Empirische Studien zur agilen Softwareentwicklung: eine systematische Überprüfung". Informations- und Softwaretechnologie. 50 (9–10): 833–859. doi:10.1016/j.infsof.2008.01.006. ISSN 0950-5849.
  9. ^ Lee, Gwanhoo; Xia, Weidong (2010). "In Richtung Agile: Eine integrierte Analyse quantitativer und qualitativer Felddaten zur Agilität der Softwareentwicklung". Mis vierteljährlich. 34 (1): 87–114. doi:10.2307/20721416. JStor 20721416. S2CID 26477249.
  10. ^ Gerald M. Weinbergwie zitiert in Larman & Basili 2003, S. 47–56 "Wir haben bereits 1957 in Los Angeles inkrementelle Entwicklung unter der Leitung von Bernie Dimsdale bei durchgeführt IBM's Service Bureau Corporation. Er war ein Kollege von John von NeumannAlso hat er es dort vielleicht gelernt oder es als völlig natürlich angenommen. Ich erinnere mich an Kräuter -Jacobs (hauptsächlich, obwohl wir alle teilgenommen haben), die eine große Simulation für Motorola entwickelte, wo die verwendete Technik so weit wie ich beurteilen kann ... soweit ich mich erinnern kann, dachte ich, Wasserfall von a Riesiger Projekt war ziemlich dumm oder zumindest die Realitäten. Ich denke, was die Wasserfallbeschreibung für uns getan hat, war, dass wir erkennen, dass wir etwas anderes getan haben, etwas Unbenanntes außer für 'Softwareentwicklung'. "
  11. ^ "Evolutionärer Projektmanagement (Originalseite, externes Archiv)". Gilb. Archiviert von das Original am 27. März 2016. Abgerufen 30. April 2017.
  12. ^ "Evolutionär Projektmanagement (neue Seite)". Gilb. Abgerufen 30. April 2017.
  13. ^ Edmonds, E. A. (1974). "Ein Prozess für die Entwicklung von Software für nichttechnische Benutzer als adaptives System". Allgemeine Systeme. 19: 215–18.
  14. ^ Gilb, Tom (1. April 1981). "Evolutionäre entwicklung". ACM Sigsoft Software Engineering Notizen. 6 (2): 17. doi:10.1145/1010865.1010868. S2CID 33902347.
  15. ^ Swamidass, P. M., ed. (2000), "Schwergewichts -Projektorganisation Organisation der Projektorganisation", Enzyklopädie der Produktions- und Fertigungsmanagement, Boston, MA: Springer US, S. 261–262, doi:10.1007/1-4020-0612-8_400, ISBN 978-1-4020-0612-8, abgerufen 22. Juni 2022
  16. ^ Martin, James (1991). Schnelle Anwendungsentwicklung. Macmillan. ISBN 978-0-02-376775-3.
  17. ^ Kerr, James M.; Hunter, Richard (1993). Inside RAD: So bauen Sie ein voll funktionsfähiges System in 90 Tagen oder weniger auf. McGraw-Hill. p. 3. ISBN 978-0-07-034223-1.
  18. ^ Iacocca Institute (1991). "Fertigungsunternehmen des 21. Jahrhunderts: Eine Branchen -LED -Ansicht". Iacocca Institute, Lehigh University, Bethlehem, PA.
  19. ^ Presley, A., J. Mills und D. Liles (1995). "Agile Aerospace Manufacturing". Nepcon East 1995, Boston.
  20. ^ Sanchez, Luis (November 2010). "Eine Überprüfung der agilen Fertigungssysteme". Internationales Journal of Production Research (39 (16): 3561-3600).
  21. ^ Anderson, David (2005). "Erklärung der gegenseitigen Abhängigkeit". Archiviert von das Original am 27. Januar 2018. Abgerufen 4. Oktober 2018.
  22. ^ McDonald, Kent (1. November 2016). "Wie Sie agile Allianz helfen können, Ihnen zu helfen". Agile Alliance Blog. Abgerufen 4. Juli 2017.
  23. ^ "Untersuchung des agilen Manifests". Ambysoft Inc. Abgerufen 6. April 2011.
  24. ^ Jim Highsmith (2001). "Geschichte: Das agile Manifest". agilemanifesto.org.
  25. ^ a b Kent Beck; James Grenning; Robert C. Martin; Mike Beedle; Jim Highsmith; Steve Mellor; Arie van Bennekum; Andrew Hunt; Ken Schwaber; Alistair Cockburn; Ron Jeffries; Jeff Sutherland; Ward Cunningham; Jon Kern; Dave Thomas; Martin Fowler; Brian Marick (2001). "Prinzipien hinter dem agilen Manifest". Agile Allianz. Archiviert Aus dem Original am 14. Juni 2010. Abgerufen 6. Juni 2010.
  26. ^ Moran, A. (2014). Agile Risikomanagement. Springer Verlag. ISBN 978-3319050072.
  27. ^ Beck, Kent (1999). "Veränderung mit extremer Programmierung". Computer. 32 (10): 70–77. doi:10.1109/2.796139.
  28. ^ Mergel, Ines (Juli 2016). "Agile Innovationsmanagement in der Regierung: eine Forschungsagenda". Regierungsinformationen vierteljährlich. 33 (3): 516–523. doi:10.1016/j.giq.2016.07.004.
  29. ^ Preuss, Deborah Hartmann (13. Oktober 2006). "Studie: Co-located Teams gegen die Kabinenfarm". Infoq. Abgerufen 23. Oktober 2018.
  30. ^ Cockburn, Alistair (2007). "Agile Softwareentwicklung: Das kooperative Spiel". www.pearson.com (2. Aufl.). Addison-Wesley Professional. Abgerufen 23. Oktober 2018.
  31. ^ "Management transformiert | Forschung".
  32. ^ Jain, Parita; Sharma, Arun; Ahuja, Laxmi (August 2018). "Die Auswirkungen des agilen Softwareentwicklungsprozesses auf die Qualität des Softwareprodukts". 2018 7. Internationale Konferenz für Zuverlässigkeit, Infocom -Technologien und Optimierung (Trends und zukünftige Richtungen) (ICRITO). Noida, Indien: IEEE: 812–815. doi:10.1109/icrito.2018.8748529. ISBN 978-1-5386-4692-2. S2CID 195775457.
  33. ^ Cockburn, Alistair (19. Juni 2008). "Informationskühler".
  34. ^ Ambler, Scott (12. April 2002). Agile Modellierung: Effektive Praktiken für die extreme Programmierung und den einheitlichen Prozess. John Wiley & Sons. S. 12, 164, 363. ISBN 978-0-471-20282-0.
  35. ^ Vasiliauskas, Vidas (2014). "Entwicklung agiler Projektaufgaben- und Teammanagementpraktiken". Eylean. Archiviert von das Original am 15. September 2014. Abgerufen 15. September 2014.
  36. ^ Jeffries, Ron; Anderson, Ann; Hendrickson, Chet (2001). Extreme Programmierung installiert. Addison-Weslsy. pp.72–147. ISBN 978-0201-70842-4.
  37. ^ Lisa Crispin; Janet Gregory (2009). Agile Tests: Ein praktischer Leitfaden für Tester und agile Teams. Addison-Wesley.
  38. ^ Mitchell, Ian (2016). Agile Entwicklung in der Praxis. Tamare House. p. 11. ISBN 978-1-908552-49-5.
  39. ^ Larman, Craig (2004). Agile und iterative Entwicklung: Der Leitfaden eines Managers. Addison-Wesley. p. 27. ISBN 978-0-13-111155-4.
  40. ^ Boehm, B.; R. Turner (2004). Beweglichkeit und Disziplin ausbalancieren: ein Leitfaden für Verblüffte. Boston, MA: Addison-Wesley. ISBN 978-0-321-18612-6. Anhang A, Seiten 165–194
  41. ^ Larman, Craig (2004). "Kapitel 11: Tipps üben". Agile und iterative Entwicklung: Der Leitfaden eines Managers. p. 253. ISBN 9780131111554. Abgerufen 14. Oktober 2013.
  42. ^ Sliger, Michele; Broderick, Stacia (2008). Die Brücke des Software -Projektmanagers zur Beweglichkeit. Addison-Wesley. p. 46. ISBN 978-0-321-50275-9.
  43. ^ a b Boehm, B.; R. Turner (2004). Beweglichkeit und Disziplin ausbalancieren: ein Leitfaden für Verblüffte. Boston, MA: Addison-Wesley. S. 55–57. ISBN 978-0-321-18612-6.
  44. ^ Rakitin, Steven R. (2001). "Manifesto löst den Zynismus aus: Leserbrief an den Herausgeber von Steven R. Rakitin". IEEE -Computer. 34 (12): 4. doi:10.1109/mc.2001.10095. S2CID 221106984. Der Artikel mit dem Titel "Agile Software Development: The Business of Innovation" ... ist ein weiterer Versuch, die Disziplin des Software -Engineerings zu untergraben ... Wir möchten alle unsere Zeitcodierung verbringen. Denken Sie daran, echte Programmierer schreiben keine Dokumentation.
  45. ^ a b Scott Ambler. "Agile/Lean -Dokumentation: Strategien für die agile Softwareentwicklung".
  46. ^ Scott Ambler. "Nur kaum gut genug Modelle und Dokumente: eine agile Best Practice".
  47. ^ Geoffrey Wiseman (18. Juli 2007). "Benötigen agile Methoden Dokumentation?". Infoq. Zitieren Cooper, Ian (6. Juli 2007). "Stakkato -Signale: Agil und Dokumentation". WordPress.com.
  48. ^ a b c Abrahamson P, Salo O, Ronkainen J, Warsta J (2002). Agile Softwareentwicklungsmethoden: Überprüfung und Analyse (PDF) (Technischer Bericht). Vtt. 478.
  49. ^ "Leitfaden für agile Praktiken". die agile Allianz. Archiviert von das Original am 9. Februar 2014.
  50. ^ a b Aydin, M. N.; Harmsen, F.; Schlampig; Stagwee, R. A. (2004). "Eine agile Methode zur Entwicklung von Agile Information Systems". Turk J Elec Engin. 12 (2): 127–138.
  51. ^ Morris, David (2015). Das Paradox der agilen Transformation: Warum zu sehr anstrengend, agil zu sein, verhindern Organisationen daran, wirklich agil zu werden. NZ: Universität von Auckland. doi:10.13140/rg.2.2.32698.08640.
  52. ^ P. Abrahamsson, J. Warsta, M. T. Siponen & J. Ronkainen (2003). Neue Richtungen zu agilen Methoden: Eine vergleichende Analyse. Verfahren von ICSE'03, 244-254
  53. ^ Mirakhorli, M.; Rad, a.k.; Shams, F.; Pazoki, M.; Mirakhorli, A. (2008). "RDP -Technik: Eine Praxis zum Anpassen von XP". Verfahren des Internationalen Workshops 2008 zur Prüfung von agilen Praktiken oder Schießereien am Agile Corral (APOS '08). ACM. S. 23–32. doi:10.1145/1370143.1370149. ISBN 978-1-60558-021-0. S2CID 9528636.
  54. ^ Schwaber, K (2006) Scrum ist hart und disruptiv.
  55. ^ Vodde, B (2016) Die Geschichte von weniger. Keynote schließen. Scrum Australia, Melbourne. April 2016.
  56. ^ A. Lagstedt und Dahlberg, T. (2018). Verständnis der Seltenheit der ISD -Methodenauswahl - begrenzte Rationalität und funktionale Dummheit. Pacis 2018 Proceedings. 154. https://aisel.aisnet.org/pacis2018/154.
  57. ^ Park, J. S., McMahon, P. E. und Myburgh, B. (2016). Scrum angetrieben von Essenz. ACM Sigsoft Software Engineering Notes, 41 (1), S. 1–8.
  58. ^ Beck, K. (1999). Extreme Programmierung erklärt: Veränderung annehmen. Boston, MA: Addison-Wesley. ISBN 978-0-321-27865-4.
  59. ^ Evans, Ian. "Agile Lieferung bei British Telecom". Abgerufen 21. Februar 2011.
  60. ^ a b W. Scott Ambler (2006) Super Size Me In Dr. Dobbs Journal, 15. Februar 2006.
  61. ^ Schaaf, R.J. (2007). Agility xl System- und Softwaretechnologiekonferenz 2007 Archiviert 13. März 2016 bei der Wayback -Maschine, Tampa, FL
  62. ^ "Die Entfernung überbrücken". Sdmagazine.com. Abgerufen 1. Februar 2011.
  63. ^ Fowler, Martin. "Verwenden eines agilen Softwareprozesses mit Offshore -Entwicklung". Martinfowler.com. Abgerufen 6. Juni 2010.
  64. ^ Agile Prozesse Workshop II Verwalten mehrerer gleichzeitiger agiler Projekte. Washington: oopsla 2002
  65. ^ Cawley, Oisín; Wang, Xiaofeng; Richardson, Ita (2010). Abrahamsson, Pekka; Oza, Nilay (Hrsg.). MEAN/AGILE -Softwareentwicklungsmethoden in regulierten Umgebungen - Stand der Technik. Lean Enterprise Software und Systeme. Vorlesungen in der Verarbeitung von Geschäftsinformationen. Vol. 65. S. 31–36. doi:10.1007/978-3-642-16416-3_4. HDL:10344/683. ISBN 978-3-642-16415-6.
  66. ^ McHugh, Martin; McCaffery, Fergal; Coady, Garret (4. November 2014). Mitasiunas, Antanas; Rout, Terry; O'Connor, Rory V.; et al. (Hrsg.). Eine agile Implementierung innerhalb einer Organisation für medizinische Geräte -Software. Verbesserung der Softwareprozesse und Bestimmung der Fähigkeiten. Kommunikation in Computer- und Informationswissenschaft. Vol. 477. S. 190–201. doi:10.1007/978-3-319-13036-1_17. ISBN 978-3-319-13035-4.
  67. ^ Wang, Yang; Ramadani, Jasmin; Wagner, Stefan (29. November 2017). Eine explorative Studie zur Anwendung eines Scrum-Entwicklungsprozesses für sicherheitskritische Systeme. Produktorientierter Softwareprozessverbesserung. Vorlesungsnotizen in Informatik. Vol. 10611. S. 324–340. Arxiv:1703.05375. Bibcode:2017ArXIV170305375W. doi:10.1007/978-3-319-69926-4_23. ISBN 9783319699257. S2CID 4585465.
  68. ^ "Safescrum - Stef". Sintef.no. Abgerufen 26. März 2019.
  69. ^ Thor Myklebust, Tor Stålhane, Geir Kjetil Hanssen, Tormod Wien und Børge Haugset: Scrum, Dokumentation und IEC 61508-3: 2010 Software Standard, http://www.sintef.no/globalassets/ec-61508-documentation-and-safescrum-psam12.pdf
  70. ^ Fitzgerald, b.; Stol, K.-J.; O'Sullivan, R.; O'Brien, D. (Mai 2013). Skalierende agile Methoden zu regulierten Umgebungen: Eine Branchen -Fallstudie. 2013 35. Internationale Konferenz für Software Engineering (ICSE). S. 863–872. doi:10.1109/ICSE.2013.6606635. HDL:10344/3055. ISBN 978-1-4673-3076-3. S2CID 192403.
  71. ^ Beck, Kent (2000). Extreme Programmierung erklärt. Addison-Wesley. pp.1–24. ISBN 978-0201616415.
  72. ^ Datta, Subhajit (2006). "Agility Measurement Index: Eine Metrik für die Kreuzung von Softwareentwicklungsmethoden". ACM-SE 44 Proceedings der 44. jährlichen Südostregionalkonferenz. p. 271. doi:10.1145/1185448.1185509. ISBN 1595933158.
  73. ^ Peter Lappo; Henry C.T. Andrew. "Agilität bewerten" (PDF). Archiviert von das Original (PDF) am 15. September 2009. Abgerufen 6. Juni 2010.
  74. ^ Joe Little (2. Dezember 2007). "Nokia-Test, ein Scrum-spezifischer Test". Agileconsortium.blogspot.com. Abgerufen 6. Juni 2010.
  75. ^ Mark Seuffert; Mayberg, Schweden. "Karlskrona -Test, ein generischer agiler Adoptionstest". Mayberg.se. Abgerufen 5. April 2014.
  76. ^ "Wie agil bist du? (Nehmen Sie diesen 42 -Punkte -Test)". Allaboutagile.com/. Archiviert von das Original am 5. Mai 2014. Abgerufen 3. April 2014.
  77. ^ "Agile Methodologies -Umfrageergebnisse" (PDF). Shine Technologies. Januar 2003. archiviert von das Original (PDF) am 21. August 2010. Abgerufen 3. Juni 2010. 95% gaben an, dass es entweder keine Wirkung oder keine Kostenreduzierung gab ... 93% gaben an, dass die Produktivität besser oder signifikant besser war ... 88% gaben an, dass die Qualität besser oder signifikant besser war ... 83% gaben an, dass die Geschäftszufriedenheit besser sei oder deutlich besser
  78. ^ "2013 State of Agile Report: Warum Agile?". stateofagile.com. 27. Januar 2014. archiviert von das Original am 28. August 2014. Abgerufen 13. August 2014.
  79. ^ Status quo agil, Zweite Studie zu Erfolg und Formen der Verwendung agiler Methoden. Abgerufen am 1. Juli 2015 abgerufen
  80. ^ Ambler, Scott (3. August 2006). "Umfrage sagt: Agile arbeitet in der Praxis". Dr. Dobbs. Abgerufen 3. Juni 2010. Nur 6% gaben an, dass ihre Produktivität gesenkt wurde ... 34% der Befragten wurden keine Produktivitätsänderung gemeldet, und 60% gaben an, die Produktivität zu erhöhen ... 66% [antworteten], dass die Qualität höher ist ... 58% der Organisationen berichten Verbesserte Zufriedenheit, während nur 3% die Zufriedenheit verringerten.
  81. ^ "Beantwortung des" Wo ist der Beweis, dass agile Methoden "Frage" funktionieren ". Agilemodeling.com. 19. Januar 2007. Abgerufen 2. April 2010.
  82. ^ Shore & Warden 2008, p. 47
  83. ^ Beck, Kent (2000). Extreme Programmierung erklärt. Addison-Wesley. pp.48–49. ISBN 978-0201616415.
  84. ^ Rouse, Margaret. "Sprint (Softwareentwicklung) Definition". SearchSoftwareQuality.techtarget.com. Abgerufen 2. Oktober 2015.
  85. ^ Goldstein, Ilan (11. Oktober 2011). "Sprintprobleme - Wenn Sprints zu Krabbeln werden". www.axisagile.com.au. Abgerufen 8. Juni 2014.
  86. ^ "Projektrollen und Verantwortungsverteilung". Agile-only.com. Abgerufen 15. Juni 2014.
  87. ^ Bourne, Lynda. "Was macht ein Projektsponsor wirklich?". blogs.pmi.org. Archiviert von das Original am 7. Juni 2014. Abgerufen 8. Juni 2014.
  88. ^ "9. Bundesstaat Agile Report". Stadium der agilen Umfrage. VersionOne. Archiviert von das Original am 12. Januar 2015. Abgerufen 8. Juni 2014.
  89. ^ Sims, Chris; Johnson, Hillary Louise (15. Februar 2011). Die Elemente des Scrum (Kindle ed.). Dymaxicon. p. 73.
  90. ^ Rothman, Johanna Rothman (25. August 2011). "Wenn Sie überhaupt keinen Produktbesitzer haben". www.jrothman.com. Abgerufen 8. Juni 2014.
  91. ^ Fox, Alyssa (8. April 2014). "Arbeiten in mehreren agilen Teams". Techwhirl.com/. Abgerufen 14. Juni 2014.
  92. ^ "Daily Scrum Meeting". www.mountaingoatSoftware.com. Abgerufen 14. Juni 2014.
  93. ^ a b Mai, Robert. "Effektive Sprintplanung". www.agileexecutives.org. Archiviert von das Original am 28. Juni 2014. Abgerufen 14. Juni 2014.
  94. ^ Berczuk, Steve. "Mission möglich: Scrummaster und technischer Mitarbeiter". www.agileconnection.com. Abgerufen 14. Juni 2014.
  95. ^ "Wie man agile Scrum implementiert". Abgerufen 4. Januar 2022.
  96. ^ NAMTA, Rajneesh. "Gedanken zur Testautomatisierung in Agile". www.infoq.com. Abgerufen 14. Juni 2014.
  97. ^ a b Band, ZVI (22. März 2014). "Technische Schuld + Red Oktober". Abgerufen 8. Juni 2014.
  98. ^ Ufer, James. "Die Kunst der agilen Entwicklung: Refactoring". www.jamesshore.com. Abgerufen 14. Juni 2014.
  99. ^ "Schritt 4: Sprintplanung (Aufgaben)". www.allaboutagile.com. Archiviert von das Original am 29. Juni 2014. Abgerufen 14. Juni 2014.
  100. ^ George, Claire (3. März 2014). "Warum eine Begrenzung Ihrer Arbeit in der Arbeit einschränken?". Leankit.com. Abgerufen 14. Juni 2014.
  101. ^ "Sprint -Planungstreffen". www.mountaingoatSoftware.com. Abgerufen 14. Juni 2014.
  102. ^ McMillan, Keith. "Zeit, Ressourcen, Umfang ... und Qualität". www.adeptechllc.com. Abgerufen 15. Juni 2014.
  103. ^ "Aktuelle Studie zu Einschränkungen von Agile". Verfahren Informatik. 78: 291–297. Januar 2016. doi:10.1016/j.Procs.2016.02.056.
  104. ^ a b "Der Beschaffungsaufruf nach Agile, was bedeutet das?". 1. November 2019.
  105. ^ Moran, Alan (2015). Management Agile: Strategie, Implementierung, Organisation und Menschen. Springer. ISBN 978-3-319-16262-1.
  106. ^ ExecutiveBrief, Welcher Lebenszyklus eignet sich am besten für Ihr Projekt?, PM Hut. Zugriff am 23. Oktober 2009.
  107. ^ "Agiles Projektmanagement". VersionOne. Abgerufen 1. Juni 2015.
  108. ^ "Was ist agiles Management?". Projektläufe. Abgerufen 1. Juni 2015.
  109. ^ DU SAGTEST. "Anzeigen Kapitel 201 Programmzyklus Betriebspolitik" Archiviert 23. Oktober 2019 bei der Wayback -Maschine. Abgerufen am 19. April 2017
  110. ^ Projektmanagementinstitut, Ein Leitfaden für das Projektmanagementkörper von Wissen (PMBOK GUIDE), Sechste Ausgabe
  111. ^ Richet, Jean-Loup (2013). Agile Innovation. Fälle und angewandte Forschung, Nr. 31. Essec-isis. ISBN978-2-36456-091-8
  112. ^ Smith, Preston G (2007). Flexible Produktentwicklung. Jossey-Bass. p. 25. ISBN 978-0-7879-9584-3.
  113. ^ Newton Lee (2014). "Auf die Billboard -Charts einsteigen: Musikproduktion als agile Softwareentwicklung", " Digital da Vinci: Computer in Musik. Springer Science+Business Media. ISBN 978-1-4939-0535-5.
  114. ^ Moran, Alan (2015). Management Agile: Strategie, Implementierung, Organisation und Menschen. Springer Verlag. ISBN 978-3-319-16262-1.
  115. ^ "Agile Programmierung - für Ihre Familie".
  116. ^ Larman, Craig; Bas Vodde (13. August 2009). Top zehn organisatorische Hindernisse für die groß angelegte agile Adoption. Informit.
  117. ^ "Einführung in das Hybridprojektmanagement". 20. Juli 2016.
  118. ^ Barlow, Jordan B.; Justin Scott Giboney; Mark Jeffery Keith; David W. Wilson; Ryan M. Schuetzler; Paul Benjamin Lowry; Anthony Vance (2011). "Überblick und Anleitung zur agilen Entwicklung in großen Organisationen". Kommunikation des Verbandes für Informationssysteme. 29 (1): 25–44. doi:10.17705/1cais.02902.
  119. ^ Kupersmith, Kupe (4. Juli 2011). "Agile ist eine Modeerscheinung".
  120. ^ a b Kruchtten, Philippe (20. Juni 2011). "Agiles Teenager -Krise?". Infoq.
  121. ^ Richard Utz, "gegen AdminSpeak", " Chronik der Hochschulbildung, 24. Juni 2020.
  122. ^ Cohn, Mike (2015). Erfolgreich mit Agile. Pearson. S. 5–10. ISBN 978-0-321-57936-2.

Weitere Lektüre

Externe Links