Der agile Festpreis mit Scrum und Prince2

In der Softwareentwicklung sind ein agiles Vorgehen und agile Schätzmethoden bereits Standard. Bei klassischen Ausschreibungen und in Lieferanten-Kunden-Umfeldern ist dies leider nicht der Fall. Hier wird nach wie vor versucht, das Risiko durch eine möglichst detaillierte Beschreibung der Endlösung zu minimieren. Leider funktioniert die detaillierte Planung vor Projektstart nicht, da der Fachbereich die Zielplattform und technischen Möglichkeiten und der Lieferant die Fachdomäne nicht kennt. Das Ganze führt dazu, dass im Projekt Lieferant und Kunde mehr gegeneinander statt miteinander arbeiten und meistens direkt nach Start des Projektes die Verhandlung von „Changes“ beginnt. Über den agilen Festpreis und den Scrum-Reifegrad hatte ich … Continue reading Der agile Festpreis mit Scrum und Prince2

Agile Entwicklung mit TFS 2013 und der Scrum Prozessvorlage – Part 1

Der Microsoft Team Foundation Server 2013 zusammen mit Visual Studio unterstützt Sie bei der agilen Planung und Entwicklung einer Lösung mit Scrum. Ich zeige Ihnen die neuen Features und wie sie im Prozess eingesetzt werden können. Scrum ist der De-Facto-Standard bei den agilen Entwicklungsmethoden. In den Schulungen und Kursen wird immer noch viel mit Flipcharts und Whiteboards gearbeitet. Dies ist zwar sehr haptisch und mag pädagogisch sinnvoll sein – in der Praxis hat es aber mehr Nach- als Vorteile. So eignen sich Whiteboards nicht für die Verwendung in agilen Teams, die Archivierung ist nur bedingt möglich und eine langfristige Zuordnung … Continue reading Agile Entwicklung mit TFS 2013 und der Scrum Prozessvorlage – Part 1

Der Scrum-Reifegrad und der agile Festpreis

Um Scrum zu implementieren, reicht es nicht einfach, die Entwicklung umzustellen: Die ganze Organisation und das Denken müssen sich ändern. Dies ist in der Praxis – besonders in Vertragsverhältnissen zwischen Lieferanten und Kunden – nicht immer voll möglich. Das Scrum-Reifegradmodell zeigt die unterschiedlichen Implementierungsmöglichkeiten im Hinblick auf die Vertragsgestaltung. Jeder Kunde und jedes Projekt ist anders und bedarf eines anderen Vorgehens in der Vertragsgestaltung und der Implementierung des Prozesses und der Rollen. Der Kunde weiß in der Softwareentwicklung immer erst was er wirklich braucht, wenn er mit der Lösung arbeitet1. Doch nicht jeder Kunde ist in der Lage seine Prozesse, … Continue reading Der Scrum-Reifegrad und der agile Festpreis

Wichtiger als Qualität?

Was gibt es wichtigeres als Qualität in der Softwareentwicklung? Wenn man die Frage so stellt, bekommt man immer “Nichts!” als Antwort. Trotzdem ist das dann aber nicht das, was wir in der Praxis sehen. Schulung? Keine Zeit. TDD? Keine Zeit. Code Reviews? Keine Zeit. Warum tappen wir in der Softwareentwicklung immer wieder in die gleiche Falle? Schlechte Qualität führt unweigerlich in eine Spirale. Es entstehen Bugs, die wir in nachfolgende Sprints oder schlimmstenfalls sogar Projekte “mitnehmen”. Diese Bugs sind extrem schwer zu planen. Sie sind viel Aufwändiger als gleich gute Qualität anzuliefern. Und sie hindern uns wieder daran “wichtiges” zu … Continue reading Wichtiger als Qualität?

Geschnitten oder am Stück?

Eine der großen Herausforderungen bei agiler Softwareentwicklung ist der Umgang mit Anforderungen. In der Theorie ist alles ganz einfach: die Anforderungen werden als UserStories definiert. Jede UserStory beschreibt ein Stück Software-Inkrement das auslieferbar ist und einen Kundennutzen erfüllt. Das Inkrement muss ein funktionierendes Stück Software sein, dass der Anwender “benutzen” kann. Abbildung 1 zeigt die Schematische Struktur in einer 3-Tier-Architektur. Abbildung 1: Erstellen von Software in Inkrementen Warum fällt es dann in der Praxis den meisten Entwicklern so schwer Inkremente für UserStories zu liefern? Schauen wir uns erst mal an, wie in den meisten Projekten Anforderungen in das “Backlog” gelangen. … Continue reading Geschnitten oder am Stück?

„Entwickler sind die schlechtesten Tester“

Diese Aussage habe ich noch vor einigen Jahren öfter benutzt. Die Argumentation war, dass Entwickler ja die zu entwickelnde Applikation kennen und deshalb immer nur das testen, was auch funktioniert. Wer mich kennt weiß, dass ich heute eine ganz gegenteilige Meinung habe. Aber warum? Testen ist ein elementarer Teil der Softwareentwicklung. So wie es niemandem einfallen würde einen nicht kompilierten C# Code an einen Kunden auszuliefern würde auch niemand eine ungetestet Software ausliefern. Jeder Entwickler testet deshalb auch den ganzen Tag. Alle paar Minuten (oder spätestens nach ein paar Stunden) wird wieder die neue Funktionalität getestet. Nur leider machen die … Continue reading „Entwickler sind die schlechtesten Tester“