‚ąí in Kooperation mit Idealo¬†‚ąí

Martin Junker nimmt uns mit in seine zehnjährige Geschichte bei Idealo. Er zeigt uns wie er als Praktikant die Anfänge von Idealo am Prenzelberg erlebt hat, wie Idealo seine Entwicklungs-Methoden auf Agile umgestellt hat und wie sie mit 700 Mitarbeitern in die Ritterstraße umgezogen sind. Als Development Teamlead B2B zeigt er uns den Entwicklungsprozess bei Idealo und wie man Konflikte zwischen Scrum und Scrumban-Teams löst.

Vita

Martin Junker beginnt w√§hrend seines Studiums der Informatik im April 2007 bei Idealo ein Praktikum. Nach Abschluss des Studiums bekommt er eine Festanstellung an die er die Bedingung kn√ľpft Java lernen zu d√ľrfen. Er darf und nimmt daraufhin an. Heute ist Martin Developer Teamlead und seit 10 Jahren bei Idealo.

Tools
  • Jira, HipChat, Confluence
  • IntelliJ IDEA, Postman, Studio3T
  • Java, Spring, MongoDB
Empfehlungen
  • Event: JavaLand
Social

Digitale Leute - Martin Junker - Idealo - Auf ideser riesigen Sitzbank haben mehrere Mitarbeiter von Idealo platz.

Hallo Martin, was ist deine Rolle bei Idealo?

Ich bin Entwickler im Bereich Product & Technology und habe dort seit Anfang April den Team-Lead in einem unserer B2B-Teams. Das hei√üt neben der eigentlichen Entwickler-Aufgabe habe ich die disziplinarische F√ľhrungsrolle f√ľr vier Mitarbeiter. Die Idee war es einen Teamleiter einzuf√ľhren, der zudem¬†Teil des Teams ist und selbst programmiert.

Wie viel Zeit bleibt dir zum Programmieren?

Weil ich den Lead noch nicht so lange habe, konzentriere ich mich gerade eher auf die F√ľhrungsthemen. Ich versuche das aufzuteilen, sodass ich mich w√§hrend der einen H√§lfte des Tages um die Lead-Aufgaben k√ľmmere und in der zweiten mich in Ruhe hinsetze, die Kopfh√∂rer aufziehe und code. Oder ich mache mit den Team-Kollegen ein Tech-Review. Ich programmiere also wirklich noch selber.

Wie sind die Teams bei Idealo organisiert?

Wir haben eine auf den ersten Blick komplizierte Struktur. Es gibt f√ľr verschiedene Bereiche verschiedene Product Areas, in denen die Teams verortet sind. F√ľr jede Product Area gibt es einen Head of Technology und einen Head of Product. Sie Verantworten sich vor dem CTO, haben den groben Scope und k√ľmmern sich um alle Anwendungen, die customer-facing sind. Sie definieren OKRs und geben das an die Product Owner weiter, die sich dann mit dem Businessmanager zusammensetzen, um die Priorit√§ten festzulegen. Aus den daraus entstehenden Epics erstellen die Teams dann die Tickets f√ľr Jira.

Digitale Leute - Martin Junker - Idealo - Meetings sind auch bei Idealo kleine Zeitfresser, weswegen Martin sie nur mag, wenn sie kurz sind.

Digitale Leute - Martin Junker - Idealo - Martins Arbeit besticht wie oft in der digitalen Produktentwicklung durch Teamarbeit.

Unser Team ist nach Scrum organisiert, die anderen Teams arbeiten mit Scrumban, was nicht immer ganz einfach zu managen ist. In den letzten Jahren sind die Anforderungen an den Angebotsimport stark gestiegen. Es werden einfach viel mehr Angebote mit mehr Informationen importiert, um dem Konsumenten eine transparente und möglichst umfassenden Übersicht zu geben.

