Interview mit Ilker Cetinkaya
Ilker Cetinkaya, Berater, Architekt und Entwickler bei Avanade Deutschland GmbH,
entwickelt Software mit dem Microsoft .NET Framework seit der Version 1.0. Durch sein
langjähriges Wirken bei großen Projekten prägt ihn ein breites und tiefes Know-How,
besonders in den Themen Skalierung, Performance und Flexibilität von .NET Anwendungen;
sowohl im Web- als auch im Enterprise-Umfeld. Als ausgewiesener Experte für professionelle
Software-Entwicklung beschäftigt er sich seit mehreren Jahren intensiv mit den Themen agile
Methoden, TDD / BDD, C# 3.0 / 4.0 und Software-Design. Sie erreichen ihn über sein
Blog.
Golo Roden: Ilker, wie bist Du zur Softwareentwicklung gekommen? Wie und wann hast Du angefangen?
Ilker Cetinkaya: Ich glaube ich war 9 oder 10 Jahre alt, als ich das erste mal mit Rechnern in Berührung kam. Klassischerweise war es natürlich der C64 mit Datasette. Zunächst habe ich nur gespielt. Auf dem C64 selbst habe ich gerade mal PEEK, POKE und LOAD beherrscht. Ein paar Jahre später ging es dann aber mit dem Amiga 500 richtig zur Sache. Zunächst noch Spielen und Programmieren in frequentivem Wechsel, doch mit der Zeit faszinierte mich das "Anprogrammieren" der Maschine immer mehr.
Anfangs habe ich mich noch sehr auf die "Standards" wie kleine Hilfsprogramme und Verwaltungsanwendungen konzentriert. AmigaBasic war da schon ein probates Mittel. Doch bald trieb es mich in die Spiele- und Grafikprogrammierung. Agnus, Denise, Paula und ich wurden dicke Freunde. Programmiert habe ich damals viel in Blitz, AMOS, C sowie einem C-Derivat namens "Amiga E". Nun, nach vielen und langen Jahren auf der Amiga-Plattform - wir wissen ja, wie die Amiga-Geschichte verlief, oder? - "musste" ich auf die x86er-Plattform und war natürlich zunächst drastisch enttäuscht. Doch bald fand ich dort mit Borland C und Borland Pascal meine "Programmierwelt" wieder, in die ich eintauchen konnte.
Nach vielen weiteren Sprachen und Szenarien kam ich dann Anfang 2001 zu den NGWS und C#. Zunächst natürlich nur aus Interesse und Spielerei, nebenbei machte ich sehr viel in C, PHP, ASP und Visual Basic 6. Erstaunlicherweise ließ aber der Alltagsgebrauch nicht sehr lange auf sich warten, denn ich durfte bei meinem damaligen Arbeitgeber schon 2003 meine ersten Anwendungen in C# entwickeln.
Tja, und heute bin ich immer noch beim .NET Framework und bei C# - und ich bin damit auch recht glücklich.
Golo Roden: Außer mit .NET beschäftigst Du Dich auch intensiv mit agilen Methoden, insbesondere Scrum. Wie kam es dazu?
Ilker Cetinkaya: Ich habe mich für agile Software-Entwicklung um die Jahre 2003 / 2004 angefangen zu interessieren. Lustigerweise aus dem trivial-naiven Grund, dass mich der Name "Extreme Programming" einfach gereizt und neugierig gemacht hat. Damals dachte ich mir: "Yeah, Extreme Programming - klingt krass, muss ich unbedingt mal probieren". Aus diesem "mal probieren" wurde dann aber ganz schnell ein ernsthaftes auseinandersetzen. Ich habe dann Stück für Stück mich intensiv mit XP auseinandergesetzt und es sukzessive - anfangs leider nur in Teilen - umgesetzt.
Durch diese intensive Zeit bis 2007 habe ich vieles über Agilität und Methoden gelernt. 2008 schließlich war es an der Zeit, Scrum näher zu erkunden, weil es mit XP und FDD zur Auswahl stand als Software-Entwicklungs-Methodik in meiner damaligen Firma eingesetzt zu werden. Nun, man hat sich für Scrum entschieden und ich habe mich immer mehr mit dem Thema Scrum beschäftigen dürfen.
Heute kann ich für mich behaupten, zwar einiges schon über Agilität, Scrum, XP und Co. zu wissen. Aber im gleichen Atemzug muss ich auch sagen, dass ich noch einiges darüber lernen will und werde. So beschäftige ich mich zum Beispiel seit über einem Jahr nebenbei mit Lean Management und der Adaption für das Software-Engineering. Gleichzeitig macht es mir auch zunehmend Spaß, immer mehr über TDD, Pair Programming, NLP und Feedback-Loops zu lernen. Die Erkenntnis des Continuous Improvements und des daraus kausal folgenden Lifelong Learnings ist einer der Grundbausteine agiler Handlungsmethodik.
Golo Roden: Welche Rolle spielen agile Methoden Deiner Meinung nach für Anfänger?
Ilker Cetinkaya: Die gleiche Rolle wie auch für Erfahrene oder Experten. Ich bin der festen Überzeugung, das die agile Entwicklungs-Methodik ein wichtiger und großer Schritt hin zu einer neuen Art und Weise der Software-Entwicklung ist. Agile Methoden und Werte sind heutzutage sowohl aus wirtschaftlicher als auch aus professioneller Hinsicht nicht mehr aus dem Tagesgeschäft wegzudenken. Dem Anfänger darf ich den wohlgemeinten Rat geben, sich mit der agilen Software-Entwicklung zügig und intensiv auseinanderzusetzen.
Häufig wird man bei solch einer Aussage mit Antworten wie "Ja, will ich, aber ich weiß nicht wie" oder "Ja, aber bei uns geht das nicht so einfach" oder "Ja, aber wir haben keinen Experten" konfrontiert. Das sind sicherlich Punkte, die für Entwickler Einfluß auf das Lern- und Adaptionsverhalten von Agilität haben. Jedoch sollte man diese Faktoren nicht überbewerten oder unnötigen Respekt vor der Veränderung haben. Agilität ist "salonfähig" geworden. Das bringt zwar auch kritische und ungewünschte Einflüsse mit sich, ist aber im Großen und Ganzen doch positiv.
Denn: Agile Softwareentwicklung ist der Rahmen des modernen, neuen Bilds eines Software-Entwicklers. Das macht es gleichermaßen für den Neueinsteiger sowie auch für den langjährigen "Entwickler-Haudegen" zu einem unübersehbaren - ja ich möchte sogar behaupten zwingenden - Kriterium für den Erfolg als Software-Entwickler. Für den Haudegen, der solche Dinge wie Wasserfall, V-Modell, V-XT oder ähnliches hinter sich gebracht hat, ist es oftmals ein kleines Stück schwerer, sich dem Spirit der Agilität zu nähern.
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?
Ilker Cetinkaya: Es macht mir Spaß! Und das ist kein Witz! Du weißt sicherlich, was ich damit meine, deswegen gehe ich - obwohl es so unglaublich wichtig ist - auch nicht näher darauf ein, sondern möchte auch noch andere Aspekte erwähnen.
Nun, ich denke, dass man in einem Beruf, in dem stetige Neuentwicklung und Neuorientierung "Tagesgeschäft" ist, auch das notwendige emotionale, soziale und intellektuelle Rüstzeug mitbringen sollte.
Emotional, weil Motivation, Spaß, Vertrauen und Neugier oft in kleine und große Emotionen münden und man mit diesen Emotionen auch ein Stückweit umgehen können sollte. Beim Lernen, der Entwicklung und Forschung sind sich Enttäuschung und Euphorie manchmal sehr nah. Hier ist es wichtig, die Emotionen zu verarbeiten und sie "ins richtige Licht" zu rücken. So ist manchmal eine Enttäuschung noch kein Beinbruch, ein Erfolg aber oftmals kein bemerkenswerter Fortschritt.
Sozial, weil Software und Software-Entwicklung längst aus der Nische der Forschung und Technologie herausgetreten sind und sich in unserem Leben verankert haben. Diese Verankerung ist so tief, dass ein Software-Entwickler immer seltener in die Gelegenheit kommen wird, völlig selbstständig und autark ein professionelles Produkt oder eine Dienstleistung ausliefern zu können.
Intellektuell, weil Informationsgesellschaft und Informationsverarbeitung ein herausforderndes Thema sind und bleiben werden. Wir als Gesellschaft sind an einem Punkt, in dem Information ein zentrales Element unseres Lebens einnimmt. Das gilt für uns Geeks und Software-Entwickler umso mehr.
Das hört sich jetzt abgehoben und zum Teil arg philosophisch an. Aber wenn man mal ein paar Minuten darüber in Ruhe nachdenkt, dann fühlt man sich als Software-Entwickler nicht nur in der "Pflicht", neue Dinge zu Lernen, sondern man fühlt sich im "Recht", es zu tun. Und ganz offen: Dafür bin ich dankbar und weiß das auch zu schätzen.
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?
Ilker Cetinkaya: Ich habe ja gerade schon geschildert, dass man als Software-Entwickler eine Reihe von "Soft-Skills" mitbringen sollte. Vielen Entwicklern, die wie ich schon viele Jahre im Geschäft sind, die selbst schon Plattformen und Technologien "überlebt" haben, wird dieses Thema in letzter Zeit vielleicht etwas zu sehr in den Vordergrund gestellt. Ich jedenfalls höre des öfteren Kommentare wie "Ach, diese Philosophiererei und Esoterik mit Soft-Skills und Agilen Werten ist überbewertet."
Diesen Stimmen kann ich nur entgegnen, dass sie sowohl Recht als auch Unrecht haben. Sie haben Recht, denn ein Software-Entwickler ist kein Philosoph und schon garnicht ein Theoretiker. Es geht um konkrete Technologien und Informationsverarbeitung. Sicheres und hochwertiges Anwenden von Mathematik, Logik und Analytik sind Fähigkeiten, die man als Software-Entwickler zwingend mitbringen sollte. Das gilt für den hardwarenahen NUI-Treiber-Entwickler genauso wie für den CRM-Anwendungs-Entwickler.
Doch sie haben auch Unrecht. Denn ein Software-Entwickler ist mittlerweile kein isoliertes, sein 30qm-Kämmerchen mit Starkstrom versorgendes, sich von Kaffee und Pizza ernährendes, an Platinen und ICs herumlötendes, sich mit exotischen Parkleitsystemen beschäftigendes, alle seine 15 Rechner mit 3D-Landschafts-Rendering auslastendes, am Rande der Gesellschaft sozial abgegrenztes Individuum mehr.
Computer, Hardware, Software, Web, Information - das sind Dinge, mit denen heutzutage nahezu Jeder in Berührung kommt. Diesem Umstand müssen wir auch als Software-Entwickler Rechnung tragen. Das gilt für die Industrialisierung, also die Automatisierung und Globalisierung von Software-Entwicklung, als auch für die Sozialisierung, also die Menschlichkeit und Gemeinsamkeit in der Software-Entwicklung.
Damit sind, denke ich, zwischen den Zeilen auch meine No-Gos für einen Software-Entwickler schon genannt: Eigenbrot-Egozentriker, Un-Logiker, Theorie-Bibel-Prediger, Ellenbogen-Ausfahrer, Kontrollwahn-Ausleber, In-Hierarchien-Strukturierer, Chaos-Leben-Bevorzuger, Oberlehrer-Zeigefinger-Heber, Organisations-Verabscheuer, Gesellschafts-Meider, Möchtegern-Neo-In-Die-Matrix-Hacker, Rosarote-Brille-Aufhaber, Informatik-Rein-Aus-Karrieregründen-Studierer, Algorithmus-Fetischisten oder Kreativ-Kultur-Kult-Hedonisten werden es als Software-Entwickler in Zukunft sehr schwer haben.
Damit könnte ich ein ganzes Buch füllen. Spaß bei Seite, ich hoffe ich konnte klarmachen, dass man meiner Meinung nach heutzutage alleine als Software-Entwickler nicht mehr viel erreichen kann.
Golo Roden: Bei der Vielzahl an Technologien, die es heute gibt: Womit sollte ein Anfänger heutzutage anzufangen?
Ilker Cetinkaya: Schön, dass wir uns von der "Esoterik" wieder zur "Technik" wenden.
Ich finde gerade die Entwicklung rund um "Mobile and Communication" unglaublich spannend. Ich bin der Meinung, dass wir mit "Mobile Devices" nur noch ein paar Jahre von einem richtungsweisenden Entwicklungssprung entfernt sind. Die gegenwärtige Apps-Manie ist da nur ein kleines, aber wichtiges Rädchen. Dementsprechend ist Silverlight auch als ".NET-Technologie" mehr als ein kurzweiliges Vergnügen.
Im Web stellt man sich gerade zwei Herausforderungen. Einerseits ist es die clientseitige "User Experience", die mit JS-Libraries, HTML 5, Silverlight und mehr in Richtung "Rich-Internet-Applications" (RIA) zeigt. Das ist für Kreativgeister sicherlich ein spannendes Umfeld.
Andererseits versucht man sich neuerdings - ich muss seufzend sagen: endlich - ernsthaft mit dem Thema performante, instante, relevante und kontextbasierte Informationsgewinnung aus Massendaten zu beschäftigen. OData, Pivot, Twitter, Facebook, NoSql, CQRS, F#, Erlang. Endlich wird Informationsüberflutung nicht ignoriert, sondern mit Technologien kanalisiert. Ein wie ich finde hoch spannender und fordernder Technologiezweig.
Für angehende .NET-Entwickler im Enterprise-Umfeld sind sicherlich die WPF-Smart-Client-Technologien und das generelle Thema "Motional User Interfaces" wie zum Beispiel Surface oder ähnliches interessant. Hier wird es meiner Meinung nach in Zukunft eine deutlichere Wertschöpfung der Technologien geben.
Auch wurde in letzter Zeit schon deutlich, das der Schritt von "Motion" zu "Natural" nicht mehr weit ist. Augmented Reality - unabhängig vom Device - ist ein wichtiger Schritt, das Zusammenspiel von analoger und digitaler Welt harmonisch zu gestalten. Wo die Wii einen Anfang gemacht hat, begeht Microsoft mit Kinect entscheidende technologische Fortschritte. Gaming war schon immer ein Technologie-Treiber. Das fasziniert mich persönlich auch sehr an der Gaming-Technologie.
Nun ja, meine Empfehlungen sind nun Mal von meinen eigenen Präferenzen geprägt.
Golo Roden: Welchen Rat würdest Du einem Anfänger abschließend mit auf den Weg geben?
Ilker Cetinkaya: Puh, Du legst bei Deinen Fragen ganz schön viel Wert auf die Neulinge - schon die vierte "Anfänger-Frage" - sehr lobenswert. Ich weiß gar nicht so genau, ob ich einen Rat "nur für Anfänger" geben kann. Ich denke vielmehr, dass wir auch als "Erfahrene" uns immer wieder selbst Ratschläge geben können und sollten.
Damit möchte ich einen meiner Meinung nach wichtigen Punkt andeuten. Als Anfänger stellt man sich gerne - und natürlich auch berechtigt - in die Position des "Lernenden". Doch auch die langjährigen "Senior Software Developer" oder "Software Architekten" tragen dazu bei. Denn leider gilt oftmals noch "Hackordnung" und das "weise Wort" des Architekten hat ein größeres Gewicht als das des "Greenhorns".
Den Neulingen möchte ich folgendes auf den Weg geben: Versteckt Euch nicht und stellt Euch nicht unnötig unter den Scheffel. Denn ein "Erfahrener", der seinen Standpunkt als "Mastermind" transportiert oder seine Position oder Erfahrung als Entscheidungskriterium hervorhebt, ist keineswegs erfahren genug, um eine moderne, gemeinschaftliche Software-Entwicklung umzusetzen.
Weiterhin solltet Ihr euch bewusst sein, dass Ihr nicht alles lernen und können werdet. Software-Entwickler ist ein Beruf mit vielen Facetten und Möglichkeiten. Das bedeutet immer wieder lernen, immer wieder neu orientieren, immer wieder leisten und liefern. Das ist "Pflicht" und manchmal gar nicht so schwer. Aber das bedeutet auch, sich entfalten, sich einbringen, sich bilden, sich bestätigen, sich entwickeln. Das ist "Recht" und manchmal gar nicht so einfach.
Aber ein Rat ist meiner Meinung nach immer noch einer der wichtigsten, schönsten und besten:
Habt Spaß dabei!
Veröffentlicht am 15. Juli 2010