Software

Minimalismus in der Softwareentwicklung

Die neue „Minimalismus-Welle“, die The Minimalists ausgelöst haben, erfreut mich sehr. Unter dem Slogan „Simplify your life!“ ist mir dies bereits in den 90er Jahren untergekommen. Obwohl dieses Mindset, diese Idee, also nicht neu ist, ist sie es wert wieder und wieder erzählt zu werden: Weniger ist mehr und dies beginnt bereits bei den Dingen des alltäglichen Lebens, die wir uns anschaffen. Oder eben gerade nicht! Eindrucksvoll schildern The Minimalists bei ihren Auftritten, wie ihr Leben lebenswerter wurde durch die Dinge, die sie abgeschafft haben, durch die Dinge, die sie sich nicht gekauft haben, durch wenige ideell wertvolle Dinge, die als einziges in ihrem Zuhause bleiben durften.

Kurzum: Unser Leben ist zu “voll”. Viele Dinge, die wir uns anschaffen oder die wir tun, sind eigentlich unnötig. Unnötig weil wir sie entweder überhaupt nicht wirklich brauchen oder weil wir sie durch das Benutzen von einfachen anderen Dingen oder durch einfache andere Herangehensweisen auch erreichen können. Wer braucht schon die vielen speziellen Spezialküchengeräte: der „Super-Zerkleinerer“, den „So-gut-rührt-kein-anderer-Mixer“, die „Nur-so-kann-man-Rühreier-wirklich-rühren-Schüssel“ usw. Wie wäre es stattdessen mit einem Schneidebrett, einem Messer, einer Schüssel und einem Rührlöffel? Diese Werkzeuge sind universeller! Und brauchen insgesamt weniger Platz. Und das Beste, sie können auch noch für die Zubereitung von Gerichten benutzt werden, die noch gar nicht erfunden wurden! Wer braucht schon die halb-dicke Übergangsjacke? Oder die dreiviertel hohen halbgefütterten Spätherbsthalbwinterstiefel? Braucht jemand wirklich auch noch das dritte halbhohe Low-Board für die noch ungenutzten 80 cm freie Wand direkt neben der Tür? Was ist mit dem extra Ausdruck der Eintrittskarte für das Kino, der neben dem Screenshot der Reservierungsbestätigungs-E-Mail und der Reservierungsbestätigungs-E-Mail selbst und dem Ticket in der „Wallet“ App des iPhone mitgenommen wird? Das Fahrrad für den Weg zum Bahnhof, dazu noch das Touring Fahrrad und auch noch eines für echtes Downhill Fahren und natürlich noch ein „normales“ für sonst?

Ich wiederhole mich: Unser Leben ist zu „voll“. Unser Leben als Softwareentwickler auch!

Wie viele IDEs braucht der Mensch? Für jede Programmiersprache einen eigenen Editor? Für das Erstellen von UML Diagrammen ein anderes Tool als für Ablauf-Diagramme? Wirklich? Richtig gut ist nur der Handwerker, der seine Werkzeuge sehr gut beherrscht! Für einen Softwareentwickler gilt dies genauso. Bei 100 Tools, wird das schwierig. Bei ein paar Wenigen, ist es aber möglich. Meine Empfehlung ist also schlicht, sich auf wirklich wenige wichtige Tools zu konzentrieren und diese perfekt bedienen zu lernen. Es ist kein Zufall, dass viele Entwickler, die VI und EMACS als Editoren auserkoren haben, sehr sehr schnell kodieren. Meistens jedoch nicht, weil diese Editoren Fähigkeiten haben, die kein anderer hat, sondern weil sie meistens von Entwicklern benutzt werden, die sie seit Jahren benutzen und liebgewonnen haben. Sie kennen jeden Kniff und jede Abkürzung, jede Keyboard Shortcut und jede Eigenart. Dadurch können sie die Editoren optimal ausnutzen.

Genauso ist es bei allen Teildisziplinen der Softwareentwicklung bzgl. dem Tooling: Jenkins, Bamboo, svn, git, Maven, ant, nuget, NetBeans, IntelliJ, Eclipse usw.: Evaluieren, entscheiden, benutzen und dann weiter Erfahrung sammeln. Und dabeibleiben! Natürlich dies bitte nicht als Aufforderung zum Stillstand missverstehen: Von Zeit zu Zeit gibt es neue Werkzeuge, die ihren alten vergleichbaren Vorgängern überlegen sind. Und dann macht es Sinn, diese zu erlernen und zu benutzen. Aber bitte statt der alten Versionen und nicht dauerhaft parallel! Und, so ganz nebenbei, allzu oft kommen solche neuen „Wunder-Tools“ nun auch wieder nicht heraus.

Die besten Entwickler sind nicht die, die die neuste Version von Visual Studio verwenden, sondern meist die, die etwas von Test-Driven Development und Clean Code verstehen, die besten Projektmanager sind nicht die, die MS Projekt in der neuesten Version verwenden, sondern meist die, die wissen, ob bei ihrem Projekt besser PRINCE2 oder das V-Modell zum Einsatz kommen sollte. Und, in eigener Sache, wie wichtig ist mir wohl für einen Scrum Master oder Product Owner, Jira zu beherrschen?

Aus meiner Erfahrung entstehen die meisten Rufe nach neuen Tools aus der Hoffnung, dass das neue Tool Arbeit abnimmt und alles einfacher wird. Wirklich wahr ist dies oft nicht. In der Regel bleibt natürlich noch schwierige Arbeit übrig. Und diese zu machen, ist unser Job. Das ist unser Handwerk. Darin sind wir Meister. Froh und zufrieden sollten wir darüber sein und Arbeit abliefern, auf die wir stolz sein können.

Soweit bisher nur zu den Tools. Wie steht es mit „weniger ist mehr“ beim Sourcecode? Da sage ich zur Inspiration lediglich KISS, YAGNI und DRY! Mehr würde hier den Rahmen deutlich sprengen. ENDE. Weniger ist mehr!

Kategorien:Software