Meet the Geek

Folge 5: Der .NET-Entwickler

gepostet von am

Rainer ist überzeugter Freelancer und Scrum-Befürworter. Die Agilität strahlt quasi aus ihm heraus, wenn er über die .NET-Webentwicklung spricht, über seinen Drang (und die Pflicht eines jeden Entwicklers), sich immer up-to-date zu halten, über Pair Programming und Fußballfreunde. Wer von Rainer gecoacht wird – ob in der IT oder im Fußball, wird lernen, dass es sich lohnen kann, eine Strategie konsequent anzuwenden.

Rainer Schulz, .NET-Entwickler

Name:
Rainer Schulz
Alter:
48
Beruf:
.NET-Entwickler (Freelancer)
in der IT seit:
1995
wichtigste Tools:
Visual Studio mit ReSharper für .NET, Webstorm als IDE für AngularJS, für Scrum: Team Foundation Server und Jira
Inspiration findet er auf:
heise.de, codeproject.com

Über „Meet the Geek“

Rainer, du kannst auf zwei Jahrzehnte Erfahrung als Entwickler zurückblicken – ursprünglich kommst du aus der IBM AS 400-Entwicklung, bist dann 2004 auf Webentwicklung (ASP) umgestiegen und seit 2007 mit ASP.NET unterwegs. Als Freelancer hast du dich selbst dazu entschieden. Warum der Wechsel?

Rainer:
Ich sage immer gerne, .NET lässt sich als die “eierlegende Wollmilchsau der Entwicklung” bezeichnen. Die Umgebung bietet mit Ihren Services und der Sprachenneutralität eine große Vielseitigkeit an Möglichkeiten. Das ist z.B. für die Anfertigung maßgeschneiderter Individualsoftware besonders von Vorteil. Ich selbst bin letztendlich über einen Jobwechsel dazu gekommen. Da stand ich dann vor der Entscheidung, ob ich mich weiter auf SAP spezialisiere oder mit ASP.NET etwas Neues beginne. Den Wechsel habe ich bis heute nicht bereut.

Nach einem Elektrotechnik-Studium bist du in den Informatik-Bereich umgeschwenkt und schließlich als Softwareentwickler in einer Festanstellung gestartet. Seit 2004 hast du dich dazu entschlossen, als Freelancer weiterzumachen. Worin liegen für dich die Vorteile gegenüber einer Festanstellung?

Rainer:
Es sind zwei wesentliche Aspekte, die mir daran besonders gefallen – einer ist fachlich, der andere eher persönlich. Jeder, der aus Überzeugung in die Software-Entwicklung oder generell in die IT geht, ist daran interessiert, seine gewählte Technologie in der Tiefe zu beherrschen und sich gleichzeitig fachlich up-to-date zu halten. Das Erste kommt natürlich mit der Erfahrung. Das Zweite ist für jeden Entwickler wesentlich: Man muss immer wieder Neues dazulernen. Auf einer Routine-Position kann das Neulernen anstrengend werden, weil die unmittelbare Notwendigkeit vielleicht nicht immer so gegeben scheint. – Als Freelancer ergibt es sich erst gar nicht, in eine mehrjährige Routine zu verfallen. Immer wieder kommt man in neue Teams, steht neuen Aufgaben und Umgebungen gegenüber. Das hält frisch und jung. (lacht)

Die zweite Sache ist, dass es mir gefällt, neue Menschen kennenzulernen. Nicht selten entstehen auch neue Freundschaften. Diese Aussicht gefällt mir!

Du warst auch bereits als Scrum Master und als Product Owner tätig und konntest bei verschiedenen Unternehmen einen Einblick in deren agile Entwicklungsarbeit gewinnen. Wie stehst du dem gegenüber?

Rainer:
In jeder Hinsicht positiv. Für mich ist agile Entwicklung, speziell Scrum, genau der Weg, den man bei IT-Projekten gehen sollte.

Man hört ja aber auch viele kritische Stimmen zur Scrum-Methodik. Gegner sprechen davon, dass Projekte genau daran scheitern oder qualitativ und im Hinblick auf die verwendeten Ressourcen entscheidend leiden. Wie siehst du diese Kritik?

Rainer:
Aus meiner Erfahrung heraus kann ich dazu sagen, dass Probleme nicht durch die agile Methodik entstehen, sondern im Gegenteil dadurch, dass das Programm, so wie es vorgesehen und konzipiert ist, einfach nicht konsequent durchgezogen wird. Oft werden nur einzelne Teile daraus tatsächlich umgesetzt. Schwachstellen gibt es beispielsweise sehr häufig in der Review-Phase, wenn diese nur mangelhaft oder auch gar nicht durchgeführt wird. Wenn man diesen wichtigen Teil der Qualitätssicherung so einschränkt, liegt es auf der Hand, dass die Qualität leidet. Auch an anderen Stellen führt die halbherzige Umsetzung des Modells zu Schwierigkeiten. Da, wo es jedoch konsequent angewandt und gelebt wird, können alle Seiten extrem davon profitieren: die Auftraggeber ebenso wie das gesamte Team, das sich gegenseitig unterstützt und zuarbeitet.

Welche Ausgangslage würdest du also am liebsten antreffen, wenn du als Coder in einem neuen Projekt startest?

Rainer:
“Agiler Flair” ist in jedem Fall wichtig für mich. Test-Driven-Development z.B. ist absolut sinnvoll – solange es auch konsequent angewandt wird. Mir kommt es aber vor allem darauf an, dass man sachlich und fair im Team zusammenarbeitet. Dazu gehört auch, dass man einen Ist-Zustand – sei es in technischer oder methodischer Hinsicht – hinterfragen können muss. Das ist häufig wichtig, um am Ende zur wirklich besten Lösung zu kommen. Konkret ist da Pair Programming ein Modell, nach dem ich sehr gerne vorgehe. Gerade für Freelancer, die neu in ein laufendes Projekt einsteigen, ist das der beste Weg, um sich einzufinden. Nicht selten mangelt es an einer effizienten Einarbeitung. Das daraus resultierende Manko lässt sich so leichter umgehen.

Dabei sollte es im Idealfall wie in einem sportlich fairen Team zu gehen. Ist es mal notwendig, bestehende Begebenheiten in Unternehmen oder auch die Ansätze anderer Entwickler zu hinterfragen, muss das möglich sein. Im Idealfall befruchtet sich dann so die Zusammenarbeit. Ich sage immer: Es kommt darauf an, was die Leute von dir halten, wenn du wieder gehst – nicht, was sie von dir halten, wenn du kommst.

“Sportlich faires Teamplay” - Das bringt mich darauf: Was wärst du geworden, wenn du nicht in die IT gegangen wärst?

Rainer:
Tatsächlich Fußballtrainer. Ich habe mal eine Jugendmannschaft trainiert und weiß, dass ich darin völlig aufgehen kann. Auch in meinem jetzigen Beruf arbeite ich gerne als Coach. So habe ich zum Beispiel eine Oracle-Fortbildung gemacht, um hier auch unterrichten zu können. Ich kenne ja aus eigener Erfahrung die Perspektive des Entwicklers bei Umsetzungsprozessen sehr genau, was definitiv eine wichtige Voraussetzung für eine anleitende Position ist. Auch für die Rolle als Scrum-Master oder Product Owner ist das sehr hilfreich. Sehr gerne nehme ich Aufgaben in diesem Bereich an.

Rainer, vielen Dank für das Gespräch!