Wie bereits unter „Was ist Software-Sanierung?“ beschrieben, kann bereits durch kleine Verbesserungen ein Mehrwert für alle Beteiligten erzeugt, sowie der Grundstein für weitere Sanierungs-Maßnahmen gelegt werden. Im ersten Schritt der geplanten Sanierung ermitteln wir gemeinsam mit dem Entwicklungs-Team und den weiteren Beteiligten „wo der Schuh drückt“. Oftmals wurden bereits Punkte gesammelt, die den Entwicklungsprozess stören. Da die Entwickler jedoch sehr stark in die tägliche Arbeit eingebunden sind, sind sie meist sehr dankbar, dass die Themen aufgegriffen und (endlich) angegangen werden.
Nachdem die bereits bekannten Probleme gesammelt wurden, werden wir diese sortieren und gruppieren. Auf dieser Basis werden Problemlösungen abgeleitet und gemeinsam mit allen Beteiligten abgestimmt. Das Ergebnis wird ein Sanierungs-Plan sein, der Maßnahmen enthält, die kurz-, mittel- und langfristig umgesetzt werden können. Als Beispiel für eine meist kurzfristig umsetzbare Maßnahme wird im folgenden die Schaffung einer Umgebung für automatisierte Tests beschrieben.
Schaffung einer Test-Umgebung
Die Erfahrung hat gezeigt, dass eine Verbesserung bzw. Sanierung einer Software meistens daran scheitert, dass die Grundlagen für die Durchführung von Verbesserungen an der Software nicht geschaffen werden. Ein Beispiel, das in der Praxis oft angetroffen wird:
Auch, wenn die testgetriebene Softwareentwicklung in aller Munde ist, schreiben nur die wenigsten Unternehmen Test für ihre Software, die automatisiert ausgeführt werden können. Teilweise existieren ein paar Tests, die (Zitat Anfang) „mal ein Kollege geschrieben hat, der jedoch inzwischen das Unternehmen verlassen hat und die Tests schon sehr lange nicht mehr ausgeführt wurden und inzwischen auch nicht mehr lauffähig sind“ (Zitat Ende).
Eines der ersten Maßnahmen im Software-Sanierungsprozess ist somit die Schaffung einer Plattform für die Software-Entwickler, damit sie einfach(!) die bereits bestehenden Tests ausführen und neue Tests ergänzen können. Besteht erst einmal eine Grundstruktur für die Tests, so wird die Hürde für das Aktualisieren und Hinzufügen neuer Tests drastisch verringert.
Weitere kurzfristige Maßnahmen
Zu den weiteren kurzfristigen Maßnahmen gehört oft auch die Einführung eines sog. Checkstyle als ein Teil der statischen Code-Analyse. Dadurch wird die Grundlage für eine einheitliche Code-Syntax geschaffen, die zum Verständnis des Quellcodes bei allen Entwicklern beiträgt. Ebenso kurzfristig umgesetzt werden kann die Entfernung von auskommentierten Quellcode sowie Quellcode, der nicht mehr verwendet wird. Das klingt selbstverständlich, wird aber in der Praxis oft nicht gemacht. Der nicht mehr verwendete Quellcode sorgt dafür, dass die Entwickler versuchen Code zu verstehen oder unnötige Zeit mit dem Anpassen von Code verbringen, der gar nicht mehr ausgeführt wird.
Mittel- und langfristige Maßnahmen
Als mittel- oder langfristige Maßnahme ergibt sich oft die Automatisierung des Entwicklungs- und Deployment-Prozesses mithilfe einer geeigneten CI-/CD-Software. Durch den Einsatz einer solchen Software können die oben genannten Maßnahmen (z.B. die Ausführung von Software-Tests, die statische Code-Analyse etc.) automatisiert werden. Sie bilden die Grundlage für die weiteren, durchzuführenden Sanierungsmaßnahmen.
Lassen Sie uns beginnen
Wir hoffen, dass wir Ihnen einen Ausschnitt unserer Arbeitsweise verständlich darstellen konnten. Es hat sich gezeigt, dass bereits durch die Umsetzung der kurzfristigen Maßnahmen schnell Verbesserungen in der Software selbst und im Entwicklungsprozess implementiert werden können. Kontaktieren Sie uns gerne, um Ihre geplante Software-Sanierung zu besprechen. Wir freuen uns darauf, Ihre Software kennenzulernen und zu ihrer Verbesserung beitragen zu dürfen.