Was ist eine agile Methodik? [geschlossen]

27

Kann jemand die agile Methodik in einfachen Sätzen erklären?

Chankey Pathak
quelle
3
Laut meinem CompSci-Lehrer am College, "Wasserfall-Methode, nur schneller"
Malfist
11
@Malfist Hoffen wir, dass er / sie in der Wissenschaft bleibt, wo der Schaden auf das Gehirn beschränkt ist ;-)
Steven A. Lowe
@Steven A. Lowe, das Traurige ist, das dritte Kapitel unseres Lehrbuchs ist "Agile Software Development" und er hat immer noch keine Ahnung, was es ist.
Malfist
2
@Malfist Ich war zufällig Mitte der neunziger Jahre auf einem großen College-Campus in einer Großstadt und bin gekommen, um mit dem Dekan von CS zu sprechen. Er war zufällig in einer gesprächigen Stimmung, also sprachen wir ein wenig über den Stand der Technik und wie er sich im Lehrplan des Colleges widerspiegelte. Er sagte mir, "objektorientiertes Programmieren ist nur eine Modeerscheinung, wir lehren es hier nicht". Sehr traurig.
Steven A. Lowe
1
Agile Methodik ist wie chinesische Sprache - Sie bekommen es nicht, bis Sie es lernen;)
Job

Antworten:

22

Agile ist eine Menge Dinge und Praktiken, aber ich denke, der Kern davon ist nur iterative Entwicklung.

Iterativ: Denken Sie an einen Haufen sehr kleiner Wasserfälle. Das heißt, die Wasserfallmethode (Anforderungen-> Spezifikation-> Code-> Test), aber anstatt dies im Laufe eines Jahres oder so zu tun, tun Sie dies im Laufe einiger Wochen für einen überschaubaren Teil der Gesamtmenge Projekt. Am Ende von 'Iteration / Sprint / Inkrement' steht ein kleiner, aber vollständiger und getesteter Satz zusätzlicher Funktionen zur Verfügung.

Auf diese Weise können Sie den Projektverlauf schnell ändern, wenn sich herausstellt, dass das, was Sie tun, nicht den Wünschen des Kunden entspricht oder sich die geschäftlichen Anforderungen ändern oder was auch immer. Daher der Begriff "agil".

Fischtoaster
quelle
Das ist wirklich nicht die richtige Antwort. Agilität ist keine Methode, sondern eine Philosophie.
RibaldEddie
32

Ich denke, nichts drückt es besser aus als das Agile Manifest selbst:

Wir entdecken bessere Wege, um
Software zu entwickeln , indem wir dies tun und anderen dabei helfen.
Durch diese Arbeit sind wir zu Wert gekommen:

Individuen und Interaktionen über Prozesse und Tools.
Arbeitssoftware über umfassende Dokumentation.
Zusammenarbeit mit Kunden über Vertragsverhandlungen.
Reaktion auf die Umstellung nach einem Plan

Das heißt, während es Wert in den Gegenständen auf
der rechten Seite gibt, schätzen wir die Gegenstände auf der linken Seite mehr.

von http://agilemanifesto.org/

Andy Lowry
quelle
1
Das einzige Problem ist, dass das Manifest sich selbst nicht gerecht wird, es sei denn, Sie haben einen schlechten Prozess gesehen. Es braucht einen Vergleich mit dem Schlechten, um wirklich zu verstehen, wie viel das Manifest sagt. Trotzdem +1, weil zu viele Leute in diesen Tagen Agile und Scrum verwirren. Und selbst dann verwechseln sie SCRUM mit Scrum + XP.
MIA
2
Agile kann sich jedoch manchmal widersprechen. Grundsätzlich "schätzen wir Flexibilität, aber wir entwerten die Werkzeuge und Prozesse, die notwendig sind, um diese Flexibilität zu erreichen". Gute, flexible Tools sind absolut notwendig, um auf Veränderungen zu reagieren. ZB Ruby-on-Rails-Migrationen im Vergleich zu einem selbst gebackenen ORM-System, für das eine einfache Änderung des Datenmodells eine Woche dauern kann.
User8865
2
Sie fragen sich nur, wie "Individuen und Interaktionen" "Prozesse und Werkzeuge" ersetzen könnten oder wie "Arbeitssoftware gegen umfassende Dokumentation" sein könnte? Das sind alles verschiedene Dinge ... Egal, ich habe mich nicht in Agile verliebt und ich denke, das werde ich nicht.
NoChance
13

Für mich ist die wichtigste Idee:

Anforderungsänderungen werden eintreten, da wir gezwungen sind, Software mit dem nötigen Wissen zu entwerfen (Beginn des Projekts). Die Anforderungen werden erst im Verlauf des Projekts klarer.

Herkömmliche (Wasserfall-) Ansätze versuchen, diese Änderung zu mildern, indem sie zu Beginn des Projekts alle an einen Vertrag binden, indem sie umfassende Spezifikationen unterzeichnen. Dies mag als CYA funktionieren, aber es macht niemanden glücklich, etwas zu liefern, das nicht den Bedürfnissen der Benutzer entspricht, insbesondere wenn ihre Einwände mit "Nun, Sie haben sich abgemeldet!"