Eines unserer Ziele ist es schon seit Jahren, dass die Angebote weiterhin reibungslos importiert werden k√∂nnen. Das ging anfangs¬†recht einfach, kostet uns in der Zwischenzeit jedoch relativ viel Arbeit, weil die Angebotszahl wahnsinnig in die H√∂he schie√üt. Wir haben mittlerweile eine Milliarde Angebots√§nderungen am Tag auf idealo.de, und man hat das Gef√ľhl, jedes Jahr¬†kommen zehn Prozent dazu.

Wie lange bist du schon bei Idealo?

Am 1. April waren es zehn Jahre. Angefangen habe ich mit einem Praktikum. Eigentlich wollte ich gar nicht nach Berlin, und mit E-Commerce hatte ich bis dahin gar nichts am Hut, sondern eher mit digitaler Signalverarbeitung. Aber ich muss sagen, ich wurde positiv √ľberrascht und bin h√§ngengeblieben.

Digitale Leute - Martin Junker - Idealo - Auf dem ehemaligen Industrieareal arbeiten nun 700 Mitarbeiter von Idealo.

Digitale Leute - Martin Junker - Idealo - Im Innenhof lässt es sich im Sommer auch auf der kleinen Holzinsel arbeiten.

Wir leben in einer Zeit, in der Mitarbeiter im Schnitt nach drei Jahren den Job wechseln. Was hat dich bei Idealo gehalten?

Klar denkt man sich, dass man hier ein paar Jahre f√ľr den Preisvergleich gearbeitet hat, und man vielleicht mal etwas Neues machen k√∂nnte. Aber Idealo hat mich immer wieder mit neuen Facetten und Aufgaben √ľberrascht, manchmal mit wissenschaftlichem Tiefgang. So konnte ich zum Beispiel das Verhalten des Lanczos-Filters bei der Skalierung der Produktfotos untersuchen. Die Arbeitsbedingungen haben sich immer weiter verbessert, so das ich jetzt nicht so richtig glaube, dass es da drau√üen noch etwas Cooleres gibt.

Wie hat sich Idealo ver√§ndert, und was f√ľr Aufgaben hast du in all den Jahren gehabt?

Am Anfang sa√üen wir noch sch√∂n im Prenzelberg im Hinterhof, mitten im Wohngebiet. Ich war f√ľr ein kleines Tool zust√§ndig, das automatisch Bilder der Angebote heruntergeladen hat. Jedes Produktbild musste bei Idealo gewissen Anforderungen entsprechen, beispielsweise ohne Hintergrund sein. Und da sa√üen dann Leute, die die Bilder mit Photoshop bearbeitet haben. Meine Aufgabe war es diese Bilder automatisiert zu bearbeiten, mit Algorithmen zu verkleinern oder zu vergr√∂√üern und mit optimaler Qualit√§t zur Verf√ľgung zu stellen. Das habe ich ein Jahr lang als studentischen Job gemacht.

Was hast du studiert?

Informatik mit dem Spezialgebiet Medieninformatik an der Hochschule Anhalt in Köthen.

Wie ging es dann weiter?

2009 wurde ich fest angestellt. Meine Voraussetzung war, dass ich Java programmieren möchte. Ich hatte Java mal an der Uni, aber keine praktische Erfahrung. Der Wechsel zu Java hat super geklappt und so bin ich bei Idealo zur Angebotsverarbeitung gekommen. Da ballerte man uns quasi mit Angeboten zu.

Dann, das muss so 2010 oder 2011 gewesen sein, haben sich die Rahmenbedingungen etwas ge√§ndert. Wir haben angefangen ordentliche Methoden einzuf√ľhren. Wir haben alle Entwickler in einen Bus gepackt, den Agile-Bus, und haben Scrum in der gesamten Produktentwicklung eingef√ľhrt. Ich glaube wir waren damals am Puls der Zeit.

