Interview mit Fernando Cejas

Über Code-Katastrophen: „May the force of FAILURE be with you!“

Gabriela Motroc

© Shutterstock.com / studiostoks

Unfälle passieren. Manchmal machen wir Fehler und das ist völlig in Ordnung. Wir haben uns mit Fernando Cejas, Developer Advocate bei IBM, über das Potential von Fehlern unterhalten: Wozu sind Fehler gut, wie verliert man nicht den Mut? Und vor allem: Wie lernt man aus Missgeschicken?
 

JAXenter: Alle (oder die meisten) Softwareentwickler haben „dem Grauen“ schon einmal ins Auge geblickt. Welche Code-Katastrophen sind dir bisher begegnet?

Fernando Cejas: Gute Frage. Nach beinahe 20 Jahren in der Branche bin ich auf jeden Fehler, den ich gemacht habe, und auf jede verursachte Katastrophe stolz. Die Erste, die mir in den Sinn kommt, stammt aus der Applikation einer Bank – vor etwa 10 Jahren. Ich hatte dem Code einen Kommentar hinzugefügt:

„Ruft mich bitte an, bevor ihr hier etwas ändert.“

Der Grund dafür? Selbst ich habe den Code nicht mehr verstanden – und das obwohl ich ihn selbst geschrieben hatte! Wenn es komplexer wird, müssen wir besonders vorsichtig und bemüht sein, leicht lesbaren Code zu schreiben. Die meisten Software Engineers verbringen nämlich mehr Zeit damit, Code zu lesen und zu verstehen, als Code zu schreiben.

JAXenter: Wie hast du die Katastrophen gelöst und was hast du aus ihnen gelernt?

Fernando Cejas: Zuerst muss man erkennen, was man falsch macht. In dem genannten Fall wäre niemand in der Lage gewesen, den beschriebenen Systemabschnitt vernünftig zu warten. Wenn dort also etwas Problematisches passieren würde, könnte das Problem nicht direkt gelöst werden. Theoretisch ist es leicht, das zu verhindern: Feedback einholen, kommunizieren und sich nicht isolieren. Praktisch tun viele das genaue Gegenteil, weswegen ich immer wieder dazu aufrufe, ausreichend zu kommunizieren. Es ist wichtig, von erfahreneren Menschen zu lernen und einen Mentor bzw. ein Vorbild zu haben. Denken Sie daran: Code ist in unserer Branche ein Kommunikationsmittel.

JAXenter: Sind Misserfolge automatisch schlecht oder auf lange Sicht eher hilfreich? Sind Fehler in der Softwareindustrie gesellschaftsfähiger geworden?

Fernando Cejas: Ich denke, dass jemand, der noch nie einen Fehler gemacht hat (wobei fraglich ist, ob so eine Person existiert), noch nie etwas Neues ausprobiert hat.

Aus Fehlern zu lernen, ist der Schlüssel zum Erfolg. Selbstverständlich müssen wir, nach bestem Wissen und Gewissen, darauf achten, keine Fehler zu machen, da es sonst zu Katastrophen kommt. Unglücklicherweise passieren sie trotzdem: Wir sind nämlich nur Menschen und Menschen machen Fehler. Deswegen sollten wir Fehler immer positiv betrachten und versuchen, sie nicht zu wiederholen.

In einem früheren Job habe ich meine Firma schon einmal mehrere tausend Euro gekostet. Natürlich haben wir aus der Situation gelernt, aber das Beste daran war, dass niemand mit dem Finger auf mich gezeigt hat. Ich wurde nicht verurteilt und wir haben das Problem als Team, als Einheit, gelöst und anschließend dafür gesorgt, dass es nicht noch einmal dazu kommen kann.

Lesetipp:

Grundkurs Docker: Eine praktische Einführung in die Welt der Container

Keine andere Technologie hat die IT in den letzten Jahren so geprägt wie Docker. Doch warum ist das so? Was macht Docker so besonders, wie funktioniert die Technologie unter der Haube und wie können Sie vom Trend profitieren? In unserem Grundkurs Docker lernen Sie anhand praktischer Beispiele, Docker und die Container-Technologie richtig einzusetzen.

Jetzt gratis auf JAXenter lesen!

JAXenter: Wie wichtig ist es Post-Mortem-Analysen durchzuführen? Kann man aus ihnen lernen und zukünftige Ergebnisse verbessern?

Fernando Cejas: Post-Mortems und Retrospektiven müssen als essenzielle Bestandteile eines jeden Softwarezyklus‘ berücksichtigt werden. Schon dadurch, dass man das Erlebte (d.h. auch Fehler) teilen und diskutieren kann, können ähnliche Situation in Zukunft einfacher vermieden werden.

JAXenter: Und was, wenn der Plan scheitert? Wie sollte man mit dem unbekannten Element im Softwareentwicklungsprozess umgehen?

Fernando Cejas: Natürlich gibt es auch gute Projekte, aber wir können nicht davon ausgehen, dass immer alles reibungslos abläuft. Neue Technologien, Code-Überarbeitung und Lieferprozesse bergen grundsätzliche Risiken – nämlich dass etwas schief läuft.

Wie können wir damit umgehen? Erst einmal sollten wir natürlich immer den Best Practices und Prinzipien der Softwareentwicklung folgen. Ganz grundsätzlich: Denken sie an die SOLID-Prinzipien, wenn Sie objektorientiert programmieren (es gibt auch Pendants zur funktionalen Programmierung), nutzen Sie Patterns, haben Sie ein Auge auf Anti-Patterns, kommunizieren Sie genügend, arbeiten Sie als Team, und so weiter.

Natürlich gibt es aber auch noch weitere Dinge, die bei der Erstellung und Bereitstellung hochwertiger Anwendungen helfen können: Continuous Integration (so viel automatisieren wie möglich), Pair Programming, TDD (Test-driven Development). Zwei der wichtigsten sind das Schreiben von Tests und das Überarbeiten des Codes. Kontinuierliche Verbesserungen sind außerordentlich wichtig, um die Code-Basis sauber und stabil zu halten.

JAXenter: Wie können Softwareentwickler lernen, bessere Software zu schreiben und zu entwickeln?

Fernando Cejas: Das habe ich in der vorherigen Frage schon ein wenig beantwortet, aber man könnte noch betonen, wie wichtig es ist, gute und schlechte Erfahrungen zu teilen. Letztlich stehen wir alle vor den gleichen Problemen. Verschiedene Meinungen machen uns flexibler und sorgen für mehr Pfeile in unserem Code-Köcher, wodurch wir unsere Probleme besser bewältigen können.

Lassen Sie sich also nicht entmutigen und: May the force of FAILURE be with you!

JAXenter: Vielen Dank!

Fernando Cejas is an IBM Developer Advocate focused on Cognitive Computing and Mobile Platforms. A SoundCloud Alumni, he has worked for several companies in a wide variety of projects in J2ME, C-Sharp, Java, PHP, Ruby, Scala and Kotlin in different contexts: Social networks, NFC/RFID Hardware Solutions, E-Commerce and Music Platforms. He has been involved with Android since its appearance and currently as part of his job he advocates developers by exploring new technologies, speaking at conferences and sharing knowledge.
Geschrieben von
Gabriela Motroc
Gabriela Motroc
Gabriela Motroc ist Online-Redakteurin für JAXenter.com. Vor S&S Media studierte Sie International Communication Management an der The Hague University of Applied Sciences.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: