Scrum-Grundlagen: Agile Softwareentwicklung

Die Idee vom Reduzieren der Komplexität

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Dieser Film dreht sich um die Bausteine, mittels derer Scrum die Komplexität in einem Projekt beherrschbarer macht.
08:37

Transkript

In diesem Filmchen werden wir uns anschauen, was Scrum konkret ist, wie es entstanden ist, und auf welchen Prinzipien es beruht. Es geht um Komplexität. Komplexität hat Connie Dethloff auf seiner Webseite recht einfach und griffig beschrieben. Es kommt auch aus der Chaos-Theorie: Komplexität dreht sich um 4 Einzelelemente. Das genaue Gegenteil von Komplexität ist Einfachheit. Wenn ich die Aufgabe habe, mir meinen Schuh zu binden, so ist es eine einfache Tätigkeit. Ich weiß, wie es funktioniert, meine Finger funktionieren, ich habe meine Schuhe da: super, kann ich bewältigen. Es wird kompliziert, wenn die Schuhe Fußballschuhe waren, und ich das ganze Regelwerk im Fußball durchblicken muss. Es sind viele Regeln manche verstehen manche Leute bis zum Schluss nicht, ich denke an die Abseitsregel aber prinzipiell ist es beherrschbar; es ist nur kompliziert. Die nächste Stufe wäre komplex. Auch wenn ich alle Regeln im Fußball, sogar die Abseitsregel, kenne und verstehe, kann ich nur sehr, sehr schwer bis gar nicht vorhersagen, wie ein Fußballspiel konkret abläuft. Das ist hochdynamisch, es gibt ganz viele Einflussfaktoren es gibt ganz viele Ordnungsstufen, sagt man da, auf denen sich das bewegen kann. Das ist komplex. Und was passiert, wenn meine Fußballmannschaft wirklich gewonnen hat, und mit dem Champions-League-Pokal in die eigene Stadt einzieht? Das ist chaotisch. Da können Sie wirklich gar nicht mehr vorhersehen, was wirklich passieren wird. Wenn Sie sich jetzt diese vier Stadien anschauen und sich mal überlegen, wo Software-Projekte spielen, landen wir hier. Die chaotischen gibt es auch, aber wir sind ja hier, um uns in der komplexen Welt zu halten. Das ist anspruchsvoll genug. Software-Projekte haben ganz viele Akteure, die ganz viele verschiedene Sachen wollen. Die Software hat ganz viele verschiedene Aspekte und Ausprägungen, und das ist wirklich komplex. Und das gilt es zu meistern. Wie meistert man so etwas, wie bildet sich diese Komplexität überhaupt ab? Und dafür habe ich Ihnen ein Video mitgebracht, das ich vor ein paar Jahren bei einer Reise nach Vietnam in Hanoi bei einer kleinen Kreuzung aufgenommen habe. Das war eine Kreuzung, die keine Ampeln hatte, wie ganz Hanoi. Es gab vordergründig keine Regeln für mich. Ich stand wie gebannt am Straßenrand und habe zugeschaut, wie alle gleichzeitig fahren. Jeder hatte seinen eigenen Plan, jeder wusste, wo er hin will, aber es gab keinen überliegenden Prozess, der das alles gesteuert hat. In Deutschland hätten wir erstmal 17 Ampelanlagen und 17 Spuren für die Autos, Fußgänger und Mopeds installiert; das geht ja nicht. Da ist kein Platz, aber offensichtlich hat es trotzdem funktioniert. Es war aber in keinster Weise vorherzusehen, wie es funktioniert, und wann genau welches Auto auf der anderen Straßenseite angekommen ist. Was wäre denn jetzt, wenn wirklich alles ohne Planung funktioniert? Bzw. was wäre denn, wenn wir mit unserem Planungseifer manchmal über das Ziel hinaus schießen? Ich weiß nicht, was mit der kleinen Kreuzung in Hanoi danach noch passieren wird, irgendwann habe ich mich auch selber getraut, die Straße zu überqueren. Aber wir wollen ja die Komplexität auf unsere Softwareprojekte beziehen. Der Softwareansatz für uns wäre: Wir müssen Komplexität reduzieren. Es bleibt immer noch genügen Komplexität übrig, keine Angst. Es werden anspruchsvolle Projekte bleiben. Wie tun wir das? Zum einen können wir die Zeitspanne reduzieren. Von so auf so. Wir haben nicht mehr den Anspruch, jetzt schon zu wissen, was nächsten Februar an einem Donnerstagnachmittag, zwischen 14 und 15 Uhr der Entwickler Gustav implementieren wird. Wir nehmen uns stattdessen Happen vor, von zwei Wochen, drei Wochen oder vier Wochen, die wir überblicken können. Und machen die Ergebnisse dafür gleich richtig fertig. Ein weiterer Schritt um Komplizität zu reduzieren ist das Einholen von Feedback. Nicht erst am Schluss, wenn man dem Kunden ein Paket vor die Füße kippt und hofft, dass es schon das sein wird, was er sich gewünscht hat, sondern indem man frühzeitig den Kunden in das Boot holt und immer wieder, und immer wieder nachfragt: "Lieber Kunde, ist es das was du dir gewünscht hast?" Das erfordert, dass man effektiv kommuniziert, dass man überhaupt kommuniziert, dass man überhaupt miteinander spricht, anstatt sich Anwaltsbriefe zu schreiben. Die Teilergebnisse, die man liefert, liefert man regelmäßig, wie gerade gesagt. Nicht einmal am Schluss, sondern kleine Häppchen von in sich geschlossener Funktionalität. Wir haben als Team nicht mehr den Anspruch, von Anfang an perfekt zu sein, sondern wir nehmen uns das Recht heraus, uns selber zu optimieren. Nicht nur am Anfang, sondern während der gesamten Projektlaufzeit. Änderungen, die es auch früher schon gegeben hat, sind jetzt möglich. Die hat es früher gegeben. Man wusste nie so genau, wie man damit umgeht, weil man der Meinung war: Ich mache Paket 1 komplett fertig, mache dann Paket 2 komplett fertig, und dann Paket 3. Und während ich an Paket 2 arbeite, gibt es einfach keine Änderung mehr an Paket 1. Das war nur leider nie der Fall. Bei Scrum gehen wir jetzt davon aus: Es wird Änderungen geben, das ist eben nun der Gang der Welt. Wir finden einfach einen Weg, um gut und günstig damit umzugehen. Wir wissen, wo wir in unserem Projekt stehen. Das wissen wir bei Scrum deshalb, weil alle Projektstände transparent sind. Alle Beteiligten wissen immer, was gut läuft und, was viel wichtiger ist, wo wir dabei sind, die richtige Richtung zu verlieren. In der Summe bedeutet das, agil sein. Das Thema heißt ja auch, "Agile Softwareentwicklung mit Scrum". Und die Komplexitätsverringerung ist das wichtigste Rezept dafür. Scrum bietet uns dafür einen Rahmen, und auch nur einen Rahmen. Scrum ist kein Prozess, sondern es ist eine Sammlung von Vorgehensweisen, die uns helfen, komplexe Projekte zu meistern, und dabei die Qualität hoch zu halten. Scrum hat die Eigenschaft, empirisch zu sein. Das bedeutet, man misst, wo man gerade steht, wenn es passt, macht man weiter so, und wenn man gemessen hat, das irgendwas nicht so optimal ist, justiert man nach. Scrum nennt das auch so schön englisch "inspect and adapt", Messen und Nachjustieren. Wir gehen iterativ vor, d.h., wir bauen die gleichen Schritte mehrmals hintereinander, wir wenden dieselben Vorgehensweisen immer wieder an, um uns so schrittweise dem Ziel zu nähern. Am Ende von jeder Iteration steht ein sogenanntes Inkrement, eine Teilmenge von dem ganzen Projekt, das entstehen soll. Iterativ und inkrementell. Die Teams, die wir dafür brauchen, haben die Eigenschaft, selbstorganisierend zu sein, und sie sind funktionsübergreifend. Selbstorganisieren heißt, wir haben nicht mehr, wie in alten Welten, einen Projektleiter, der jede Kleinigkeit vorschreibt. Die Teams schnappen sich selber die Arbeitspakete und verteilen die so, wie es ihnen richtig erscheint. Und, man versucht, alle Wissensdisziplinen in einem Team zu verankern. D.h., man hat nicht nur Software-Entwickler in einem Team, Test-Ingenieure in einem anderen Team; vielleicht jemandem, der eine Spezifikation schreiben kann in einem dritten Team, sondern alles, was gebraucht wird, ist in einem Team vorhanden. D.h. nicht, dass man immer eine einzelne Person für eine Disziplin braucht. Oftmals gibt es auch Personalunionen von verschiedenen Kenntnissen. Das Stichwort hier heißt: "Cross functional". Wenn wir das tun, wird uns Scrum helfen, Probleme frühzeitig aufzudecken. Es ist wichtig zu verstehen, dass Scrum die Probleme nicht löst. Aber Scrum hilft uns, uns damit zu beschäftigen.

Scrum-Grundlagen: Agile Softwareentwicklung

Machen Sie sich mit der Softwareentwicklung mit Scrum vertraut und sehen Sie, wie Sie komplexe Projekte agiler, qualitativ besser, kundenorientierter und motivierter meistern.

3 Std. 34 min (49 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!