Ist agil in Bezug auf Entwicklung oder Management?

9

Bei einer Debatte darüber, worum es bei Scrum geht, stellte ich fest, dass ich die agile Sache vielleicht völlig missverstanden habe. Es scheint mir, dass es bei Scrum (das sicherlich als agiler Prozess angesehen wird) darum geht, Funktionen und Sprints sowie Rollen und Dinge zu verwalten, die nichts mit TDD, Paarprogrammierung, CI, Refactoring und anderen entwicklerzentrierten Techniken und Praktiken zu tun haben. bis jetzt) ​​sind das Herz von Agilität. Jetzt stehe ich vor einer Schwierigkeit!

1) Ist Scrum unabhängig davon, ob Entwickler agile Praktiken anwenden?

2) Können Sie Scrum in einem Team implementieren, das keine automatisierten Tests verwendet? führt kein Refactoring durch oder hält sich nicht an die agilen Programmierpraktiken?

Ashkan Kh. Nazary
quelle

Antworten:

19

Es ist ein häufiger Fehler zu glauben, dass Scrum gleich Agile ist.

Agil zu sein folgt den vier Prinzipien des Agilen Manifests . Scrum ist ein Projektmanagementprozess, der diesen Prinzipien entspricht, aber an und für sich nicht agil ist. XP (TDD, Pair Programming) ist ein Entwicklungsprozess, der ebenfalls diesen Prinzipien und Scrum entspricht, aber nicht agil ist. Kontinuierliche Integration, kontinuierliche Bereitstellung, DevOps, alles im Einklang mit den Agile-Prinzipien.

Befolgen Sie in erster Linie die Grundsätze. Alle diese Schlagworte sind nur Methoden, die Menschen erfolgreich gefunden haben, um den Prinzipien zu folgen. Der Hauptteil von "Agil sein" besteht jedoch darin, Ihre Prozesse nach Belieben anpassen zu können, wenn sie nicht den Prinzipien von Agile entsprechen.

pdr
quelle
3
agilemanifesto.org/principles.html geht auf das Manifest ein.
1
@ ashy_32bit: Keine Frage, die jemand beantworten kann, ohne das Team und das Projekt zu kennen. Nicht jedes Team oder Projekt würde von Agility profitieren. Ich habe jedoch in einem Team gearbeitet, das Scrum und CI und nichts anderes (aus der Agile-Trickkiste) gemacht hat, und es hat in diesem Fall besser funktioniert, als keines dieser Dinge zu tun. Aber wir haben versucht, unsere Beweglichkeit im Laufe der Zeit zu verbessern.
pdr
1
+1 Danke pdr, es frustriert mich ohne Ende, dass jeder Agilität sagt und Scrum bedeutet, was letztendlich das Wohl der tatsächlichen agilen Prinzipien verdunkelt, weil jeder denkt, Agilität bedeutet tägliche Stand-ups und Sprints und erfährt nie etwas über das Manifest.
Jimmy Hoffa
1
@ ashy_32bit Ich würde sagen, der Scrum Master wird dem Team helfen, strenger und affektiver zu werden, wenn er einem guten Prozess folgt, aber der erfahrene XP-Trainer wird dem Team helfen, strenger und affektiver zu werden, wenn er guten Code schreibt. Basierend auf Ihrer Beschreibung des Teams schätze ich, dass sie Hilfe beim Schreiben von besserem Code gebrauchen könnten, wenn sie noch nie zuvor Tests geschrieben haben. In diesem Fall schreiben sie wahrscheinlich keinen sehr locker gekoppelten Code oder achten auf Designprinzipien usw. Zugegeben, Ihr hypothetisches Team ist auch im Prozess eindeutig schlecht.
Jimmy Hoffa
1
Bin ich der einzige, der nicht glaubt, dass "agil" einen Großbuchstaben haben sollte? Ich bin nicht nur ein grammatikalischer Pedant - es ist wichtig. Verstehen Sie Agilität als Qualität: Wenn Ihr Team agil ist, ist es flexibel, anpassungsfähig und methodisch. Ich finde immer, dass Verwirrung beginnt, wenn sie über "Agile" sprechen, als ob es der Name eines Standardmusters oder -prozesses ist, an den sie sich halten müssen.
Tim
6

Ist Scrum unabhängig davon, ob Entwickler agile Praktiken anwenden?

Scrum ist eine Reihe von Richtlinien, die ein Team dazu ermutigen, agil zu sein.