Agile Methoden sind so konzipiert, dass sie die unvermeidlichen Veränderungen berücksichtigen, anstatt das Entwicklungsteam von ihnen abzuschirmen. Dies geschieht auf verschiedene Weise, insbesondere durch die iterative Entwicklung und die kontinuierliche Einbeziehung der Beteiligten in den Prozess. Meiner Erfahrung nach sind alle Beteiligten am Ende zufriedener, obwohl es für einige Managementtypen, die Hardcore-Planer sind, unangenehmer sein kann.

JohnFx
quelle
6

In einem Satz sieht das so aus:

Agile Softwareentwicklung ist eine Gruppe von Softwareentwicklungsmethoden, die auf iterativer und inkrementeller Entwicklung basieren. Dabei entstehen Anforderungen und Lösungen durch die Zusammenarbeit von sich selbst organisierenden, funktionsübergreifenden Teams .

Dies kommt aus der Wikipedia-Definition, und ich mag es sehr. Ich habe die Grundprinzipien hervorgehoben.


quelle
3

Ich möchte nur noch hinzufügen, was Agile NICHT ist. Es gibt viele Läden, die behaupten, agil zu sein, aber auf eine Weise, die nur bedeutet, dass sie nicht an der Planung ihrer Projekte interessiert sind und erwarten, dass die Dinge in einer unangemessen kurzen Zeit erledigt werden.

Agile! = Kein Projektplan. Es ist schwierig, mit Menschen umzugehen, die implizit der Meinung sind, dass die Aussage falsch ist, weil sie in der Regel Managementtypen sind und nicht immer leicht zu widersprechen sind.

q303
quelle
Seitdem ich die Frage bis heute gestellt habe, bin ich Teil einiger solcher Unternehmen und stimme Ihnen zu.
Chankey Pathak
Einverstanden. Viele Leute agil ist nur ein billiger Weg, um Dinge zu tun.
SmallChess
2

Andy hat bereits auf das Agile Manifest verwiesen, über das ich gerade nachdenke.

Ich halte es für nützlich, auch zu prüfen, woher das Agile Manifest stammt. Es gab eine Reihe von Methoden, die einige gemeinsame Elemente und viele ähnliche Motivationen aufwiesen: Extreme Programming (XP), Scrum, DSDM, Adaptive Software-Entwicklung, Crystal, Feature-Driven Development, Pragmatic Programming (Liste von Alistair Cockburn ). Die Leute, die diese Methoden vorschlugen, beschlossen, einen Marketingbegriff auszuarbeiten, der die Gemeinsamkeiten abdeckte, um die Aussagekraft zu verbessern.

Interessanterweise (so wie mir jemand sagte) gab es eine Reihe von Namen auf der Auswahlliste, die anstelle von "Agile" hätten ausgewählt werden können - einer davon war "Adaptive". Ich persönlich denke, dass als ein einziges Wort, das besser zusammenfasst, worum es bei agil wirklich geht, besser als "agil"!

FinnNk
quelle
2

Bei der Anwendung einer agilen Methodik kommt es darauf an, die Lieferung von Qualitätsprodukten über andere Aspekte der Produktentwicklung hinweg zu betonen und zu erkennen, dass das Feedback der Benutzergemeinschaft ein wesentlicher Bestandteil bei der Erstellung von Qualitätsprodukten ist.

Vergleichen Sie dies mit einem traditionellen Entwicklungsansatz für Wasserfälle, bei dem Design, Dokumentation und Schnittstellendefinition im Vordergrund stehen, während die Implementierung und der Übergang des Produkts von der Entwicklung zur Veröffentlichung im Vordergrund stehen.

Meiner Meinung nach ist die Qualität, die ein Team in ein Produkt einbauen kann, in der Überprüfung begründet, dass ein Produkt wie vom Entwicklungsteam beabsichtigt funktioniert und vernünftigerweise vorhersehbare Verbesserungen ermöglicht. Es gibt auch Qualitätsfaktoren, die ausschließlich auf der Wahrnehmung beruhen und messen, wie gut ein Produkt den Bedürfnissen seiner Benutzer entspricht.

Agile Ansätze tendieren dazu, Produkte iterativ zu liefern , indem sie Benutzer- und Entwickler-Feedback in jede Iteration einbeziehen, und fördern die Bereitstellung jedes Funktionsinkrements, wenn eine minimale Lebensfähigkeit erreicht wird , um häufiges Benutzer-Feedback auszulösen und der Tendenz von Entwicklungsaktivitäten entgegenzuwirken längere Zeit ohne Rückmeldung der Nutzer. Meiner Meinung nach unterstützen andere Aspekte eines agilen Ansatzes diese zentralen Grundsätze.

  • Durch die Betonung der häufigen Zusammenarbeit mit Kunden wird ein Benutzerfeedback generiert, während gleichzeitig Flexibilität für Änderungen der Anforderungen besteht. Dadurch kann die Produktentwicklung dieses Feedback regelmäßig integrieren
  • Die häufige Integration in relevante Bereitstellungskonfigurationen und -umgebungen geht Hand in Hand mit der ständigen Ermittlung, welche Konfigurationen und Umgebungen relevant bleiben, um sicherzustellen, dass das Produkt für die Benutzer, die Feedback geben, wertvoll und relevant bleibt
  • Selbstorganisation und die Förderung funktionsübergreifender Teams tragen zur Schaffung persönlicher Verantwortlichkeit im Team bei und befähigen das Team zu bestimmen, wie Straßensperren auf effiziente Weise am besten beseitigt werden können, ohne durch vorab zugewiesene Rollen und Managementhierarchien im Team zurückgehalten zu werden
taub
quelle