„Also möchte ich Ihnen etwas über Agile und Scrum erzählen .“

„Zu Beginn des 21. Jahrhunderts wurde die Art und Weise, wie Menschen über Programmierung dachten, auf den Kopf gestellt.“

„Alle waren davon überzeugt, dass die langfristige Planung nicht funktionierte, also beschlossen sie, ganz darauf zu verzichten.“

„Wie haben sie das gemacht?“

"Hier ist wie."

„Sie haben den flexibelsten Projektmanagement-Ansatz erfunden, der möglich ist.“

Hier sind die Hauptideen hinter der agilen Entwicklung :“

  • Menschen und Kommunikation sind wichtiger als Prozesse und Tools;
  • ein funktionierendes Produkt ist wichtiger als eine umfassende Dokumentation;
  • Die Zusammenarbeit mit dem Kunden ist wichtiger als die Einhaltung der Vertragsbedingungen.
  • Die Bereitschaft zur Veränderung ist wichtiger als das Festhalten am ursprünglichen Plan.

Hier sind Prinzipien der schnellen Entwicklung:

  • den Kunden zufriedenstellen, indem wir frühzeitig und kontinuierlich wertvolle Software bereitstellen;
  • willkommene Änderungen der Anforderungen auch am Ende der Entwicklung (dies kann die Wettbewerbsfähigkeit des Endprodukts erhöhen);
  • Liefern Sie regelmäßig funktionierende Software (jeden Monat, jede Woche oder öfter);
  • enge tägliche Kommunikation zwischen Kunde und Entwickler während des gesamten Projekts;
  • Das Projekt wird von motivierten Personen bearbeitet, denen die notwendigen Arbeitsbedingungen, Unterstützung und Vertrauen geboten werden.
  • Die bevorzugte Methode zur Übermittlung von Informationen ist ein persönliches Gespräch (von Angesicht zu Angesicht).
  • funktionierende Software ist der beste Maßstab für Fortschritt;
  • Sponsoren, Entwickler und Benutzer sollten in der Lage sein, auf unbestimmte Zeit ein konstantes Tempo aufrechtzuerhalten.
  • ständiger Fokus auf die Verbesserung der technischen Exzellenz und des benutzerfreundlichen Designs;
  • Einfachheit ist die Kunst, keine überflüssige Arbeit zu leisten;
  • die besten technischen Anforderungen, Design und Architektur kommen von einem selbstorganisierten Team;
  • ständige Anpassung an sich ändernde Umstände.

„Das Hauptproblem bei der Softwareentwicklung bestand darin, dass keiner der Teilnehmer zu irgendeinem Zeitpunkt vollständige Informationen darüber hatte, was zu tun ist.“

„Der Kunde kann sagen, wie er sich das Programm vorstellt, aber er wird etwas weglassen oder etwas als selbstverständlich ansehen.“

„Der Manager muss in der Regel Anforderungen vom Programmierjargon in die Sprache des Kunden und wieder zurück übersetzen.“

„Es gibt zu viel Unsicherheit.“

„Oft sind die Anforderungen des Kunden so: Machen Sie es auf irgendeine Weise und zeigen Sie es mir dann. Wenn es mir nicht gefällt, können Sie es wiederholen.“

„Äh... das ist schrecklich.“

„Nach dem neuen Paradigma entwickeln Programmierer nicht mehr ein Produkt oder Programm, sondern implementieren die Funktionalität, die der Kunde benötigt.“

"Was ist der Unterschied?"

„Angenommen, die Programmentwicklung hat früher ein Jahr gedauert. Und es mussten sechs Monate vergehen, bis es etwas zu sehen gab Bauen Sie die Wände, das Dach, die Verkleidung usw.

„Aber jetzt versuchen Programmierer, die benötigte Funktionalität so schnell wie möglich freizugeben. Das wäre, als würde man zuerst eine Hütte, dann ein Wohnmobil, dann ein kleines Haus und erst dann ein großes Haus bauen – in Raten.“

„Angesichts der Tatsache , dass der Kunde wahrscheinlich nicht genau weiß, was er will, ist dies ein sehr vernünftiger Ansatz.“

