Snowboards, GraphQL und Coachings: Im Gespräch mit unserem Kunden Blue Tomato
Erzähl uns über Blue Tomato . Was sollten Leute über euch wissen, die noch nie was von euch gehört haben?
Blue Tomato ist ein Snowboard-, Free Ski-, Skate- und Surf-Händler aus Schladming in der Steiermark. Blue Tomato ist aus einer Snowboardschule entstanden und dann primär zu einem Händler geworden. Wir sind bis ca. 2012 eigentlich auch stärker im digitalen und Online-Bereich gewachsen, seit 2012 haben wir mit Zumiez als Mutterfirma einen starken Partner an unserer Seite. Seither wachsen wir sowohl stationär als auch online stark. Wir haben in Europa mittlerweile über 50 Shops und zusätzlich eben noch einen starken internationalen Onlineshop. Wir sind als Unternehmen aber nicht nur am Verkauf der Produkte interessiert, sondern auch am Support der Community, veranstalten Events, sponsern talentierte Sportler*innen und wollen unser Wissen und unsere Erfahrungen teilen.
Wo ist die Schnittstelle mit der SaaS-Entwicklung?
Für unseren Online-Auftritt haben wir schon recht früh auf Hybris gesetzt. In den letzten Jahren hat sich gezeigt, dass ein solider Webshop nur die Basis ist. Du musst auch an anderen Bereichen arbeiten. Und auch der Prozess wird immer komplexer.
Zum einen sind wir in den letzten Jahren stark gewachsen und haben viele neue Shops eröffnet. Wir müssen jetzt Prozesse unterstützen, die darauf basieren, dass wir nicht mehr nur ein Lager haben, sondern eben viele Standorte in verschiedenen Ländern und dadurch viele verschiedene Wege. Zum anderen wollen wir online ein Erlebnis anbieten, dass über einen 0815-Online-Shop hinausgeht. Das kann nur funktionieren, wenn man intern entwickelt und wenn man Tools, Systeme und Landschaften einsetzt, die diese schnelle Entwicklung unterstützen.
“Wir wollten nicht zusätzlich zu unserem Onlineshop ein vollständiges CMS-Environment mit Servern und allem Drum-und-Dran machen. Wir gehen einen eigenen Weg.”
In die Richtung sind wir ab 2015, 2016 gegangen. Wir haben ein Team aufgebaut und Systeme und Schnittstellen entwickelt. Aber wir mussten herausfinden, ob das, was wir bauen, auch den Industriestandard erfüllt. Hier sind wir dann auf euch zugekommen.
Wie seid ihr technisch aufgestellt?
Frontendseitig haben wir intern schon früh auf React gesetzt. Mittlerweile bauen wir den ganzen Shop auf React um. Wir haben ein solides Enterprise-System, das unsere Online-Orders bearbeitet (Hybris im Commerce-Bereich). Beim internen System verwenden wir das Open Source CMS Processwire. Wir entwickeln dort auch aktiv mit und haben aus der Not eine Tugend gemacht.
Wir wollten nicht zusätzlich zu unserem Onlineshop ein vollständiges CMS-Environment mit Servern und allem Drum-und-Dran machen. Wir gehen einen eigenen Weg. Anfangs haben wir Seiten statisch vorgerendert und dann durchgeschliffen. Jetzt setzen wir auf GraphQL und verwenden es mehr oder weniger als unser Frontend-Interface.
Andreas Augustin - Head of Digital Customer Experience bei Blue Tomato
Und dann haben wir unsere gesamten Inhalte – aus dem CMS, der Produktsuchmaschine, dem Webshop – hinter GraphQL vereint und dazu auch Elasticsearch miteingebaut. Dort ist jetzt alles schnell abrufbar. Als Content-Suchmaschine, aber eben auch bei einfachem Content. Will ich also irgendetwas anzeigen, gehe ich nicht mehr auf das CMS, sondern hol alles aus vorgerenderten und vorentwickelten Dokumenten im Elasticsearch. Diese Lösung bringen wir jetzt in den gesamten Webshop.
Wie arbeitet ihr denn intern? Erzähl uns ein bisschen über die Prozesse. Natürlich nicht inklusive allen Kaffeepausen.
Die Kaffeepausen sind sehr flexibel (lacht) und der Rest eigentlich auch. Wir arbeiten mit Entwicklungspartnern teilweise in einem Scrum-Prozess zusammen, setzen aber intern, weil wir keine reinen Entwicklungsteams haben, auf eine flexible Kanban-Lösung. Damit haben wir die Möglichkeit, vieles schlank zu halten und können sagen: “Hier wollen wir den Prozess intensiver definieren. Dort wollen wir eher flexibel sein und schauen, wie das funktioniert.”
Wie hat unsere Zusammenarbeit genau ausgesehen?
Die Zusammenarbeit mit Carrot & Company entstand aus der Not heraus. Ein Senior-Entwickler von uns ist gegangen und wir mussten sicherstellen, dass die neuen Entwickler:innen, nicht in der Luft hängen. Deshalb wollten wir Christian Haintz – also euren CTO – als Interims-Team Lead und haben dann diese Chance genutzt, um alle unsere intern entwickelten Landschaften und Prozesse gemeinsam zu reviewen. Die Zusammenarbeit war da eine sehr gute Vorbereitung, damit wir das jetzt alles selbst handeln können.
Wir haben ja gemeinsam mit euch eine technische Evaluation bzw. ein Konzept gemacht. Was war das genau?
Einerseits die Überlegung, wie wir das Frontend und das Backend fürs Frontend aufbauen. Aber eigentlich ist es stärker um die Frage gegangen: Sind wir mit unserem System – GraphQL, die React-Entwicklung, und die eher traditionellen JSP – auf dem richtigen Weg? Können wir das Ganze im laufenden Betrieb migrieren und alles auf die eine Technologie bringen? Halten dem die ganzen Prozesse und vor allem das System stand?
Wir haben zuerst mit unserem Blog Blueworld gestartet, weil wir hier mit Technologie und Infrastruktur experimentieren konnten. Wir wollten herausfinden, ob das der richtige Weg ist, um das dann auch mit dem Commerce Bereich zu verschmelzen.
Und wir haben damals auch noch etwas mit zusätzlichen Testinstanzen geregelt. Auftrennung in staging und so weiter war auch noch ein Thema. Wir haben sichergestellt, dass die Bereiche, die wir bauen, dem standhalten, was wir für sie vorgesehen haben.
Du hast es schon erwähnt: Christian hat die Rolle als interims Team Lead übernommen. Wie war das für euch, mit jemandem von extern in dieser Rolle zusammenzuarbeiten?
Positiv, muss ich sagen. Zuerst hatte ich schon ein paar Zweifel, aber wir haben gut abgesteckt, was seine Aufgaben waren und was er als Externer nicht so leicht übernehmen konnte. Wir haben vor allem auf die Weiterbildung und die Skill-Entwicklung der Mitarbeiter:innen gesetzt. Und parallel dazu lag der Fokus am technischen Supervising. Er war dann einen Tag hier und hat mit den Leuten interagiert und die Probleme und Herausforderungen besprochen. Ich hab erst vor kurzen mit allen in dem Bereich gesprochen und das war für sie alle sehr, sehr positiv.
“Am meisten geholfen war sicher beim Support unserer Mitarbeiter:innen. Die Möglichkeit, Ideen mit Christian weiterzuentwickeln, zu optimieren und das Mentoring zu nutzen.”
Rückblickend: Hätten wir irgendetwas besser lösen können?
Nein. Für uns war es wichtig, dass wir unsere Prozesse und die Technologie challengen und dass wir die Leute weiterbilden und das hat gut funktioniert. Alle, die da dabei waren haben sich – und da hat Christian sicher auch dazu beigetragen – sehr gut entwickelt. Das ist ein stabiles Team und sie sind in der Lage, selbstständig alle Herausforderungen zu meistern.
Wo glaubt ihr, konnten wir euch am meisten helfen? Bei was für einem Problem würdet ihr auf uns zukommen?
Am meisten geholfen war sicher beim Support unserer Mitarbeiter:innen. Die Möglichkeit, Ideen mit Christian weiterzuentwickeln, zu optimieren und das Mentoring zu nutzen, das von ihm gekommen ist. Hier könnten wir wahrscheinlich den nächsten Schritt der Reifung gemeinsam machen.
Wir sind jetzt mehrere Teams. Wir haben doch noch strukturiertere Prozesse, die wir machen müssen. Es gibt also neue Herausforderungen. Zum Beispiel den ganzen Softwareentwicklungsprozess zu validieren, oder vielleicht auch mitzuentwickeln. Also auch abgesehen von der reinen Softwareentwicklung, die ihr ja auch anbietet, oder euren SaaS-Lösungen, sehe ich das für uns, als wesentlichen Faktor.
Würdet ihr in Zukunft wieder mit uns zusammenarbeiten?
Ja, absolut. Wie gesagt, die Zusammenarbeit war sehr positiv, die hat auch so weit geführt, dass das Team auch ohne Support alles super gemacht hat. Wir haben daraus jetzt auch einen Teamleiter entwickelt. Das schaut alles super aus. Und wenn entweder entwicklungstechnisch oder in Sachen Softwaremanagement etwas dabei ist, sehe ich keinen Grund, warum wir da nicht zusammenarbeiten können sollten.
Auch Interesse, mit uns zusammenzuarbeiten?