Die Softwareentwicklung richtig managen

Drei „False Friends“ der Software-Entwicklung: Finger weg von diesen Alltagsweisheiten

Jan Weddehage

Die Software-Entwicklung ist eine ganz besondere Disziplin. Oft gelten hier nämlich Regeln, die Laien auf den ersten Blick als falsch ansehen würden. Da nun aber meist fachfremde Personen – Manager, Kunden, CEOs – über Entwicklungsprozesse mitentscheiden, ist es wichtig, diese kontraintuitiven Eigenheiten der Software-Entwicklung genaustens zu kennen.

„False Friends“ der Software-Entwicklung

Noch heute kommen in der Softwareentwicklung Praktiken zum Einsatz, die eine Organisation effizienter gestalten sollen, oft aber den gegenteiligen Effekt haben: Statt einem Projekt zum Erfolg zu verhelfen, sorgen die Verfahren dafür, dass sich die Abläufe verlangsamen. In der Konsequenz kommt es nicht nur zu höheren Fehlerraten, sondern auch die Belegschaft ist unzufrieden mit ihren Leistungen.

Das Problem dabei ist, dass der sogenannte „gesunde Menschenverstand“ in vielen Dingen der Software-Entwicklung nicht weiterhilft, da die Entwicklung ein komplexes Unterfangen ist, das mit Problemen des Alltags nur wenig gemein hat. Das Vertrauen in Maxime, die im Alltag gelten, führt deshalb nicht selten in die Irre – und manchmal gar zum Scheitern des gesamten Projekts.

In seinem Artikel „Software Development is Upside Down“ gibt Allan Kelly hilfreiche Tipps, wie solche Alltagsweisheiten als „False Friends“entlarvt werden können. Wie schauen uns drei dieser falschen Freunde etwas genauer an.

1. „Quick“ ist langsamer

In der Softwareentwicklung gibt es kein „quick and dirty“. Die Entwicklung von qualitativ hochwertigen Codebausteinen ist immer besser als das schnelle Schreiben einiger Zeilen. Der Grund hierfür ist simpel: Schlechter Code muss überarbeitet werden – und das kostet Zeit. Die Vorstellung, mit minderwertigem Code schnelle Ergebnisse zu erzielen, ist nicht gänzlich falsch. Auf lange Sicht sind die zu behebenden Mängel und Fehler jedoch verantwortlich dafür, dass ein Projekt mehr und mehr ins Stocken gerät.

Der Preis nachlässig programmierter Programmzeilen ist hoch, da jede darauf folgende Entwicklung mehr Zeit kostet. Wer von Anfang an auf qualitative Lösungen setzt, wird auf Dauer schneller Arbeiten und bessere Ergebnisse präsentieren. Aber was versteht man unter „Qualität“? In der Softwareentwicklung gibt es eine Reihe von Faktoren, die ein qualitatives Produkt auszeichnen, wie etwa der Funktionsumfang, die Usability oder die Ausführungsgeschwindigkeit.

Lesen Sie auch: Die 15 populärsten Mythen in der Software-Entwicklung

Was die Qualität von Codebausteinen ausmacht, variiert von Produkt zu Produkt. Allerdings gibt es zwei Kernelemente, die nahezu alle qualitativen Softwareprodukte aufweisen: eine geringe Fehleranzahl und eine gute Wartungsfreundlichkeit. Wird über Qualität in der Softwareentwicklung gesprochen, müssen zumindest diese beiden Punkte erfüllt sein.

2. Entwickler-Genies sind keine guten Vorbilder

Noch immer haftet dem Ideal des einsamen Entwicklers, der sich monatelang einschließt und ein Projekt im Alleingang programmiert, eine gewisse Romantik an. Es gibt tatsächlich eine Vielzahl an erfolgreichen Softwareprodukten, die von Einzelnen entwickelt wurden. Trotz aller Bewunderung gibt eine solche Arbeitsweise aber kein gutes Vorbild ab.

Die Fähigkeiten, die einsame Entwickler erfolgreich machen, wirken sich nachteilig auf die Softwareentwicklung aus. Es geht nicht darum, Codebausteine möglichst schnell alleine auf die Beine zu stellen. Ein erfolgreiches Produkt ist auf Teams angewiesen, deren Mitglieder zusammenarbeiten, miteinander diskutieren und ihre Ideen untereinander teilen. Das Pair Programming ist effizienter als jede Einzelleistung; und auch der Trend des Mob Programming zeigt, dass heutzutage Teamleistungen gefragt sind.

Aber Teams sind nicht gleich Teams. An einem gewissen Punkt in der Softwareentwicklung nimmt die Produktivität durch die Erhöhung des Leistungsumfangs nicht mehr zu. Im Gegenteil: Ist der Punkt einmal überschritten, geht die Produktivität sogar zurück. Das ist der Grund, warum kleine Teams in der Regel effizienter arbeiten als große. Die individuelle Leistung von Entwicklern, die in kleinen Teams arbeiten, ist im Vergleich zu ihren Kollegen, die in großen Teams aktiv sind, deutlich höher.

3. Gründlicher planen führt nicht zum Ziel

In den Anfangszeiten der Softwareentwicklung war die benötige Hardware noch teuer und schwer zu bekommen. Aufgrund der niedrigen Komplexität der damaligen Systeme war es sinnvoll, sämtliche Szenarien gedanklich durchzuspielen, bevor mit der eigentlichen Entwicklung begonnen wurde.

Die Voraussetzungen haben sich seitdem enorm gewandelt. Mittlerweile stehen ausreichend und kostengünstige Ressourcen zur Verfügung. Heutzutage wird nicht mehr lange geplant. Es wird einfach ausprobiert, ob eine Technologie funktioniert oder nicht. Auf diese Weise werden neue Ansätze erprobt und die Bedürfnisse der Nutzer ermittelt. Eine gute Planung ist dadurch aber nicht völlig überflüssig.

Lesen Sie auch: Mythos High Performance Teams – ein Wunschtraum?

Wird allerdings zu viel geplant, wirkt sich das negativ auf den Erfolg des gesamten Projekts aus. Die moderne Softwareentwicklung ist iterativ: gelernt wird in der Praxis nicht in der Theorie. Die Effizienz eines Teams hängt deshalb nicht nur von der Größe ab. Wenn qualitativ hochwertige Produkte entwickelt werden sollen, ist ein iteratives Arbeiten Pflicht.

Und Sie?

Die Liste der Alltagsweisheiten, die in der Software-Entwicklung gerade nicht gelten, ist damit sicherlich nicht abgeschlossen. Welchen falschen Freunden sind Sie in ihrer Praxis als Software-Entwickler schon begegnet?

Wir freuen uns auf Ihre Kommentare!

Geschrieben von
Jan Weddehage
Jan Weddehage
Jan Weddehage studiert an der Goethe Universität Frankfurt am Main und arbeitet seit März 2015 als Werkstudent bei Software & Support. Kontakt: jan[at]janweddehage.de
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.