Die 10 Gebote der Softwareentwicklung

14. Dezember 2018


Softwareentwicklung ist mehr als “nur” das Aufschreiben von unzähligen Zeilen in Java, PHP und wie die Sprachen und Frameworks alle heißen. Damit der Kunde am Ende eine funktionsfähige Anwendung in Empfang nehmen kann und auf dem Weg dorthin kein Frust bei Entwicklern und Kunden aufkommt, sind noch einige wichtige Regeln zu beachten. Wir nennen sie “die 10 Gebote der Softwareentwicklung”.

 

1. Die erste Aufgabe in einem neuen Software-Projekt ist das Verstehen des Projekts.

Was genau will der Kunde mit der neuen Software erreichen? Wer sind die Nutzer der Anwendung? Wenn ein Entwickler diese Fragen nicht beantworten kann, ist die Wahrscheinlichkeit, dass er die Software am Bedürfnis des Kunden vorbeiprogrammiert, groß. Sehr groß.

2. Erst der Plan, dann das Coden.

Klar, das eigentliche Coden ist um ein Vielfaches schöner als das Planen. Es ist aber auch wahnsinnig frustrierend, 10, 100 oder 1000 Code-Zeilen wieder löschen zu müssen, weil die Software nicht mit den anderen Anwendungen kommuniziert oder weil dieses superschicke Formular eigentlich ganz andere Daten abfragen soll.

3. Die meisten Softwareanwender sind keine Softwareentwickler.

Der Entwickler schwärmt: “Ist es nicht faszinierend, wie dieser eine Befehl eine komplette Abfolge von Operationen in Gang setzt? Ist der Code dieses Frameworks nicht wahnsinnig schön?” Der Anwender zuckt dazu nur desinteressiert die Schultern. Er fragt: “Funktioniert das Ding? Macht es meine Arbeit leichter?”

4. Das Rad wurde schon erfunden. Die Achse auch.

Für sehr viele Funktionalitäten gibt es längst Open-Source-Lösungen, die sich in der Praxis bewährt haben. Ein guter Entwickler greift in diesen riesigen Baukasten und entwickelt aus vielen kleinen Einzel- und Teillösungen eine passgenaue individuelle Softwarelösung für den Kunden.

5. Schweigen ist Silber, Reden ist Gold.

Die besten Ideen entstehen im direkten Gespräch mit den Kollegen, wenn aus geballtem Wissen einfach-geniale Lösungsansätze für knifflige Probleme geboren werden. Außerdem: Wer weiß, an welcher Funktionalität der Kollege gerade sitzt, wird nicht versehentlich parallel die gleiche Lösung programmieren.

6. Clean Code macht das Leben leichter.

Kaum etwas ist so unverständlich wie der Code vom letzten Jahr. Am besten schreibt man ihn daher gleich so, dass bei der späteren Wartung die Zahl der “WTFs?” auf das absolute Minimum beschränkt bleibt. Das spart Nerven – sowohl die eigenen als auch die des Kollegen, der eines Tages verstehen muss, was das alles zu bedeuten hat.

7. Perfektion ist auch nicht alles.

Der perfekte Code ist der nicht ganz so heimliche Traum eines jeden Entwicklers. Doch in der Realität hält jeder Code exakt bis zum nächsten Refactoring und den geänderten Kundenanforderungen. Also spart man sich am besten den Aufwand für die letzte Perfektionsstufe und konzentriert sich stattdessen darauf, das konkrete Problem effizient zu lösen. Nicht mehr, aber auch nicht weniger.

8. Erlaube der Anwendung nur, was sie nicht kaputt macht.

Computerprogramme machen immer nur das, was man ihnen sagt. So weit, so gut. Nicht so gut ist es, wenn der Anwendung ein Befehl mit bösen Absichten gegeben wird. Am besten schützt der Entwickler sie daher vor Angreifern und sich selbst, indem er ihr von vornherein nur genau definierte Befehle auszuführen gestattet.

9. Testen, testen und nochmals testen.

Was ist die Gemeinsamkeit zwischen einem Buch und einer Software? Man merkt sofort, wenn sie nicht gründlich lektoriert bzw. getestet wurden. Was ist der Unterschied zwischen einem Buch und einer Software? Ein schlecht lektoriertes Buch crasht keine Computer und Netzwerke.

10. Deploye niemals an einem Freitag um 17 Uhr.

Warum? Weil dieser eine Fehler, der sich als einziger vor den Argusaugen der Tester und dem Spürsinn der Testsoftware verstecken konnte, garantiert im Deployment auftritt. Man kann es natürlich auch mit Agent 007 halten (“Sag niemals nie”), aber dann sollte man sich besser nichts für das Wochenende vorgenommen haben.