Vor zwei Jahren sind wir hier in die Ritterstra√üe gezogen, in ein altes Industriegeb√§ude mit drei H√∂fen, f√ľnf Etagen und insgesamt zehntausend Quadratmetern Fl√§che. Mittlerweile sind wir √ľber 700 Mitarbeiter, 200 davon in der Technik. Wir versuchen technisch immer mit der Zeit zu gehen. Aber nat√ľrlich sind nicht alle Entwickler gleicher Meinung, welche Technologien eingesetzt werden sollen, was die Einf√ľhrung verz√∂gert. Ich finde aber, Idealo geht hier einen ganz guten Weg, auch wenn es gef√ľhlt immer irgendwie schneller gehen k√∂nnte.

Digitale Leute - Martin Junker - Idealo - Bei Idealo gibt es verschiedene Möglichkeiten eine Besprechung zu halten.

Digitale Leute - Martin Junker - Idealo - Ein schallgesch√ľtzter Kubus, in dem es sich Arbeiten l√§sst.

Digitale Leute - Martin Junker - Idealo - Bei Kollegen ist der Außenbereich von Idealo sehr beliebt.

Was hat sich technologisch bei Idealo getan? Seid ihr noch immer bei Java?

Ja, wir sind Java treu geblieben. 2011 ist dann Spring hinzugekommen, ein Framework, das uns massiv geholfen hat die alten Software-Monolithen einzurei√üen, weil es Dependency Injection unterst√ľtzt. Der neuste Schrei ist jetzt Spring Boot, mit dem sich Webapplikationen relativ einfach hochfahren lassen. Es gibt eine Weboberfl√§che, in die ich eingebe, was ich haben will, klicke auf Start, und schon geht es los.

Au√üerdem geht es jetzt auch in Richtung Microservices. Angenommen, ein Kunde m√∂chte eine Rabattaktion auf Sommerreifen machen. Aber der Kunde √ľbermittelt uns den Rabatt nicht gleich im Import-CSV mit. Dann m√ľssen wir auf alle Sommerreifen-Angebote den Rabatt drauf rechnen, und wenn die Aktion vorbei ist, alles wieder zur√ľckrechnen. Manchmal wird das im Frontend gemacht, manchmal im Backend. Mit einem Microservice f√ľr Rabattaktionen haben wir jetzt eine einheitliche Stelle, an der wir das managen k√∂nnen. Damit fahren wir ganz gut und bekommen unsere riesige Anwendung noch mal ein bisschen kleiner.

An welchem Projekt arbeitest du aktuell?

Aktuell arbeite ich an einem Migrationsprojekt. Dabei geht es um eine Benutzeroberfl√§che, mit der das technische Account-Management die CSV der Kunden konfigurieren kann. Das Account-Management ist in direktem Kontakt mit dem H√§ndler und bekommt die Preise der Produkte als CSV-Datei geschickt. Meine Aufgabe ist es dem Account Management einen Knopf zu geben, den es dr√ľcken muss, und die Preise sind online sofort aktualisiert. Aktuell gibt¬†es daf√ľr noch keine Oberfl√§che. Via JSON sagen wir dem Shop-Importer, dass er per Ftp auf dem Server schauen soll, ob da die CSV liegt, und dann schiebt er die Daten in die Datenbank. Wenn wir fertig mit dem Projekt sind, haben wir das mit der Spring-Boot-Anwendung auf eine moderne Architektur gehievt.

Digitale Leute - Martin Junker - Idealo - Bei Idealo gibt es viele Möglichkeiten sich eben mal zusammen zu setzen oder etwas zu relaxen.

Wie beginnt ein Projekt, und wie gehst du vor?

In der Quartalsplanung entscheiden Gesch√§ftsf√ľhrung, Head-Ofs und Business Owner √ľber die Vorhaben. Bei der Vorstellung der Planung bekomme ich das erste Mal grob von neuen Projekten mit. Danach entscheidet der Product-Owner dann, wann es Zeit f√ľr eine konkrete Umstellung oder ein neues Feature ist. Bei Projekten wie der Abl√∂sung des Importers sind die Aufgaben schon lange bekannt und wurden auch schon mehrmals angegangen. Beim letzten Quartals-Update wurde bekannt gegeben, dass wieder Zeit daf√ľr einger√§umt wurde. Ich schnappe mir dann ein Jira-Ticket, und los geht es.

