Code is not Poetry

Dieser Blogpost wurde inspiriert von dem Vortrag „Code is not poetry„, den Markus Tacker auf dem WebMontag Frankfurt gehalten hat.

Schon seit meiner Teenagerzeit liebe ich Technologie. Meine Laufbahn brachte mich mit rund 15 Programmiersprachen auf Tuchfühlung. Ich liebe Gadgets aller Art, Programmierung und besonders die Techszene in all ihren Ausprägungen. Genau diese Begeisterung spülte mich auch zielsicher immer wieder an die Stellen großer Unternehmen an denen man mit eben dieser Szene eng zusammenarbeiten darf.

Mein Selbstverständnis was mein „Entwicklertum“ anging, durchlief dabei mehrere Phasen:

1. Code als Zauberei: Ganz am Anfang stand zumindest bei mir hemmungslose Faszination sobald der Rechner tat wie ihm geheißen. Außerdem kam das mit einem Gefühl der Macht, wenn es tatsächlich das war, was ich mir überlegt hatte… Die Möglichkeiten schienen grenzenlos. Außerdem verstand nicht jeder was ich da tat, es war also eine Art Geheimwissenschaft, speziell für die Erwachsenen um mich herum geradezu obskur 🙂 Nachdem ich selbst auch oft nicht verstand wie alles zusammenhing, war auch so manches ein Taschenspielertrick was ich als großes Ergebnis feierte.

2. Code als Geheimwissenschaft: Ich erinnere mich noch deutlich daran wie ich als Teenager mit 14 dachte jetzt alles verstanden zu haben als ich meine ersten Assemblerprogramme bastelte (das Gefühl hielt allerdings nicht lange an). Später dann, als ich in erster Linie in Message-boards rumhing und mir mit meinem wenigen Wissen groß vorkam, hielt ich mich für eine Art Hacker in Ausbildung (auch nicht lange). Der Schlüssel war die Annahme, das Code wie eine Art Geheimschrift für Außenstehende war und das Wissen nicht leicht zugänglich. Es kostet Aufwand um gut zu werden und anfangs war ich mir sicher, entweder eine Laufbahn als Hacker oder Spieleentwickler vor mir zu haben. Was sonst? 

3. Code als Kunst: Mit meinen ersten echten Programmen schließlich war mir klar: Programmieren ist eine Art Kunst. Ich meinte in dem kreativen Schaffensakt und meiner Liebe zu schönem Code mehr zu erkennen als pure Technik. Die Kreativität, der Kennerblick mit dem man schöne Lösungen erkannte, die Eleganz der Umsetzung… Programmieren kann großartig sein, wenn man „in the zone“ ist und manches mal wird es fast schon zum Selbstzweck.

Und genau diese Stufe auf der Code als Kunstform empfunden wird, pflegen und hegen die meisten Entwickler. Wir sind schon ein besonderes Völkchen und unsere Werke sind doch sicher nicht mit den Werkstücken eines Schreiners oder Klemptners vergleichbar, oder?

Aber mal ehrlich: eCommerce Webseiten? Abnehm-Apps? Fahrstuhlsteuerungen? Fitnessplan-Assistenten? RSS Reader? Grafiktreiber? Navigationssysteme? Soll das wirklich alles Kunst sein? Uhm… Auch die oft zitierten Spieleentwickler, die als Endausbaustufe des kreativen Entwicklers gelten, sind weit von Kunst entfernt. Oder glaubt hier irgendjemand, dass es sich kunstvoll anfühlt den Bundesliga Manager 2015 zu programmieren nachdem man schon am Bundesligamanager 2014 und dem BLM 2012 mitgearbeitet hat?

Insgesamt glaube ich, wir übersehen einen wichtigen Aspekt wenn wir Code als Kunstform und uns selbst als Künstler ansehen: Code ist für sich genommen wertlos. Code allein sieht noch nicht mal gut aus. Erst wenn Code auf eine ausführende Plattform und einen Benutzer trifft fängt die Sache an spannend zu werden. Wenn unser Code dann noch einen Zweck besonders gut erfüllt, haben wir überhaupt etwas erreicht…

Kunstwerke sind da anders. Sie stehen für sich alleine. Das Werk, seine Aussage und die Motivation des Künstlers benötigen bis auf wenige Ausnahmen keine weitere Plattform um zu funktionieren.

4. Code als Ingenieurshandwerk: In meiner Laufbahn traf ich tausende Entwickler und habe so manches Projekt gesehen. Die Entwickler, die ich am beeindruckendsten fand, waren in der Regel alles andere als Künstlertypen. Für gewöhnlich hatten die eine sehr technische Sicht auf ihre Tätigkeit und eine Liebe zum Detail und Wissen, die bei anderen oft fehlten. Es gab einen ausgeprägten Stolz auf die Ergebnisse, eine Achtung vor guten Vorgehensweisen und eine Könnerschaft, wie sie nur durch viel Übung entstehen kann. Eines meiner liebsten Bücher über Programmierung ist immer noch Code Complete von Steve McConnell. Dieses Buch strahlt von der ersten bis zur letzten Seite den Stolz des Autors aus, sein Handwerk professionell und mit Blick fürs Detail auszuüben. Das ist eine professionelle Berufsethik wie man sie in allen Bereichen findet in der wenige Menschen spezielle Kenntnisse mit großem Wirkungsgrad erwerben. Mediziner, Juristen, Architekten, Ingenieure… allen gemeinsam ist dieser Stolz auf ihre Werke obwohl von den genannten wohl kaum einer als Künstler gesehen wird.

Letztlich schaffen wir mit unseren Programmen schließlich technische Konstruktionen, die zusammen mit einer technischen Infrastruktur Problemlösungen anbieten. Ohne Zweck existiert kein Code, ohne Kundenwunsch keine Lösung. Wie jedes Ingenieurshandwerk ist das der Hauptgrund unserer Entwicklungen und gleichzeitig der Teil auf den man als Programmierer ja auch richtig stolz ist: Je mehr Relevanz im echten Leben, desto besser war unsere Arbeit. Künstler schaffen Kunst aus anderen Motivationen. Hier geht es um sie selbst, ihre Aussagen und den Gegenstand ihrer Kunst. Ich behaupte, bei uns ist das nur sehr selten so.

„Aber, aber… Wir sind doch kreativ bei unserer Arbeit, ist das vorhin erwähnte kreative Schaffen nicht ein eindeutiges Zeichen dafür, dass Programmierung eben doch eine kreative, künstlerische Tätigkeit ist?“, höre ich Dich einwenden. Ja und nein. Ja, weil wir natürlich kreativ sind. Es ist aber ganz schön vermessen einem Schreiner oder einem Ingenieur anderer Disziplinen zu unterstellen, sie wären eben genau das nicht auch. Ich glaube Kreativität ist unbedingt notwendig um Künstler zu sein, aber nicht exklusiv diesem Feld zugeordnet. Jeder selbstständig arbeitende Spezialist muss kreativ sein um Lösungen für neu auftauchende Problemstellungen zu entwickeln.

5. Code als Design: Aber vielleicht gibt es ja Raum für eine Perspektive, die den handwerklichen Aspekt, die Craftsmanship, mit den kreativen, kunstvollen Elementen verbindet. Abhängig davon, welche Art Lösung wir uns nämlich ansehen, kann man Code noch als eine Art professionelle Kreativdienstleistung ansehen, ein Designprodukt. Wie das Ingenieurswesen hat Design immer einen Kunden oder ein Ziel, außerdem haben beide auch die Professionalisierung gemeinsam. Aber speziell bei Code, der vom Alltäglichen abweicht, haben wir manches mal nicht nur die technische Lösung sondern oft auch weitere Qualitätsaspekte zu berücksichtigen. Wie flexibel gilt es zu bleiben, müssen bestimmte Rahmenbedingungen wie etwa Lizenzformen berücksichtigt werden? Unter welchen Bedingungen kann/soll/muss die Lösung später laufen? Solche Lösungen werden häufig individualisiert für hochkomplexe Umgebungen entworfen und sind dabei eben auch mehr als das reine Anwenden technischer Werkzeuge.

So, nach diesem kleinen Ausflug wende ich mich jetzt mal meinem Python Script von letzter Woche zu. Ich verstehe nicht mehr, was ich da designed habe und es produziert derart viele Fehler, dass ich nicht von Handwerk sprechen will. Wenn es später dann läuft, ist es ein Wunder und ich habe dann sicherlich ein Kunstwerk geschaffen, das außer mir keinen interessiert… So ist das halt mit uns unverstandenen Code-Poeten 🙂

 

Facebooktwittergoogle_plusredditlinkedinmail

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.