Können Sie Scrum in einem Team implementieren, das keine automatisierten Tests verwendet? führt kein Refactoring durch oder hält sich nicht an die agilen Programmierpraktiken?

Sehr schwierig, denn am Ende jedes Sprints muss ein funktionierendes Produkt vorhanden sein. Wenn Sie einen vollständigen manuellen Regressionstest durchführen müssen, um zu beweisen, dass er funktioniert, ist dies wahrscheinlich nicht erreichbar.

Tim
quelle
Kurz und bündig!
Kris Van Bael
5

Alistair Cockburn (einer der Urheber der Agile-Bewegung) sagt dies über Crystal Clear (eine Facette seiner Agile-Methodik):

Crystal Clear kann einem Level 3-Hörer mit den folgenden Worten beschrieben werden:

„Stellen Sie 4-6 Personen in einen Raum mit Arbeitsstationen und Whiteboards und greifen Sie auf die Benutzer zu. Lassen Sie sie alle ein bis zwei Monate laufende, getestete Software an die Benutzer liefern und lassen Sie sie ansonsten in Ruhe. “

Dies ist eine Definition von Agilität, zugegebenermaßen für erfahrene Entwicklungsmitarbeiter, die wissen, was sie tun, und denen vertraut werden kann, dass sie weitermachen und es tun. So heißt das Sie haben CI und TDD und Pair Programming und all die anderen Dinge in Mode zu benutzen? Einfach gesagt ... Nein.

Bei Agile geht es nicht darum, einer Reihe von Prozessen zu folgen, sondern darum, effektiv zu sein. Was das für Sie bedeutet, hängt von Ihrem Team ab und davon, wie es funktioniert und was Sie für nützlich halten. Wenn TDD Ihnen nicht dabei hilft, Arbeitscode zu erstellen, hören Sie nicht mehr auf die kleineren Lichter, die im Web darüber schreien, und verwenden Sie ihn nicht! Wenn die Paarprogrammierung Ihrem Team wirklich hilft, sich zu konzentrieren und Dinge zu erledigen, ignorieren Sie jeden, der sagt, es sei Zeitverschwendung, und organisieren Sie Ihr Team wie ein dreibeiniges Rennen am Schulsporttag.

Ich war vor vielen Jahren agil, so viele, dass wir nicht einmal merkten, dass wir agil waren - wir lieferten jeden Monat Iterationen des Produkts und fuhren herum, um Fehler zu beheben und regelmäßig neue Funktionen hinzuzufügen. Wir haben absolut keine Unit-Tests durchgeführt, da solche Dinge nicht erfunden wurden und das Refactoring-Buch nicht geschrieben wurde. Ja, Sie können absolut agil sein, ohne eine der sogenannten agilen Praktiken.

Alistair sagt dies auch von Kent Beck:

Auf die Frage nach XP und den fünf Stufen des „Capability Maturity Model“ des Software Engineering Institute antwortete er mit den drei Reifegraden von XP:

  1. Mach alles wie geschrieben.

  2. Experimentieren Sie anschließend mit Variationen der Regeln.

  3. Schließlich ist es egal, ob Sie XP machen oder nicht.

Schließlich ist es egal, ob Sie XP machen oder nicht ... weise Worte, die Sie daran erinnern sollten, nicht in diese Falle zu tappen .

gbjbaanb
quelle
HAHA, die Falle unten ist komisch und so wahr. Danke für das Lachen. Auch +1 kann ich nicht mehr zustimmen. Leider hängt die gesamte hier vorgeschriebene Technik zunächst davon ab, gute Entwickler zu haben (oder solche, die zumindest gut sein wollen). Viele Ingenieure haben kein Interesse daran, gut zu sein, wenn es einfacher ist, schlecht zu sein. Eigentlich trifft das wahrscheinlich auf viele Menschen zu, nicht nur auf Ingenieure.
Jimmy Hoffa
0

Scrum ist eine agile Variante, die einem bestimmten Muster folgt, um die Ziele der agilen Entwicklungsmethode zu erreichen. Sie können Scrum nicht folgen und nicht agil sein, aber Sie können agil sein und Scrum nicht folgen.

Scrum hat keinen Einfluss auf die Verwendung automatisierter Tests, Agile tendiert dazu, diese zu bevorzugen, aber sie sind keineswegs erforderlich. Refactoring sollte ein Ziel in Agile und Scrum sein, wird aber oft ignoriert. Keine Absicht zu haben, jemals umzugestalten, ist nicht wirklich agil.

