Kunst der Software Entwicklung

Software Entwicklung ist nicht trivial. Je umfangreicher die Anforderungen werden, desto schwieriger wird es, diese in der Programmierung zu berücksichtigen. Man benötigt genug Erfahrung, um den Überblick zu behalten. Einige Aspekte tragen wesentlich zur Qualität des Ergebnisses bei. In diesem Artikel gehen wir darauf ein, welche dies sind, was gute Software definiert und was einen guten Programmierer ausmacht.

Gelungene Software aus Anwendersicht

Die Kunst der Programmierung besteht an erster Stelle immer darin, Software zu schaffen, die den vorab geplanten Nutzen erfüllt und das gesteckte Ziel umsetzt. Bei Anwendungssoftware sollte die Software die Kernaufgabe immer im Vordergrund stehen. Das bedeutet, dass bspw. ein Taschenrechner unabhängig von zusätzlichen Funktionen optimal zum Rechnen verwendet werden kann. Ein Webbrowser muss Internetseiten gut darstellen können, usw.

An der Stelle ist nicht nur der Entwickler gefragt, sondern auch die verantwortlichen Designer. Als Programmierer wird meist ein vorgegebenes Design umgesetzt. Für den Workflow, die Bedienbarkeit und die Benutzerfreundlichkeit sind Grafik- und User Experience Designer verantwortlich.

Die hohe Kunst gelungener Software Entwicklung

Viele Wege führen nach Rom. Wenn dieser Satz irgendwo gilt, dann in der Programmierung. Anforderungen umsetzen und ein gewünschtes Ergebnis sichtbar zu implementieren, ist keine Herausforderung. Mit genug Aufwand schafft man dies, auf die eine oder andere Weise.

Eigenschaften wie Erweiterbarkeit, übersichtliche Struktur und Quellcode, der sich nicht wiederholt, lassen sich allerdings nur mit einem Plan erreichen. Eine gute Software mit hoher Qualität zeichnet sich vor allem durch eine gelungene Architektur aus. Ein guter Programmierer ist deshalb, mit genug Erfahrung, vor allem ein guter Architekt.

Gute Software Architektur

Eine gut programmierte Software ist sinnvoll strukturiert. Die Kunst besteht darin, aktuell noch nicht benötigte Anpassungen und Erweiterungen schon vorab mit einzuplanen. Als Entwickler muss man dazu lernen zu abstrahieren. Ein Beispiel:

Sie sollen ein Programm schreiben, dass Zahlen addieren kann. Stürzt man sich ohne Planung und Gedanken über Erweiterungen an die Entwicklung, wird die mathematische Operation »addieren« vermutlich fest in den Programmcode kodiert. Etwas Überlegung lässt vielleicht den Gedanken aufkommen, die Rechenoperation variabel anzulegen, so dass diese ausgetauscht werden kann. Derartige Anforderungen schon im Design vorzusehen ist die Kunst einer guten Architektur. Man erlernt dies nur durch viel Praxis. Zudem hilft es sich mit Entwurfsmustern (Design Patterns) zu befassen. Die helfen nicht nur bei der Entwicklung eigener Software. Auch das Verständnis von fremder Software wird verbessert, da Design Patterns quasi allgegenwärtig sind und überall zum Einsatz kommen.

Die Kunst der Vereinfachung

Das Ziel ist nie, eine komplexe Software zu schreiben. Viel mehr liegt die Kunst im bewussten Verzicht auf unnötige Komplexität. Eine Fähigkeit eines guten Programmierers ist es schlanken Quellcode zu schreiben, zu vereinfachen und ähnliche Logik zu vereinheitlichen. Das bedeutet zum einen Abfragen, Bedingungen und Schleifen nur zu verwenden, wenn dies nötig ist. Auch der Entwurf von Funktionen und Methoden, die jeweils genau einen einzigen Zweck erfüllen, ist ein Merkmal guter Programmierung.

Es bedarf einer Menge Übersicht und Fingerspitzengefühl, um ein großes Puzzle zusammenzusetzen. Die Schwierigkeit besteht darin, das am besten geeignete Teil zu finden. In den meisten Situationen passt mehr als ein einziges.

Wo finde ich mehr Informationen?

Ein wunderbares Werk, das über gelungene Programmierung und sauberen Code informiert, ist das Buch Clean Code. Es wird erklärt, mit welchen Methoden übersichtliche Software entwickelt wird. Für jeden Programmierer, der über die ersten eigenen Programme bereits hinaus ist, fast ein muss!

Auch das Buch Design Patterns ist ein unglaublich guter Einstieg und ein Blick hinter die Kulissen. Viel Bücher über spezifische Programmiersprachen erklären wie man konkret mit der Sprache arbeitet. Auf welchem Weg man die einzelnen Bauteile zusammenfügen kann, wird im Buch über die Design Patterns erklärt. Die Entwurfsmuster sind für jede Objektoriente Programmiersprache anwendbar.

Schreib einen Kommentar

Your email address will not be published.