Sebastian Deutsch, Senior Software Developer bei 9elements
28. September 2016Sebastian ist 38 Jahre alt und Geschäftsführer von 9elements, einer Bochumer Agentur für Softwareentwicklung, die mehrfach Innovations- und Designpreise gewinnen konnte. Doch wenn man Sebastian fragt, was er ist, dann vor allem eins: Ruby-Entwickler. Er sagt: Unter einem Coding-Share von 50 Prozent werde er sauer. Wir glauben ihm das und lassen uns das von amerikanischen Startups inspirierte Office zeigen.
Vita
Sebastian hat seinen Abschluss in Computer Science an der technischen Universität in Dortmund absolviert und schon früh an einem Commodore Amiga zu programmieren begonnen. Sebastian beherrscht unterschiedliche Plattformen, bevorzugt aber Webprojekte. Zur Jahrtausendwende gründet er mit Eray Basar 9elements.
Empfehlungen
- Inspiration: Awsome-Lists
- Hackerspaces: Das Labor, C4
- Online-Kurse: Codecademy, Rails für Zombies, Railsgirls
Hallo Sebastian, was motiviert dich als Programmierer?
Ich finde es super, wenn man Software schreibt und die wird tatsächlich benutzt. Neulich hat sich bei uns jemand auf eine Praktikumsstelle beworben, die er über MeinPraktikum.de gefunden hat. Wir programmieren die Plattform und da ist es schön zu sehen, dass man dadurch den Leuten tatsächlich helfen kann.
Noch schöner ist es, wenn man etwas baut und andere Entwickler nutzen das. Ich habe zum Beispiel eine Templating-Maschine geschrieben, die von vielen genutzt wird.
Ihr nutzt bei 9elements viel Ruby. Wie bist du zu Ruby gekommen?
Ich fand untypisierte Programmiersprachen schon immer cooler. Und zu Ruby bin ich eigentlich über Rails gekommen, das war meine Einstiegsdroge. Denn all die Sachen, die bei den anderen Programmiersprachen immer so ein bisschen verboten waren und nicht so gut funktionierten, waren bei Rails kein Problem. Was mich begeistert hat: Rails ist ein Framework für Ruby mit dem sich Web-Projekte in zwei Tagen umsetzen lassen, für die man früher zwei Wochen gebraucht hätte.
Ruby ist für mich wie ein kleines Schweizer Taschenmesser.
Dabei gilt: „I came for the Rails, but i stayed for the Ruby.“ Rails hat zum Beispiel dafür gesorgt, dass Ruby bei Startups total durch die Decke ging. In Japan, wo Ruby übrigens in den 90ern schon erfunden wurde, wird Ruby schon viel länger genutzt und ist sogar populärer als PHP.
Was unterscheidet einen Ruby- von einem PHP-Entwickler?
Ich würde das eigentlich gar nicht so hart trennen. Es gab ja mal eine Zeit, da war Ruby die neue hippe Sprache. Mittlerweile gibt es Rails schon in der Version 5 und Elixier Phoenix ist der heiße Scheiß unter den Alpha Geeks. Ich würde die Unterschiede daran festmachen, dass PHP Entwickler mit einer höheren Wahrscheinlichkeit eher weniger mit Startups, dafür aber mit WordPress und Typo3 zu tun haben und als Ruby-Entwickler ist die Wahrscheinlichkeit hoch, dass du auch Ahnung von Entrepreneurship und digitaler Produktentwicklung hast.
Außerdem muss man auch bei Ruby differenzieren, ob es ein Ruby- oder ein Ruby on Rails-Entwickler ist. Ruby-Entwickler sind eher Backend-Entwickler und Rails-Entwickler eher Frontend, wobei generell beide zu einem Fullstack-Programmierer tendieren, weil weil man meistens UI und Backend Probleme löst..
Für welche Projekte eignet sich Ruby besonders?
Die meisten Anfragen, die wir bei 9elements hereinbekommen, sind Anfragen von Startups. Als Startup hast du mehrere Möglichkeiten. Entweder weißt du bereits sehr genau was dein Business ist und auch, dass es funktioniert. Dann würde ich nicht unbedingt zu Ruby raten. In 90 Prozent aller Fälle gibt es aber gerade mal eine Produktidee und man weiß auch noch nicht wie man monetarisiert, oder ob das, was man sich vorgestellt hat, überhaupt funktioniert.
Mit Rails lässt sich in so einem Fall super agil entwickeln und neue Business-Anforderungen, die bei Startups häufig auftreten, schnell umsetzen. Ein Projekt, bei dem wir das zum Beispiel so gemacht haben, ist MeinPraktikum.de. Die Entwicklung der Plattform war ein intensiver Prozess, bei dem die Vorteile gut zum Zuge kamen.
Wie muss man sich den Ruby-Entwickler bei 9elements vorstellen?
Wir sind ja viel auf Konferenzen unterwegs, wie zum Beispiel dem Railscamp in Köln. Da fällt auf, dass unter den Ruby-Entwicklern eigentlich ein ähnliches Mindset herrscht. Der Unterschied besteht eher in den Kunden. Die Einen haben Kunden im Banking-Bereich, da geht es etwas steifer zu, wir arbeiten viel mit Startups, bei uns herrscht dann eher die „Stay foolish, stay hungry.“-Attitüde.
Was Ruby ausmacht und das generelle Mindset prägt ist ein Satz von Mats (Yukihiro Matsumoto), dem Entwickler von Ruby: Ich möchte eine Programmiersprache entwickeln, die ich lese und es ist fast wie in Englisch. „With the element of the least suprise.“ Wie es so schön heißt. Der Code soll das tun, was ich von ihm erwarte.
Schlips oder Hoody?
Ich habe einmal einen Schlips getragen, als wir von Angela Merkel und weiteren 100 Entrepreneuren, die irgendwas mit Digitalisierung machen, eingeladen wurden. Alle sagten mir, dass ich da unbedingt einen Schlips tragen muss. Und dann war ich der Einzige. Ich habe mich sehr unwohl gefühlt.
Product Jobs
Wie sieht dein typischer Arbeitstag aus?
Zu den Anfängen von 9elements, als wir nur etwa drei, vier Leute waren, habe ich für einen ziemlich langen Zeitraum etwa 16 Stunden am Tag gekloppt. Ich gehe mittlerweile auf die 40 zu. Und als andere in ihren besten Jahren abends ins Fitness-Studio gegangen sind, habe ich eine Extraschicht gefahren. Das rächt sich heute.
Heute teile ich meinen Tag in zwei Hälften: In die Manager-Hälfte und die Maker-Hälfte. Tagsüber in der Agentur bin ich der Manager. Das sind viele halbe Stunden, in denen ich mit meinen Team-Kollegen spreche. Da geht es dann um Requirements, über Probleme, manchmal auch ein wenig Code-Review, aber das nie zu tief.
Dann kommt ein Cut, in dem ich Kaffee trinken gehe oder Sport mache.
Heute versuche ich schlauer zu arbeiten.
Nachts kommt dann die Maker-Phase. Wenn meine Freundin dann so um 22 Uhr ins Bett geht, mache ich überall das Licht aus und setze mich zwei, drei Stunden auf mein Sofa. Dann habe ich die Muße und auch die Ruhe und arbeite an Sachen, die wichtig sind und wofür ich in Fahrt kommen muss.
Das Prinzip habe ich mir aus dem Essay „Maker’s Schedule, Manager’s Schedule“ von Paul Greyham rausgeholt. Ich glaube mittlerweile an zwei Mal vier Stunden am Tag, für eine kurze Weile auch an zwei Mal fünf Stunden am Tag. Denn mal ganz ehrlich, es kann mir keiner weismachen, dass er für 16 Stunden am Stück produktiv sein kann.
In der Agentur schalte ich auch ab und zu mal in den Maker-Modus. Das erkennt man dann daran, dass an meinen Kopfhörern das Licht leuchtet. Das bedeutet, dass das aktive Noice-Canceling aktiviert ist, dann lassen mich alle in Ruhe.
Wieviel Prozent ist da Manager, wieviel Programmierer?
Ich versuche ein Coding-Share von 50 Prozent zu haben. Wenn ich drunter komme, dann werde ich sauer, denn dafür bin ich nicht selbstständig geworden.
Aber es gibt Aufgaben, die müssen erledigt werden. Wie hast du das organisiert?
Eray Basar und ich sind die beiden Hauptgesellschafter, aber mit Daniel und Marvin haben wir eine zweite Reihe aufgebaut, die sich auf Augenhöhe befindet und die uns auch sagen, wenn etwas falsch läuft. Die übernehmen einen Teil der Managementaufgaben.
Wie sieht bei euch der Produktentwicklungsprozess aus?
Das Erste, was wir mit dem Kunden machen, ist ein mehrtägiger Workshop, in dem wir zunächst die Customer Journey nachvollziehen. Dabei starten wir nicht in der App wenn der erste Knopf gedrückt wird, sondern schon da, wo der Kunde das erste Mal vom Produkt hört.
Wir sind nicht nur Programmierer, sondern auch Produktentwickler.
Wichtig bei 9elements ist, dass diejenigen, die sich die Features ausdenken, sich auch die Hände schmutzig machen. Denn dann beurteilt man die Aufwände ganz anders. Der ist dann später auch der Scrum-Master.
Kannst du das mal an einem Beispiel verdeutlichen?
Gerne. Wir haben zum Beispiel Employour mitgegründet. Das sind die Macher von meinpraktikum.de. Als ich Stefan und Daniel kennen gelernt habe, das war nach einem Vortrag an der Uni Witten, erzählten sie mir von ihrer Idee. Im Workshop haben wir uns dann alles genau angesehen und schnell bemerkt, dass sie alles auf einmal machen wollten. Schließlich kam heraus, dass es Sinn macht, erst mal eine Sache richtig gut zu machen, bevor man zum nächsten Feature geht. Heute gibt es neben meineuni.de noch ausbildung.de, meinpraktikum.de und vieles mehr.
Es gibt Kunden, die rufen hier an und wollen, dass wir einfach nur das umsetzen, was sie in eine 250 Folien schwere Präsentation und ein 50-seitiges Pflichtenheft gegossen haben. Aber die Lebenszeit, die ich damit verschwende, gibt mir keiner mehr zurück. Da hilft es auch nicht, dass ich meine Tränen mit Geldscheinen abwischen kann.
Wie geht es dann weiter?
Am zweiten Tag nehmen wir meist noch einen Designer dazu, der die Customer Journeys direkt gestalterisch umsetzt und schon mal einen ersten Eindruck vermittelt. Die Aufgabe des Ruby-Entwickler ist es dann ein Datenmodell zu entwickeln. Hier nehmen wir dann recht bald schon eine Aufwandsschätzung vor, wobei das unverbindlich ist. Denn erfahrungsgemäß wird man zu dem Zeitpunkt den Pfad verlassen, wenn man jemandem auf der Straße den Prototypen der App in die Hand drückt. Und dann sind wir im Grunde schon mitten im Produktentwicklungsprozess.
Welche Tools verwendet ihr?
Wir sagen: „What ever works for you is fine for me.“ Wichtig ist, dass die Tools sauber sein müssen und schnell, das heißt bei 9elements kann jeder das Tool verwenden, das für ihn am Besten funktioniert. Manche nutzen bei uns VIM, ich nutze zum Beispiel Atom, das ist der freie Editor von Github.
Watch your Tools.
Außerdem nutzen wir noch Jira, um unseren Scrum-Prozess zu managen, Basecamp für die high-level Kommunikation mit dem Kunden und Slack für die Teamkommunikation.
Was sind wichtige Themen und Trends, die ein Ruby-Entwickler auf dem Schirm haben sollte?
Für Ruby-Entwickler flammen die Framework-Wars immer wieder auf. Als Rails herauskam, gab es noch nicht viel Anderes. Aber um eine große Applikation zu entwickeln, ist Rails ein bisschen zu wenig. Es gibt zum Beispiel Entwickler, die denken, es geht nur um Model, View, Controller. Das finde ich eigentlich ein bisschen schade, denn es ist sehr spannend mal über den Tellerrand zu gucken. Da kann ich zum Beispiel die Talks von Onkel Bob (Robert C. Well Martin) sehr empfehlen, besonders wenn es um Clean Code geht. Stichwort: SOLID.
Das Framework, das gerade für größere Sachen geeignet ist: Trailblazer. Die Tagline ist: Rails done right. Trailblazer hat noch mehr Architektur dahinter und noch mehr Struktur.
Außerdem finde ich Microservices ein super spannendes Thema. Bei Employour haben wir mit Hilfe von Microservices den Login-Bereich komplett ausgegliedert. Es geht darum bestimmte Datenhaltungsschichten aus diesen großen monolithischen Portalen herauszutrennen. Das funktioniert so, dass ich mich heute bei Karista zum Beispiel mit dem Facebook-Login registriere und ich mich dann aber auch auf Ausbildung.de damit einloggen kann.
Das sind spannende Themen, die ich jedem Ruby-Entwickler ans Herz legen kann.
Was inspiriert dich?
Ich finde es faszinierend, dass mittlerweile so gut wie alles Wissen dieser Welt verfügbar ist. Ein Gebiet, das mich gerade beschäftigt, und das ich schon an der Uni hatte, was sich aber weiterentwickelt hat, ist machine learning. Zurzeit schaue ich mir dazu viel auf YouTube an. Und das kann ich einfach so tun, ohne mich irgendwo einschreiben zu müssen.
Eine andere Sache sind die Awesome-Lists auf GitHub. Das sind kuratierte Listen zu jedem Thema, mit Büchern, Videos oder Repositories, die von der Community gecrowdsourced werden. Die Listen sind qualitativ sehr hochwertig und das finde ich eine schöne Entwicklung.
Was empfiehlst du Leuten, die sich überlegen in Ruby einzusteigen?
Was ich immer empfehle: Schließt euch mit Gleichgesinnten zusammen und lernt es einfach. Dazu gibt es in fast jeder Stadt Hackerspaces wie Das Labor hier in Bochum oder das C4 in Köln. Es gibt viele offene Quellen wie zum Beispiel die Codecademy oder Rails für Zombies. Was ich immer sehr geil finde sind die Veranstaltungen der Railsgirls, die absolut nicht nur für Mädchen sind. Nicht nur die Events sind empfehlenswert, sondern auch die Materialien auf Railsgirls.com, weil sie didaktisch extrem gut gemacht sind.
Wer Programmieren zu seinem Beruf machen möchte, dem kann ich eine formelle Ausbildung zum Beispiel an der Uni nur empfehlen. Ich kenne viele gute Programmierer, die das auch autodidaktisch geschafft haben. Aber um Disziplin zu lernen hilft es schon mal vier Semester Mathe und danach die Blockprüfung zu absolvieren.
Außerdem kann man dann auch mal die Akademikerkarte ziehen, wenn es drauf ankommt.
Vielen Dank für das Interview.
Webseite: 9elements GmbH