Interview mit Stefan Lieser
Stefan Lieser ist freiberuflicher Berater, Trainer und Autor aus Leidenschaft. Sein
Interesse gilt den agilen Methoden der Softwareentwicklung, und er sucht ständig nach
Verbesserungen und neuen Wegen. Mit Ralf Westphal hat er die
Clean Code Developer-Initiative ins Leben
gerufen. Durch seinen Fokus auf Clean Code Developer ist er ferner als Berater in
Brownfield-Projekten tätig. Sie erreichen ihn über seine Webseite.
Golo Roden: Stefan, wie bist Du zur Softwareentwicklung gekommen? Wie und wann hast Du angefangen?
Stefan Lieser: Ich habe als Schüler in den Ferien als Datenerfasser in einem Pharmabetrieb gejobbt. Mein Vater hat im gleichen Betrieb gearbeitet und mir den Job besorgt. Tatsächlich habe ich sogar mit ihm in einem Büro gesessen, was eine einmalige Chance war. Denn wer erhält als Jugendlicher schon einen tieferen Einblick in den Beruf der Eltern? Jedenfalls, wenn man mal von handwerklichen Berufen absieht.
Meine Aufgabe war die Erfassung von Fragebögen zu klinischen Studien. Die Abteilung hatte die Aufgabe, diverse Statistiken zu den Daten zu berechnen, Diagramme zu erstellen, ... Dabei fielen immer wieder kleinere Programmieraufgaben an, so habe ich begonnen, in FORTRAN zu programmieren. Das war vor der Zeit der PCs, es gab keine grafische Oberfläche, sondern green-screen-Terminals an einer DEC PDP-11 und später einer MicroVAX.
Nach dem Abitur habe ich Zivildienst gemacht, bin von zu Hause ausgezogen und habe meinen ersten PC gekauft. In der Zeit habe ich jede freie Minute am Rechner gehockt und C, Assembler sowie Turbo Pascal gelernt. Nach dem Zivildienst habe ich in Koblenz Informatik studiert und auch in dieser Zeit ständig Software entwickelt. Hier gesellten sich C++ und Modula-2 hinzu. Mit der Softwareentwicklung habe ich mir mein Studium finanziert. Nach dem Studium habe ich mit zwei Partnern die S&L Netzwerktechnik GmbH gegründet und war 5 Jahre lang Netzwerker. Das war auch schön, aber die Softwareentwicklung liegt mir mehr am Herzen.
So habe ich dann erst als angestellter Entwickler gearbeitet und mich dann erneut selbständig gemacht. Heute arbeite ich als Trainer, Berater und Autor im Bereich Clean Code Developer und Brownfield. Das scheinen auf den ersten Blick zwei Bereiche zu sein, die nichts gemeinsam haben. Brownfield steht quasi am einen Ende der Skala, Clean Code am anderen. Doch die wenigsten Entwickler kommen in den Genuss, in sogenannten Greenfield Projekten "auf der grünen Wiese" anzufangen. Viel häufiger existiert ein Projekt bereits lange Zeit und die Frage lautet, wie schafft man es, dessen innere Qualität zu verbessern.
Golo Roden: Gemeinsam mit Ralf Westphal hast Du die Initiative "Clean Code Developer" ins Leben gerufen. Welche Bedeutung misst Du diesem Thema bereits für Anfänger bei?
Stefan Lieser: Die Clean Code Developer-Initiative soll ein Gegengewicht sein, um zwei Sichtweisen ins Gleichgewicht zu bringen. Wir haben in der Branche schon lange den Fokus auf König Kunde. Dies ist total in Ordnung, aber es fehlt die Sichtweise derjenigen, die sozusagen unter die Haube schauen. Wird die Entwicklung nur davon geleitet, Kundenwünsche umzusetzen, dann fehlt die Perspektive der Softwareentwickler.
Unsere Kunden gehen beispielsweise völlig zu Recht davon aus, dass sie Software erhalten, die immer weiterentwickelt werden kann. Ob sie sich heute ein neues Feature wünschen oder dasselbe Feature erst in einem Jahr entwickeln lassen, sie gehen davon aus, dass es einen fixen Preis hat. Heute ist es jedoch so, dass der Preis für das Feature dramatisch ansteigt, je später es ergänzt werden soll. Das liegt daran, dass nicht ausreichend auf die innere Qualität der Software geachtet wird.
Evolvierbarkeit fällt nicht einfach vom Himmel, sondern muss von den Softwareentwicklern von Anfang an bedacht und umgesetzt werden. Insofern bin ich sehr dafür, dass angehende Softwareentwickler sich von Anfang an in ihrer Ausbildung mit den Bausteinen und Werten der Clean Code Developer-Initiative auseinandersetzen. Wir versuchen daher, mit Ausbildungsstätten in Kontakt zu treten. Ab und zu gelingt dies schon und wir halten Vorträge über die Initiative an Hochschulen oder ähnliches. In der allgemeinen Lehre sehen wir die Inhalte allerdings noch zu selten.
Golo Roden: Ein wesentliches Merkmal der IT ist, dass man beständig mit neuen Entwicklungen konfrontriert wird, und diesen folgen muss. Woher nimmst Du die Motivation, Dich quasi jeden Tag weiterzubilden und mit Neuem zu beschäftigen?
Stefan Lieser: Einerseits ist da die Neugierde, die mich antreibt, mich mit Neuem auseinanderzusetzen. Andererseits blende ich bewusst einiges aus. Vor allem den ständigen technischen Neuerungen renne ich nicht mehr so hinterher, wie ich das früher getan habe.
Dem liegt die Erkenntnis zugrunde, dass Prinzipien und Praktiken der Softwareentwicklung in der Regel deutlich länger Bestand haben als diverse Technologien. Das soll nun nicht heißen, dass ich Technologie für unnötig erachte. Aber ich meine schon, dass man sich auch mal getrost zurücklehnen kann, um eine Technologie nicht als erster einzusetzen. Am Ende fehlt mir selten die Motivation, mich mit Neuem zu befassen.
Für mich liegt die Herausforderung eher darin, meinen eigenen "roten Faden" zu finden und an dem dann beständig weiterzuarbeiten. Fokus ist wichtig. Nicht nur bei der Softwareentwicklung, auch bei der persönlichen Entwicklung. Und regelmäßige Reflektion, um festzustellen, ob das, was man tut, das richtige ist.
Golo Roden: Wenn sich ein Anfänger heute mit dem Thema Softwareentwicklung befassen will - welche Voraussetzungen sollte er Deiner Meinung nach dafür mitbringen, und was siehst Du als No-Go an?
Stefan Lieser: Eine wichtige Voraussetzung im Bereich Softwareentwicklung ist die Fähigkeit, zu abstrahieren. Wer damit Schwierigkeiten hat, scheint mir ungeeignet für eine Tätigkeit im Bereich Softwareentwicklung. Damit meine ich nicht, dass man diese Fähigkeit entweder hat oder nicht hat. Natürlich kann man seine Fähigkeiten, zu abstrahieren, weiterentwickeln. Erstaunlicherweise macht das aber vielen Entwicklern große Probleme. Die regelmäßig Reflektion darüber, wie ich an Problemstellungen herangehe und was dann auf dem Weg zur Lösung so alles passiert, ist eine wichtige, wenn nicht sogar die wichtigste Praktik zur Weiterentwicklung.
Damit gehört die Bereitschaft, alles zu hinterfragen und ständig nach neuen Wegen zu suchen, für mich zu einem Beruf in der Softwareentwicklung dazu. Es gibt vermutlich keinen Beruf mehr, den man einmal lernt und dann nur noch ausübt. Aber speziell die Softwareentwicklung lebt von der beständigen Weiterentwicklung. Die Bereitschaft, in diesem Beruf ständig zu lernen, sollte man also mitbringen.
Golo Roden: Bei der Vielzahl an Technologien, die es heute gibt: Womit sollte ein Anfänger heutzutage anfangen?
Stefan Lieser: Ich habe es oben schon angedeutet, Technologien sind überbewertet. Eine Empfehlung für eine bestimmte Technologie muss in einem Kontext stehen. Wenn die Frage lautet, welche Technologie ich empfehlen würde, um als Softwareentwickler einen Job zu finden, würde ich vielleicht "Java" antworten. Das ist aber vermutlich nicht die Antwort, die Du hören möchtest. Aber auch im Bereich .NET kann ich keine solche Empfehlung aussprechen, ohne die Frage in einen Kontext einzubetten. Ich will mich aber nicht vor einer Antwort drücken und daher zwei Dinge empfehlen.
Wie ich weiter oben schon erwähnt habe, halte ich im Bereich Softwareentwicklung Werte, Prinzipien und Praktiken für elementar. Denn diese ermöglichen mir eine Bewertung der zur Verfügung stehenden Technologien. Meine erste Empfehlung lautet also, befasst euch mit den Werten der Clean Code Developer-Initiative.
Die zweite Empfehlung lautet, nicht nur auf Microsoft zu schauen. Natürlich bringt Microsoft eine ganze Reihe hervorragender Technologien hervor. Aber andere Mütter haben auch schöne Töchter. Gerade im Open Source-Bereich gibt es eine ganze Reihe an Technologien, die von vielen Entwicklern nicht beachtet werden, weil sie nicht von Microsoft stammen. Ein Blick über den Tellerrand schadet nicht.
Golo Roden: Welchen Rat würdest Du einem Anfänger abschließend mit auf den Weg geben?
Stefan Lieser: Musiker üben. Sie stehen nicht nur auf der Bühne und "performen", sondern die meiste Zeit üben sie. Softwareentwickler scheinen zu glauben, sie könnten einfach so "performen". Immer. Ohne zu üben. Problematisch daran ist, dass Auftritt und Übung unterschiedliche Anforderungen stellen. Es sind sozusagen zwei völlig andere "Betriebsarten". Beim Auftritt sollte man Fehler tunlichst vermeiden, während man beim Üben eine Umgebung braucht, die Fehler toleriert, um sich weiterzuentwickeln.
Da stellt sich dann die Frage, wie man sich als Softwareentwickler weiterentwickeln kann, wenn man nur in der Betriebsart "keinen Fehler machen" arbeitet. Mein Rat, nicht nur an Anfänger, lautet daher: Regelmäßig üben! Ob man sich dafür jeden Tag einen Zeitrahmen einräumt oder einmal pro Woche, ist eine Frage des Umfeldes. Die Regelmäßigkeit ist es, was zählt. Im Web und in Fachzeitschriften wie der dotnetpro findet man genügend große und kleine Übungen. Daran sollte man seine Fähigkeiten als Softwareentwickler weiter entwickeln.
Veröffentlicht am 15. Juni 2010