„Angenommen, der Kunde möchte ein großes Jagdschloss.“

„Die Bauherren bauen ihm ein kleines Haus. Er wohnt einen Winter darin. Dann beschließt er, dass er keine Holzhäuser mag. Lasst uns eines aus Ziegeln bauen.“

„Er lebt einen Sommer lang in der Nähe des Sees, aber die Mücken fressen ihn bei lebendigem Leibe. Er hatte irgendwo gehört, dass Seen kühl seien, und so wollte er unbedingt einen haben. Aber jetzt will er keinen See mehr. Und es wird einfacher sein, ihn zu bauen.“ Bauen Sie das Haus auf diese Weise: Kein See bedeutet keine Gefahr von Überschwemmungen, und Sie können das Haus auf dem Boden statt auf Stelzen bauen, was 25 % schneller geht.“

„Eine interessante Analogie. Ändern Kunden ihre Anforderungen wirklich so oft?“

„Ja, aber das Problem ist nicht der Kunde.“

„Erstens ist es sehr schwer, sich vorzustellen, wie sich die Dinge in Zukunft entwickeln werden. Das tun auch Manager, Tester und Programmierer. Sie ändern auch ihre Meinung, je nachdem, wie sich die Dinge entwickeln.“

„Zweitens: Sind die Anforderungen des Kunden nicht das Wichtigste?  Schließlich geht es bei all dieser Arbeit darum, das zu schaffen, was der Kunde braucht , und nicht darum, was er ursprünglich zu schaffen versprochen hat .“

„In der Tat funktionierte es früher so: Wirtschaftsanalysten erstellten eine Liste aller Anforderungen. Sie nahmen diese Liste in einen Vertrag auf, unterschrieben ihn und arbeiteten nur nach der Liste.“

„Wenn in der Liste etwas fehlte, was der Kunde wirklich brauchte , aber vergessen hatte, würde niemand etwas dagegen unternehmen.“

„Ich verstehe. Es ist einfacher, einem Plan zu folgen, aber nicht alles kann nach einem Plan erledigt werden!“

"Exakt."

„Deshalb wurden agile Entwicklungsmethoden erfunden.“

„Und heute werde ich Ihnen etwas über Scrum erzählen – das beliebteste davon.

„Das Hauptmerkmal von Scrum ist die Aufteilung der Projektentwicklung in kleine Iterationen – normalerweise 2–4 Wochen lang. Jede Iteration wird Sprint genannt.“

„Zu Beginn eines Sprints findet ein Sprintplanungsmeeting statt. Es dauert 3-4 Stunden.“

„Am Ende gibt es eine Demonstration aller vollständig erledigten Aufgaben.“

„So funktioniert normalerweise alles:“

„Vor dem allerersten Sprint erstellt der Kunde (oder ein Vertreter des Kunden) eine Liste mit Anforderungen, d rief den Product Owner an.

„Er wird Product Owner genannt , weil das Produkt für ihn geschrieben wurde. Er, und er allein, definiert die Liste der Anforderungen – was, wann und in welcher Reihenfolge.“

„Darüber hinaus vergibt der Product Owner in der Regel Aufgabenprioritäten. Aufgaben mit der höchsten Priorität werden zuerst umgesetzt. Die gesamte Anforderungsliste wird auch Product Backlog genannt .“

„Wenn ein Sprint beginnt, versammeln sich alle zu einem Meeting. Der Scrum Master , normalerweise ein Mitglied des Teams, leitet normalerweise das Meeting. Ziel des Meetings ist es, die Aufgaben ( User Story ) für den aktuellen Sprint (Iteration der Entwicklung) auszuwählen. "

„Zuerst weist das Team jeder Aufgabe eine grobe Schätzung in abstrakten Manntagen, auch Story Points genannt, zu.  Anschließend entscheidet das Team, wie viele Aufgaben es während des Sprints erledigen muss.“

„Auch hier entscheidet das Team selbst, wie viele Aufgaben es während des Sprints erledigen kann.“