Im Falle des Importers war das allerdings nicht so einfach, weil an dem Problem schon mehrere Teams gearbeitet haben. Dazu musst du wissen, dass bei Idealo jedes Team selbst entscheiden kann, wie der agile Prozess aussieht. Die Teams, die es schon lange gibt, machen alles in einer Art Scrumban. Das hei√üt, sie machen kein Commitment mehr und sch√§tzen auch nicht mehr, wie lange sie f√ľr ein Ticket brauchen werden. In meinem aktuellen Team machen wir zwei-Wochen-Sprints. Um mein Ticket umzusetzen, brauche ich die Hilfe der anderen Teams, die an dem Ticket bereits beteiligt sind. Diese Abh√§ngigkeiten sind dann schon problematisch.

Wie löst ihr diese Abhängigkeit zwischen den Scrum- und Scrumban-Teams?

Das geht, weil die Teams relativ nah beieinander sitzen, im gleichen Raum sogar. Das kann man dann kommunikativ lösen. Wir haben andere Abhängigkeiten, da ist es wesentlich schwieriger, weil zum Beispiel die Stakeholder in einem anderen Gebäudeteil sitzen. In so einem Fall dauert es manchmal sechs Monate, bis die Abhängigkeit gelöst ist.

Wie sieht der Feedback-Prozess bei deinen Projekten aus?

Einmal im Monat haben wir eine Art Review, die etwas √∂ffentlicher und nicht zu technisch ist. Da kommen die Stakeholder, die sp√§ter den Knopf dr√ľcken, gucken sich das an und haben auch schon den einen oder anderen Wunsch. Auch √ľber Jira-Kommentare bekommen wir dann oft noch weitere Anforderungen. Zum Beispiel gab es den Wunsch das Import-Ende anzuzeigen, oder wie lange der Import noch geht. Meistens bekommen wir aber schon im Vorgespr√§ch solche Feinheiten mit.

Digitale Leute - Martin Junker - Idealo - Statt parkplätze eine Sitzlandschaft im Innenbereich der Anlage, in der idealo seit zwei Jahren residiert.

Wie sieht ein typischer Tagesablauf bei dir aus?

Um 7.30 Uhr werde ich von meinen beiden Kindern geweckt, die ich vor 9 Uhr in der Kita abgebe. Dann fahre ich eine halbe Stunde mit dem Fahrrad quer durch Berlin, sch√∂n am Alexanderplatz vorbei, hier in die Tiefgarage und gehe hoch zur Kaffeemaschine. Nur in der Caf√©teria gibt es Kaffeemaschinen, die Milchkaffee oder Latte Macchiato machen. Das ist schon mal ein guter Spot, um mit den Kollegen erste Updates auszutauschen. Manche Teams machen Fr√ľhst√ľck. Da¬†gehe ich gerne auch mal vorbei und stibitze mir etwas.

Um zehn fangen dann die Stand-ups an, und danach gibt es ein √ľbergeordnetes Treffen. Wir nennen es das Scrum of Scrums. Dort stellt jeder vor, was in seinem Team gerade aktuell ist. Bis Mittag ist dann relativ viel Gesch√§ft mit Meetings und Abstimmungen. Wir haben eine Caf√©teria, die die Policy hat, dass es dort nur vegetarisches Essen gibt. Dort¬†gibt es immer sehr leckeres und verr√ľcktes Zeug. Da¬†gehe ich ganz gerne hin.

Nach dem Mittagsdurchh√§nger geht es dann normal weiter, und es wird immer ruhiger, weil die ersten schon fr√ľh gehen, um ihre Kinder abzuholen. Ich arbeite meist bis 18 Uhr.

