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?
Scrum ist eine Reihe von Richtlinien, die ein Team dazu ermutigen, agil zu sein.
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.
quelle
Alistair Cockburn (einer der Urheber der Agile-Bewegung) sagt dies über Crystal Clear (eine Facette seiner Agile-Methodik):
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:
Schließlich ist es egal, ob Sie XP machen oder nicht ... weise Worte, die Sie daran erinnern sollten, nicht in diese Falle zu tappen .
quelle
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.
quelle
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 :
quelle
Tatsächlich können Sie Scrum in Projekten verwenden, die überhaupt nichts mit Softwareentwicklung zu tun haben. Es ist eine Projektmanagement- / Teammanagementmethode.
quelle
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.
quelle