„Angenommen, der Product Owner hat erwartet, dass das Team die ersten 7 Aufgaben auswählt, aber es hat nur 5 ausgewählt, dann werden die Aufgaben 6 und 7 auf den nächsten Sprint verschoben. Wenn das dem Product Owner nicht passt , kann er die Priorität der Aufgaben erhöhen. “ 6 und 7, um sicherzustellen, dass sie ausgewählt werden, aber dann fallen einige der anderen Aufgaben aus dem Sprint heraus.“

„Der Scrum Master kann auch vorschlagen, einige der Aufgaben in kleinere Aufgaben aufzuteilen und ihnen unterschiedliche Prioritäten zu setzen, um den Produktbesitzer so zufrieden wie möglich zu machen.“

„Das ist der Sinn des Treffens: Aufgaben können geändert und aufgeteilt werden, Prioritäten können geändert werden usw. Das ist die Arbeit, die zu Beginn nicht sichtbar war, die aber viel Wert mit sich bringt.“

„Verstanden. Es ist, als würde man ein Auto fahren. Selbst wenn man anfangs glaubt, dass man einfach geradeaus fahren muss, sieht die Realität so aus, dass man ständig Schlaglöchern ausweichen, nach rechts und links lenken und andere überholen oder sie an sich vorbeilassen lassen muss.“

"Genau, so etwas Ähnliches."

„Die Liste der für den Sprint ausgewählten Aufgaben wird Sprint-Backlog genannt .“

„Die Programmierer entscheiden, wer was macht, und erst dann machen sie sich an die Arbeit.“ Um die Effizienz zu steigern, schlägt Scrum vor, jeden Tag ein 5-15-minütiges Meeting abzuhalten, bei dem sich jeder gegenseitig erzählen kann, was er gestern gemacht hat und was er ist Werde ich heute machen.“

„Teamwork. Das kann ich respektieren!“

„Zur besseren Visualisierung empfiehlt es sich meist, den aktuellen Sprintstatus auf einer speziellen Tafel anzuzeigen:“

Agil, Scrum, Wasserfall – 2

„Beachten Sie die drei Spalten auf der linken Seite.“

„Abgekürzte Aufgabennamen werden auf Haftnotizen geschrieben. Und die Haftnotizen werden je nach Status (geplant, in Bearbeitung, erledigt) in verschiedenen Spalten platziert.“

„Rechts sehen Sie ein Burndown-Diagramm . Dieses Diagramm listet für jeden Tag die Aufgaben auf, die noch nicht erledigt sind. Im Idealfall sinkt die Anzahl der nicht erledigten Aufgaben während des Sprints auf Null.“

„Wenn der Sprint vorbei ist, gibt der Scrum-Master eine Demo , um die Liste aller vollständig abgeschlossenen Arbeiten zu zeigen.“

„Dann hält er ein Sprint- Retrospektiv-Meeting ab, das ebenfalls ein paar Stunden dauert. Bei diesem Treffen versuchen die Teilnehmer meist herauszufinden, was gut gelaufen ist und was (und wie) man hätte besser machen können.“

„Normalerweise können Sie nach 2-3 Sprints die Hauptprobleme identifizieren und beseitigen, die das Team daran hindern, effizienter zu arbeiten. Dies führt zu einer höheren Produktivität, ohne die Arbeitsbelastung des Teams zu erhöhen. Dies war vor der Ära  der agilen Methoden nicht möglich.

„Manchmal findet während des Sprints auch ein Grooming-Meeting statt. Ziel ist es, den nächsten Sprint zu planen. In diesem Meeting klären die Teilnehmer in der Regel Aufgabenprioritäten. Sie können auch einige Aufgaben in Teile aufteilen und/oder neue Aufgaben zum Produkt-Backlog hinzufügen .

„Nun, das ist im Grunde alles, was ich habe. Dies ist nur eine Übersicht. Es ist unmöglich, alles in nur wenigen Worten zu erklären, aber Sie können hier einen guten Artikel zu diesem Thema lesen:“

https://en.wikipedia.org/wiki/Scrum_(software_development)