Welche Tools nutzt ihr in eurem Team?

Wir nutzen relativ viel vom Atlassian-Stack. Das heißt neben Jira haben wir auch HipChat und die Wiki-Software Confluence. Bitbucket nutzen wir als Git-Aufsatz, was man relativ gut miteinander kombinieren kann.

Zu meinen pers√∂nlichen Tools geh√∂rt zum Beispiel IntelliJ IDEA, womit ich recht viel entwickle. Postman nutze ich f√ľr REST-Calls. Studio 3T¬†(ehemals MongoChef) brauche ich auch. Das ist ein kleines Berliner StartUp, hier gleich um die Ecke. Mit¬†dessen Software k√∂nnen wir die MongoDB gut abfragen. MongoDB ist eine gut skalierende Datenbanktechnologie, denn unsere Datenbank ist ziemlich gro√ü. Ich glaube sogar, wir haben Europas gr√∂√üte MongoDB.

Wie groß ist die denn?

F√ľr Deutschland enth√§lt sie √ľber 500 Millionen Dokumente. Daf√ľr brauchen wir mittlerweile um die 30 Maschinen. International gesehen verdoppeln sich diese Zahlen dann noch einmal.

840px-idealo_officedropin-7329-2017_02

Welche Tools nutzt ihr zum Testen? Wie sieht es mit Code-Review aus?

Ich bin im Backend. Das heißt, da habe ich jetzt nicht so ein mega cooles Tool. Du erwartest jetzt wahrscheinlich sowas wie Selenium oder sowas. Aber ich mache einfache Unit-Tests und manchmal ein paar Integrationstests, weil wir viel auf Microservices unterwegs sind. Es gibt eine Dev-Stage, eine Test-Stage und eine Production Stage.

Zum Thema Review haben wir eigentlich nicht wirklich eine Policy. Aber wir haben das Working-Agreement, das jemand dr√ľber gucken muss.

Klingt gefährlich. Ist dir denn da schon mal etwas passiert?

Ja, einmal habe ich richtig Mist gebaut. Es gibt eine Berechnungsvorschrift, wie man eindeutige Schl√ľssel zu Angeboten berechnet. Die habe ich einmal angepasst und pl√∂tzlich gab es alle Angebote doppelt. Das ist schon ein komisches Gef√ľhl, wenn circa 20 Leute einen Tag und eine Nacht daran arbeiten das wieder hinzubekommen.

Gibt es etwas, was dich wahnsinnig macht bei der Arbeit?

Mich macht es wahnsinnig, wenn Code¬†nicht funktioniert. Ich sehe, wie das ablaufen m√ľsste, und dann l√§uft es aus irgendeinem Grund doch nicht so ab. Das macht mich wahnsinnig.

Woran erkennt man das dann?

Wenn ich das zum f√ľnften Mal ausf√ľhre, und der Test ist immer noch rot, dann fange ich an zu fluchen. Manchmal zeige ich es Kollegen und versuche sie davon zu √ľberzeugen, dass dies eigentlich so funktionieren m√ľsste, obwohl der Fehler nat√ľrlich bei mir liegt.

Digitale Leute - Martin Junker - Idealo - Ein gro√ües B√ľro braucht eine gro√üe Couch. Martin genie√üt die neuen Office-R√§ume, in denen Idealo seit zwei Jahren residiert.

Was inspiriert dich?

Meetups und Konferenzen. Seit die Kinder da sind, gehe ich nicht mehr so viel auf Meetups. Aber ich versuche noch immer ein-/zweimal im Jahr auf Konferenzen zu gehen. Zuletzt war ich auf der JavaLand im Phantasialand in Br√ľhl. Tags√ľber Konferenz, abends Black Mamba.

Vielen Dank f√ľr das Interview.

Dieses Interview wurde am 19. April via Skype gef√ľhrt.
Fotos: Andreas Lukoschek