23 Mai 2017

Softwareprojekte werden heutzutage in der Regel so abgewickelt, dass zunächst eine Spezifikation einer Anforderung erstellt wird. Anschließend überlegt sich jemand, wie man diese Anforderung umsetzen kann. Abschließend kommt es zur Umsetzung. Dieses Vorgehen ist in seiner Größe natürlich variabel. Statt nur eine Anforderung werden eventuell auch mehrere gleichzeitig spezifiziert. Es ändert aber nichts am generellen Vorgehen; auch nicht, wenn viele verschiedene Dokumente erstellt werden.

Bei Methoden wie Scrum gibt es dann Zyklen, vor denen eine Spezifikation erstellt wird. Während eines Zykluses findet dann die Implementierung statt. Abschließend gibt es ein Review und eine Retrospektive. Dieses Vorgehen wiederholt sich in Zyklen von zum Beispiel zwei Wochen. Reviews können insofern weh tun, als dass man nach zwei Wochen merkt, dass man in die falsche Richtung entwickelt hat. Es hat aber auch den Vorteil, dass es eben nur zwei Wochen sind.

Wenn man nun alle zwei Wochen eine Anwendung bereitstellt, muss man sich zwangsläufig auch über Migration Gedanken machen. Denn neue Anforderungen bedeuten in der Regel auch Änderungen an der Datenbank oder an Verzeichnissen. Wenn man dann nach zwei Wochen den Testern sagt, dass die Inhalte der Datenbank gelöscht werden, stößt das Vorgehen irgendwann auf seine Grenzen. Das bedeutet dann, dass man sich eine Strategie überlegen muss, wie man Skripte zur Migration organisiert.

Ebenso verhält es sich beim Erstellen eines Releases. Wenn alle zwei Wochen ein Release gebaut wird, kann das eventuell einen großen Teil der Zeit in Anspruch nehmen. Dass dadurch Zeit für die Implementierung von neuen Anforderungen wegfällt, liegt auf der Hand. Auch dafür ist dann eine Strategie zu entwickeln, um zum Beispiel die Erstellung eines Releases zu automatisieren.

Scrum schlägt einen Rahmen vor, wie man aus Projektsicht mit unangenehmen Vorkommnissen umgehen kann: In kleinen Zyklen wiederholen! Das sollte aber nicht nur aus Projektsicht so sein, sondern auf allen Ebenen der Softwareentwicklung.

Wenn es also "weh tut", hilft Routine durch häufiges Wiederholen. Manchmal ist es aber auch sinnvoll, aufzuhören und sich eine Alternative zu überlegen.