E-Book, Deutsch, 116 Seiten
Schneider Scrumster
4. Auflage 2017
ISBN: 978-3-7450-7685-1
Verlag: epubli
Format: EPUB
Kopierschutz: 6 - ePub Watermark
Praxis der agilen Softwareentwicklung
E-Book, Deutsch, 116 Seiten
ISBN: 978-3-7450-7685-1
Verlag: epubli
Format: EPUB
Kopierschutz: 6 - ePub Watermark
Wenn Sie sich schon einmal gefragt haben, ob das eigentlich normal ist, dass bei Ihnen im Scrum Team so gut wie jede User Story über mehrere Sprints bearbeitet werden muss, dann sind Sie hier genau richtig. Hier finden Sie sich und Ihr Team vielleicht sogar in einem der Praxisbeispiele wieder. Das soll Ihnen die Augen dafür öffnen zu erkennen, was schiefläuft. Selbsterkenntnis ist bekanntlich der erste Schritt zur Besserung. Die Umsetzung von 'lean and agile' in die Praxis ist nicht trivial. Es warten viele Fallstricke und Sackgassen auf uns. Im Gegensatz zu Startups, die agile Methoden ohne Vorbehalte und ohne Vorgeschichte mit großem Erfolg einfach nutzen können, hat eine traditionsreiche Firma die Herausforderung ihre bestehenden Methoden und Prozesse auf 'agil' umzustellen. Dies hat großen Einfluss darauf, wie agil und erfolgreich man sein kann. Untersuchungen und Thesen darüber, wann und warum auch agile Methoden scheitern können, sind rar.
Achim Schneider hat über 30 Jahre praktische Erfahrung in der Softwareentwicklung. Er hat kommerzielle Vorhaben in unterschiedlichen Branchen und in unterschiedlichsten Rollen geleitet, verantwortet oder begleitet. Er ist zertifizierter Professional Scrum Master® nach scrum.org, zertifizierter Professional Scrum Product Owner® nach scrum.org, zertifizierter SAFe® Agilist (SA) nach dem Scaled Agile Framework® und Senior Project Manager. Seine praktischen Erfahrungen in Bezug auf die Anwendung von lean & agil sind Grundlage für dieses Buch.
Autoren/Hrsg.
Weitere Infos & Material
Platz 10 - Working Software
Funktionierende Software ist schon im agilen Manifest proklamiert und eine Grundvoraussetzung agiler Methoden, um ermitteln zu können oder besser gesagt, um messen zu können, was man schon erreicht hat. Bewährtes in neuem Look
Ganz neu ist diese Erkenntnis allerdings nicht. Ins klassische Projektmanagement übertragen handelt es sich hierbei um „earned values“ oder auf Deutsch den „Fertigstellungsgrad“, ein Werkzeug des Projektcontrollings, um den Projektfortschritt zu verfolgen. Eine Bewertung des Projektfortschritts erfolgt in agilen Methoden wie Scrum am Ende jedes Sprints. Die agile Grundannahme
Jeder Sprint stellt eine Investition dar und verfolgt das Ziel, dem erhofften Ergebnis einen Schritt näher zu kommen. Abbildung 5 Die agile Grundannahme Nach jedem Sprint soll in agilen Vorgehensmodellen überprüft werden, was tatsächlich erreicht wurde. Das so entstandene agile Artefakt ist „working software“. Unsichtbar und nur in der unbewussten Wahrnehmung der Beteiligten befindet sich die agile Grundannahme. Es wird grundsätzlich davon ausgegangen, dass Investitionen, die „funktionierende Software“ als Ergebnis haben, dauerhaft erhalten bleiben, weil Software, die einmal funktioniert, keinem „Verschleiß“ unterliegt. Einmal von der Wartung dieser Software abgesehen, ist das die agile Grundannahme. Trifft das eigentlich zu?
Ob diese Grundannahme tatsächlich zutrifft, hängt nun im Wesentlichen von Ihrem Umfeld ab, in dem Sie sich bewegen. Ein Sprint wird in aller Regel zunächst in einer Entwicklungsumgebung entstehen. Ob in dieser Umgebung auch die Bewertung hinsichtlich „working software“ angestellt wird oder nicht, bestimmt maßgeblich, ob schon alle nötigen Investitionen getätigt sind oder nicht. Tipps zu Working Software
Prüfen Sie, welche unausgesprochenen Annahmen in Ihrem Umfeld existieren und finden Sie einen transparenten Umgang damit. Legen Sie es doch fest
Der Begriff „working software“ muss also für Ihre Verhältnisse definiert werden, damit jedem klar ist, was er bedeutet und was eben nicht. Ein Beispiel hierfür könnte sein: Working software bedeutet für uns, dass das Produkt in der Entwicklungsumgebung installiert und benutzbar ist. Will man das noch deutlicher formulieren, kann man auch beschreiben, was nicht unter „working software“ zu verstehen ist: Working software hat bei uns die Eigenschaften, dass diese noch nicht auf einer „Staging-Umgebung“ (Test-, Integrations-, Referenz- oder Produktivumgebung) bereitgestellt wurde, noch nicht an den späteren Betreiber übergeben wurde und noch nicht mit einem Bestell- und Abrechnungsprozess versehen ist und damit noch keinen kommerziellen Beitrag zum Geschäftsergebnis liefern kann. Weitere „working“ Aspekte
Abhängig von Ihrem Umfeld treffen hier weitere oder andere Aspekte zu. Sofern keine klare und von allen Beteiligten verstandene und akzeptierte Definition von „working software“ vorhanden ist, bewegen Sie sich auf höchst riskantem Boden. Tipps zu Working Software
Definieren Sie „working software“. Holen Sie in Ihrem Umfeld die Akzeptanz zur Definition von „working software“ ein und ergänzen Sie damit Ihre Definition of Done. Stimmen Sie zusätzliche Backlog-Einträge für „working software“ aus Entwicklungssicht mit dem Product Owner ab. Extreme Programming
Der Begriff „working software“ wurde durch die agile Methode des Extreme Programming geprägt. Dort bedeutet er, dass eine Software voll integriert, getestet, zum Kunden ausgeliefert oder in der Produktionsumgebung installiert werden kann. Abbildung 6 Extreme Programming Das bedeutet aber nicht, dass diese Software fehlerfrei läuft und frei von Abstürzen ist. Es bedeutet nur, dass Unit Tests gemacht und grundlegende Qualitätssicherung betrieben wurden und man sich davon überzeugt hat, dass sie grundsätzlich läuft. Ob diese „extreme“ Festlegung eine für Ihre Verhältnisse adäquate Definition von „working software“ ist, müssen Sie für sich prüfen. Mogeln ist verlockend
Viele Scrum Teams machen zusätzlich den Fehler, bei der Bewertung ihres Sprintergebnisses zu mogeln. Beispielsweise wird halbfertige Software, die z.B. mit technischen Schulden („technical debt“) belastet ist, als „working software“ deklariert, ohne dass eine User Story zur Beseitigung der technischen Schuld mit dem Product Owner vereinbart und in den Product Backlog eingestellt wird. Das ist dann so, als hätte das Team die technische Schuld unter den Teppich gekehrt. Abbildung 7 Technical debt Das führt dazu, dass das Management annimmt, dass etwas abgeschlossen ist und keine späteren Investitionen mehr benötigt, was real betrachtet nicht stimmt. Transparenz gewinnt
Die Gründe dafür, dass die Software am Ende eines Sprints nicht wirklich fertig ist, sind vielschichtig, aber letztlich doch unerheblich. Entscheidend für alle Beteiligten ist, dass das Scrum Team am Ende jedes Sprints schonungslos transparent macht, was funktioniert und was nicht. Schönreden ist zwar verlockend, aber nicht die Lösung. Das holt einen später wieder ein. Tipps zu Working Software
Sorgen Sie für Transparenz bei der Bereitstellung von working software. Typisch „working“
Auf dem Bild „Working Software“ ist eine typische, als „working“ deklarierte Software abgebildet. Diese wird von allen Seiten gestützt, ist zusammengeflickt, weist Lücken oder Löcher wie ein Schweizer Käse auf und passt an den Schnittstellen kaum zusammen. Wird dies nicht transparent gemacht, so löst dies eine Kettenreaktion aus. Push oder Pull
Wie kommt es eigentlich in agil arbeitenden Teams dazu, dass etwas fertig wird? Der wesentliche Unterschied zur gängigen Arbeitsweise ist, dass Arbeit nicht „zugewiesen“ wird (Push-Prinzip). Es gibt niemanden, der den Teammitgliedern eine Aufgabe zuteilt. Vielmehr holen sich die Teammitglieder die Aufgaben aus dem Backlog, sobald sie dafür Kapazitäten zur Verfügung haben (Pull-Prinzip). Wann eine Aufgabe zur Bearbeitung ausgewählt wird, hängt damit vom individuellen Fortschritt der Teammitglieder und vom Fortschritt des ganzen Teams ab. Abbildung 8 Push- oder Pull-Prinzip Unfertiges vermeiden
Aus der traditionellen Fertigungsindustrie wissen wir, dass unfertige Produkte gebundenes Kapital darstellen. Daher ist jedes Fertigungsunternehmen bestrebt, den Bestand an nicht fertiggestellten Erzeugnissen möglichst gering zu halten. Ein anderes Beispiel wäre: Es soll eine Brücke über einen Fluss gebaut werden. Ungefähr zur Hälfte der Bauzeit beschließt das Team, mit dem Bau einer zweiten Brücke zu beginnen. Das führt dazu, dass der Bau an der ersten Brücke langsamer vorangeht und an der zweiten Brücke nicht mit voller Kraft gebaut werden kann. Die in die Brücken investierte Arbeit kann nicht dazu genutzt werden, den Fluss zu überqueren. Sie können sich vorstellen, was passiert, wenn Sie den Bau einer dritten Brücke parallel beginnen. Übertragen auf die agile Softwareentwicklung bedeutet dies, dass eine angefangene Aufgabe Kapital bindet. Solange die Aufgabe nicht fertiggestellt wurde, kann die in die Aufgabe investierte Arbeit in keinen Nutzen umgewandelt werden. Der Nutzen hat hier natürlich zwei Aspekte. Zum einen ist der Nutzen gemeint, den potentielle Kunden aus dem fertiggestellten Produkt erzielen können, und zum anderen ist natürlich der potentielle Gewinn gemeint, der mit der Vermarktung des fertigstellten Produkts erzielt werden kann. Daher sind unfertige Tasks sozusagen...