Ryathal
quelle
0

Ist agil in Bezug auf Entwicklung oder Management?

Agile ist eine Reihe von Softwareentwicklungsverfahren, um Flexibilität und sich schnell ändernde Marktanforderungen zu erfüllen - oder so genannte beschleunigte Bereitstellung . Im Großen und Ganzen geht es also um einen flexiblen Ansatz, um den sich ändernden komplexen Anforderungen des Kunden gerecht zu werden, indem die Arbeit in kleine Teile aufgeteilt und die Funktionalität in schnellen Iterationen von 2 bis 4 Wochen bereitgestellt wird.

Um diese Flexibilität zu gewährleisten, muss das Entwicklungsteam jedoch agile Programmierpraktiken üben .

Beschreibung aus dem Wiki zur agilen Softwareentwicklung :

Agile Softwareentwicklung ist eine Gruppe von Softwareentwicklungsmethoden, die auf iterativer und inkrementeller Entwicklung basieren. Dabei entwickeln sich Anforderungen und Lösungen durch die Zusammenarbeit zwischen selbstorganisierenden, funktionsübergreifenden Teams. Es fördert die adaptive Planung, die evolutionäre Entwicklung und Bereitstellung, einen iterativen Ansatz mit Zeitrahmen und eine schnelle und flexible Reaktion auf Veränderungen. Es ist ein konzeptioneller Rahmen, der vorausgesehene Interaktionen während des gesamten Entwicklungszyklus fördert.

Geben Sie hier die Bildbeschreibung ein

Yusubov
quelle
0

Tatsächlich können Sie Scrum in Projekten verwenden, die überhaupt nichts mit Softwareentwicklung zu tun haben. Es ist eine Projektmanagement- / Teammanagementmethode.

Rense
quelle
-2

1) NEIN !!!! Scrum ist agil, was bedeutet, dass agile Entwicklungspraktiken (TDD, Paarprogrammierung, CI, Refactoring usw.) für alle Aspekte eines Scrum-Projekts sehr wichtig sind. Es wird viel schwieriger sein, die Laufrate Ihres Teams herauszufinden, die Arbeit zu schätzen, die geeignete Sprintgröße festzulegen usw., wenn Sie diese Methoden nicht anwenden.

2) Ja, Sie können Scrum in einem Team implementieren, das sich nicht an agile Praktiken hält, aber ich denke, dass dies das Potenzial des Teams wirklich einschränkt. Ein großer Teil des Erfolgs von Scrum / Agile sind die Leistungs- und Qualitätsgewinne, die Sie durch agile Entwicklungspraktiken erzielen, die für die Bereitstellung vollständiger Front-to-Back-Funktionen bei jedem Sprint von zentraler Bedeutung sind.

Wenn jemand anderes in Ihrer Gruppe versucht, Sie davon zu überzeugen, dass agile Entwicklungspraktiken Zeitverschwendung sind, sollten Sie einige Zeit darauf verwenden, zu betonen, warum diese Praktiken sowohl bei Scrum als auch bei Agile insgesamt immer betont werden. Sie machen wirklich einen Unterschied.

str8killinit
quelle
1
Bitte verwenden Sie keine Begriffe wie "Scrum / Agile", diese sind so weit von austauschbaren Begriffen entfernt. Ich denke, Sie wissen das, aber Sie halten immer noch an der Idee fest, dass dies der Fall ist, wenn Sie sie auf diese Weise verwenden.
Jimmy Hoffa
Scrum ist agil. Mit einem Kleinbuchstaben 'a'. Agil ist ein Adjektiv, nicht der Name einer Sache. Abgesehen davon halte ich diese Antwort für sinnvoll.
Tim
2
@ Tim agile das Wort ist ein Adjektiv, aber in diesem Fall bezieht sich Agile auf den Titel "Agile Software Development", wie er auf agilemanifesto.org definiert ist, und als solches ist es kein Adjektiv, sondern ein Substantiv. Dies ist meine Beschwerde über Leute, die Scrum als agil bezeichnen. Die Leute denken, "Scrum ist agil" und erfahren dann nie etwas über das agile Manifest, aus dem dieses ganze "agile" Schlagwort stammt, und die wahre Definition von "agil". . Sich auf Dinge zu beziehen, die vom Adjektiv als agil angesehen werden, ist nur mehrdeutig, das Manifest ist nicht mehrdeutig, es ist prinzipiell und spezifisch.
Jimmy Hoffa