tiny little gizmos

eCommerce Camp Jena 2018

Am 23. und 24. März fand in Jena das mittlerweile sechste eCommerce Camp statt. Auch bei meinem dritten Besuch, verlief die Veranstaltung im gewohnten Rahmen: Am Vorabend trafen sich viele der Teilnehmer nach der Anreise zum Plausch bei Bier und deftigem Thüringischen Essen in der Gaststätte zur Nöll in der Altstadt. Die eigentliche Veranstaltung fand am Freitag und Samstag Vormittag in der Ernst-Abbe Hochschule in Form einer Unconferenz statt.

Jena - Zeiss neben der Ernst Abbe Hochschule

Jena – Zeiss neben der Ernst Abbe Hochschule

Nach einem gemeinsamen Frühstück bildete sich die Schlange mit den Teilnehmern, die einen Vortrag oder einen Workshop vorbereitet hatten. Einer nach dem anderen trat auf die Bühne und stellte dem Saal sein Thema vor.

Die Einreichungen wurden thematisch sortiert und auf die Slots verteilt. Am Ende stand ein voller und interessanter Vortragsplan.

Unconference Programm

Unconference Programm

„Da muss der alte Mann jetzt mal selbst ran“

Im Vorjahr hatte mich der Mitveranstalter gefragt, ob ich nicht auch mal ein Thema vorbereiten möchte. In diesem Jahr nahm ich die Arbeit auf mich und habe einen Vortrag vorbereitet. Er ist betitelt „No KISS – we’re doing it wrong“ und handelt von Trends in der Softwareentwicklung, die ich für problematisch oder gar falsch halte.

Die Kernthese lautet, dass sich viele Trends etablieren, die Software sehr aufblähen, langsam und angreifbar machen und entgegen der Intention auch nicht für bessere Wartbarkeit und Wiederverwendbarkeit sorgen. Als Beispiele nannte ich u.a. fette Frameworks, unbedachter Einsatz von Libraries, Annotations, ORM, Metasprachen und zu viele Basistechnologien im Setup.

Da ich noch nie bei solch einer Veranstaltung vorne stand, war ich auch etwas nervös. Werde ich einen Hänger haben? Interessiert das Thema überhaupt jemanden? Da mein Vortrag etwas gegen den Entwickler-Mainstream gebürstet war war ich auch gespannt, ob meine Thesen in der Luft zerrissen würden. Zudem hatte ich kaum Zeit, mich seelisch vorzubereiten, weil ich gleich in den ersten Slot nach der Einführungsveranstaltung dran war.

Es stellte sich heraus, das meine Bedenken unbegründet waren. Mein Vortrag war flüssig, es waren ca. 20 Zuhörer im Raum, was für diese Veranstaltung gar nicht mal so wenig ist. Zum Ende des Vortrags kam es nochzu einer kurzen Diskussion über den einen oder anderen Punkt, aber alles in allem erntete ich viel Zuspruch, wie sich auch noch in einigen Gesprächen im Tagesverlauf zeigte.

Ein Teilnehmer meinte, dass er ähnliches in letzter Zeit häufiger gehört habe und die Kritik meist von älteren Entwicklern kämen und ob das Zufall sei. Meiner Meinung nach ist das kein Zufall, sondern es hängt damit zusammen, dass wir älteren Entwickler früher an Maschinen entwickelt habe, die sehr beschränke Ressourcen hatten. Der Rechner war immer zu langsam, hatte stets zu wenig Speicher und die Übertragungsgeschwindigkeit war immer langsam. Daher sind wir es gewohnt, auf Ressourcenverbrauch zu achten. Heutzutage spürt man zunächst keine Ressourcenknappheit. Daher ist es sehr einfach, eine Anwendung aus vorgefertigten Elementen „schnell zusammenzustöpseln“. Dass man ein Problem hat, merkt man erst, wenn unerwartet viel Traffic auf den Server einprasselt, aber dann liegt das Kind bereits im Brunnen.

Gutes Programm, spannende Gespräche

Das gute daran, den ersten Slot zu bekommen ist, dass man sich danach entspannt auf die Vorträge der anderen konzentrieren kann. Für mich aktuell einer der wertvollsten Vorträge war „MySQL Profiling“, den Andreas Ziethen von Scale hielt. Sein Vortrag setzte genau dort an, wo mein Wissen aufhörte. Nach einer Einführung in das Tool zur Auswertung von Datenbank Logfiles wurden einige Auswertungen von echten, aktuellen Problemfällen zusammen mit den Hörern vorgenommen – sozusagen Gruppendebugging.

Kontrovers diskutiert wurden die Vorschläge für eine neue Shoparchitektur, die Marcus Franke und Richard Burkhardt in der Session „E-Commerce Performance neu gedacht! Proof of Concept: Schnelle Webshops ohne Caching“. Der Wunsch, das Caching aus den Shops zu entfernen ist groß und Vorschläge dazu sehr willkommen, wie sich an recht vielen Hörern im Saal zeigte. Der präsentierte Prototyp, der eine Kategorieseite aus einem Datensatz von einer halben Million Artikeln in 0.4 Sekunden zeigte, basierte auf dem Konzept eines Application Servers, wie man ihn aus der Java Welt kennt. Aus dem Publikum kamen jedoch recht gewichtige Gegenargumente: Zweifel, ob PHP für lang laufende Prozesse stabil genug ist, hoher Ressourcenverbrauch und Fragen wie die Objektdaten  im Speicher aktuell gehalten werden. Nach meiner Ansicht das stichhaltigste Argument war, dass der Showcase deshalb so schnell sei, weil alles, was einen echten Shop ausbremst (Framework, ungenutzte Features, Konfigurationsmöglichkeiten,…) nicht implementiert ist. Wenn man dasselbe mit plain PHP baut, kommt man vermutlich auf ähnlich schnelle Zeiten.
Zwar ist es nicht schön, wenn einem die eigene Arbeit so zerpflückt wird, aber die Argumente waren plausibel und der Ton kollegial. Ich finde es auf jeden Fall sehr gut, dass die beiden sich nicht nur Gedanken gemacht haben, sondern auch noch viel Zeit in einen Showcase investiert und das Ergebnis zur Debatte gestellt haben.

 

Ein Herz für Nerds

Ein Herz für Nerds

Das abendliche Unterhaltungsprogramm im Paradies Cafe habe ich in diesem Jahr nicht so ausgekostet, wie 2017. Ich war nicht so richtig in Feierlaune und mir schienen auch die anderen Konferenzteilnehmer in diesem Jahre etwas zurückhaltender. Das war aber nicht unbedingt von Nachteil, weil es der Konzentration am Samstag Vormittag zu Gute kam.

Simon Pearce von SysEleven zeigte, wie man mit Hilfe von Kubernetes und einigen einfachen Konfigurationsdateien in wenigen Minuten ein MySQL Datenbankcluster mit einem Master und drei Slave Nodes bauen kann. Bereits am Vortag hatte er demonstriert, wie ein Setup aus NGINX Webservers so aufgesetzt werden kann, dass bei Bedarf automatisch weitere Serverinstanzen gestartet und bei abnehmender Last wieder gestoppt werden können.

Kurz vor bevor ich zurück nach Berlin fahren wollte, bekam ich in einem sehr interessanten Gespräch nebenbei eine Vorführung eines begeisterten Shopbetreibers in Echtzeitprofiling seines Shops mit Tideways und eine Diskussion über den Umgang mit der Datenschutzgrundverordnung. Zu meiner Verblüffung erfuhr ich von einem mir bekannten Shop, der mittlerweile völlig auf die Speicherung von personenbezogenen Daten verzichtet. Das Shopsystem selber ist „clean“, so wie ich es von Bankenanwendungen kenne. Ich bin gespannt, ob sich so etwas rumspricht und durchsetzt.

Fazit

Dieses spontane Gespräch am Rand zeigt auf, was diese Veranstaltung in meinen Augen so wertvoll macht: Der spontane, offene und ehrliche Austausch über Probleme und Lösungen. Ich hoffe sehr, dass diese Veranstaltung auch in den nächsten Jahren fortgeführt wird.

 

 

eCommerce ist Scheisse

Ich verdiene mein Geld seit 20 Jahren im Bereich eCommerce. Hauptsächlich dadurch, dass ich Onlineshops entwickele. Und jetzt kommt der Witz:

Ich kaufe selber fast nie online ein. Ich hasse es.

Dafür gibt es Gründe:

Einerseits die unfassbare Datenschnüffelei durch das Onlinemarketing und die totale Nachverfolgbarkeit meiner Interessen und Geldflüsse. Gut – damit oute ich mich als Dinosaurier aus dem letzten Jahrhundert, der noch an das Konzept von Privatsphäre glaubt. Ich verwirrter alter Mann. Aber lassen wir den Punkt einfach mal außen vor.

Das wirklich Killerkriterium gegen Onlineshopping ist für mich, dass es zu umständlich, nervenaufreibend und zeitfressend ist.

Nanu?

Soll nicht gerade der Vorteil von Onlineshopping sein, dass es so fürchterlich spontan, praktisch und zeitsparend ist?

Was die Shops selbst betrifft, stimmt das mittlerweile auch. Es haben sich bestimmte Standards durchgesetzt und die Benutzbarkeit ist in der Regel recht gut.

Das Problem ist die Logistik. Ich kann mir nichts nach Hause bestellen, weil ich in der Regel nicht zu Hause bin, wenn der Paketdienst kommt. Das bedeutet, dass ich mir Dinge ins Büro liefern lassen muss, was in den meisten Firmen aus gutem Grund nicht gerne gesehen wird.

Oder ich muss mir die Lieferung aus den verwegensten Teilen der Stadt zusammensuchen, weil irgendwo ein obskures Geschäft so freundlich war, die Lieferung anzunehmen. Leider haben diese Geschäfte meist recht eigenwillige Öffnungszeiten. Jetzt habe ich dasselbe Problem: Dieser Laden hat vermutlich nur dann geöffnet, wenn ich im Büro sitze.

Wenn ich Mittags ausnahmsweise mal in die DHL Filliale im nächsten Shopping Center gehe, steht da schon eine 50m lange Schlange von Frauen, die ihre Zalando Retouren abgeben wollen.

Im Moment kommt für mich der Online-Einkauf nur in folgenden Fällen in Frage:

  • Digitale Einkäufe. Auswählen, bezahlen, runterladen, fertig.
  • Flugtickets direkt bei der Airline
  • Spezialprodukte, die in der eigenen Gegend nicht zu haben sind.

Ein komplettes No-Go hingegen in folgenden Fällen:

  • Kleidung, Schuhe und andere Dinge, die ich mit hoher Wahrscheinlichkeit noch mal umtauschen muss.
  • Waren des täglichen Bedarf, die ich überall auf dem Heimweg bekomme – insbesondere Essen.
  • Komplette Reisen. Unfassbar schlechte Websites, totales Chaos bei Sortiment und Preisen.

Bevor ich es vergesse – bei den Reiseportalen kommt noch der Nagativpunkt „heftige Verarsche“ hinzu. Beispiele:

  • Ich sehe das selbe Hotel bei drei verschiedenen Anbietern für drei verschiedene Preise. Dann kehre ich zum ersten Anbieter zurück und der Preis ist um 100,- gestiegen – in zwei Minuten. Wie bitte?
  • Ich möchte mit einer Freundin verreisen. Sie surft bei sich zuhause auf ihrem Mac durch die Angebote, ich bei mir zu Hause auch und wir chatten derweil. Sie findet ein gutes Angebot, und schickt mir den Link und ich bekomme einen anderen Text und einen anderen Preis angezeigt. Ach so…?
  • Ich gebe im Filter genau an, in welchem Zeitraum die Reise liegen darf (7 Tage in der Zeitspanne von X bis y). Als Ergebnis eine Liste von 100 Angeboten,die zu 2/3 außerhalb dieses Zeitraums liegen. Hallo Mc Fly – irgendjemand zu Hause?
  • Ich finde ein passendes Angebot und will es buchen – plötzlich heißt es „Wir können nicht garantieren, dass das Angebot zum Angegebenen Zeitpunkt für den genannten Preis verfügbar ist. Zur verbindlichen Reservierung hier klicken“. Euch habe Sie doch wohl ins Gehirn…

Das letzte Mal habe ich 2011 versucht eine Reise online zu buchen und dabei sind mir alle o.g. Dinge passiert. Insgesamt habe ich zwei Abende ergebnislos am Rechner verbracht. Danach hatte ich die Nase voll und die Reise war in 30 min im Reisebüro gebucht. Sie war nicht teuer, das Hotel in Ordnung, die Lage super. Klasse Urlaub. Seitdem buche ich nur noch im Reisebüro.

Recap: code.talks commerce Berlin 2017

Eigentlich wollte ich ja diesmal gar nichts schreiben (*zwinker*), aber Lars Jankowfsky hat sich mit den aufmunternden Worten von mir verabschiedet „Du schreibst doch hoffentlich wieder etwas in Deinen Blog“. Na, dann will ich mich mal nicht so zieren… 😉

Ich wollte nichts schreiben, weil ich in diesem Jahr nicht ganz bei der Sache war – wortwörtlich. Es war aus zeitlichen Gründen für mich bis zum Vorabend leider nicht ganz klar, ob ich überhaupt teilnehmen kann. Tatsächlich musste ich sowohl am Donnerstag, als auch Freitag für ein paar Stunden ins Büro. So habe ich leider nur zwei halbe Tage auf der Konferenz verbringen können.

Es hat sich trotzdem gelohnt.

Wie auch schon im letzten Jahr fand der auf eCommerce spezialisierte Ableger der großen Hamburger code.talks Konferenz im Kino in der Berliner Kulturbrauerei statt. Die angekündigten Themen lasen sich spannend. Mal abgesehen davon, dass ich ohnehin nur zwei halbe Tage zur Verfügung hatte, bestand hier wieder das Luxusproblem, dass stets mehrere interessante Vorträge parallel stattfanden. Die Vorträge, die ich sehen konnte waren durchwegs gut und informativ.

Kulturbrauerei Berlin

Unterhaltsam war der „Stellungskrieg“ in der Paneldiskussion zur Entwicklung von eCommerce Plattformen zwischen Kelly Goetsch von Commercetools und Pierluigi Meloni von Oxid eSales pro und contra Microservices. Obwohl ich den Dialog (die anderen Teilnehmer gingen dagegen fast unter) ganz amüsant fand, halte ich ihn inhaltlich nicht für sonderlich nahrhaft. Bereits von den Vorträgen des letzten Jahres habe ich für mich mitgenommen, dass Microservices eine tolle Sache sind – falls man riesige und komplexe Shops (Kategorie Otto, Zalando, Amazon) und sehr große Teams hat die man anders nicht weiter skalieren kann. Am Ende des Tages verlagert man lediglich die Komplexität aus dem Monolithen in die Architektur und fängt sich eine Menge Synchronisationsprobleme ein. Für kleine und mittlere Shop ist das sicherlich nicht geeignet.

Reger Austausch am Abend

Ein richtiges Highlight war der Vortrag „Decrease your conversions – common ways to lock people out“ von Stefan Judis. Er navigierte das Publikum durch ein Meer von Fehler, die man bei der Frontendentwicklung machen kann um Leser/Kunden zu verlieren. Angefangen bei dem unverständlicherweise sehr häufigen Fehler völlig fettleibiger mobiler Website (30MB für eine unnütze Startseite), die nicht nur langsam sind, sondern auch das teuer bezahlten Datenvolumen der Kunden in Rekordzeit aurauchen. Massgeblich sind hier neben dem Einsatz von Libraries vor allem nicht optimierte Bilder. Weiter ging es mit nicht mehr ganz so offensichtlichen Fehlern kleiner Schriften, zu geringem Kontrast und Farbwahl, die Farbenblinden die Benutzung unmöglich machen. Den letzten Teil nahmen Gestaltungshinweise ein, die die Nutzung von Seiten mit Screenreadern ermöglichen.

Weniger detailiert war der Vortrag „Learnings from building a marketing data pipeline using Hadoop, Spark, and Airflow“ von Tamara Mendt (HelloFresh). Dafür bekam ich hier einen soliden Überblick über die Möglichkeit, Business Intelligence Infrastruktur aufzubauen. Ein Thema, in dem ich mich nicht auskenne, dessen Bedeutung aber sehr schnell steigt. Gerne hätte ich hier noch mehr gehört, aber das war leider schon der letzte Track am Freitag Nachmittag.

Vortrag zu Business Intelligence

Am wertvollsten waren für mich aber die Gespräche, die ich am Rande der Veranstaltungen und am Donnerstag Abend auf der After Party im Kesselhaus führen konnte. Ich möchte mich an der Stelle bei meinen Gesprächspartnern bedanken (in willkürlicher Reihenfolge: Norbert, Sascha, Markus, Alexander, Thomas, Joscha, Jeremy, Lars, das Team von Spryker u.a.).

Gerne nächstes Jahr wieder.

Recap eCommerce Camp Jena 2017

Mitte März fand zum mittlerweile fünften Mal das eCommerce Camp in Jena statt. Eine Veranstaltung, die ich sehr mag, weil man sich dort im beinahe familiären Rahmen offen über Tücken und Fallstricke des eCommerce-Alltags austauschen kann. Die Vorträge sind techniklastig, ehrlich und in der Regel frei von Marketing-Geschwurbel.

Jenaer Türme

Jenaer Türme

Jena ist eine sehr charmante kleine Universitätsstadt, die ich immer gerne besuche. Auf die diesjährige Veranstaltung schaue ich mit einem lachenden und einem weinenden Auge zurück. Daher habe ich mir mit diesem Artikel auch eine Woche Zeit gelassen.

Etwas Schatten

Weniger schön war, dass ich das Socialising etwas übertrieben habe und am Samstagmorgen erst um 6:30 im Hotel ankam. Der Rest des Tages blieb daher im Rückblick etwas nebulös. Ich habe deshalb einen Vortrag über das alternative Shop Frontend Lizard & Pumpkins verpasst, auf den ich mit Spannung gewartet hatte und eine eigene Umfrage zu Tools, die ich vorbereitet hatte, fiel ebenfalls aus.

Zwei Vorträge, die ich am Freitag gehört hatte, waren ebenfalls eher mau, weil mir des Sinn der vorgestellten Projekte eher zweifelhaft erschien. Da hätte ich aus dem reichhaltigen Angebot besser andere Vorträge wählen sollen.

Viel Licht

Ganz hervorragend waren aber wieder die Gespräche, die ich führen konnte. Das fing bereits am Donnerstag Abend an, als sich die Teilnehmer zum Warm-up in der Gaststätte zur Noll in der Altstadt trafen und ging am Freitag während der Veranstaltung und später im Paradiescafe nahtlos weiter.

Jena - Zur Noll

Jena – Zur Noll

Natürlich gab es auch wieder spannende und lustige Vorträge, bei denen man lernen konnte. Das unausgesprochene Motto könnte lauten:

„Scheitern – aber so richtig“.

Den Auftakt machte Thomas Lohner mit dem Vortrag „Dein Shop wurde gehackt und Du hast es nicht gemerkt„. Er erzählte von einem Projekt, bei dem im Rahmen einer Performanceoptimierung zunächst nur eine kleine Ungereimtheit auffiel. Das Ergebnis nach einer umfangreichen Analyse war:

Der Shop enthielt 500 infizierte PHP Dateien auf dem Server, über 20 unterschiedliche PHP-Shells und Windows Trojaner, die in Produktbildern versteckt waren. Anhand der Backups wurde klar, dass der ursprüngliche Einbruch mehr als drei Monate zurück lag und niemandem aufgefallen war.

Im weiteren Verlauf des Vortrags widmete sich Thomas der Frage, wie man so eine Infizierung erkennt, was zu tun ist, wenn der Fall eingetreten ist, wie man sein System besser absichert und überwacht. Nach den Vortrag hatten viele Teilnehmer ein etwas flaues Gefühl im Magen, sind aber sicherlich sehr viel aufmerksamer geworden. Ich selbst habe in der folgenden Woche bei zwei Projekten potentielle Schwachstellen gefunden und behoben.

Vortrag - Shop Security

Vortrag – Shop Security

Der Vortrag von Fabian Blechschmidt hatte einen etwas universelleren Ansatz: „Fucking up Projects„. Er zählte gefühlte hundert Möglichkeiten auf, wie man ein Projekt in Grund und Boden reiten kann. Bei Stichworten wie „das ist final“, „wir brauchen nur einen Konfigurator“ oder „customer driven development“ gab es viel Heiterkeit im Raum.

Mein Eindruck, war, dass die Teilnehmer von den vielen aufgezählten Möglichkeiten etwas grundlegend falsch zu machen ca. 1/3 bereits selber ausprobiert haben, 1/3 bekannt und 1/3 neu war. Viele Teilnehmer hatten auch weitere Vorschläge. Mein Beitrag „drei Tage vor Livegang die Domainstrategie wechseln“ wurde mit einem anerkennenden „Sehr gut! Was da alles dranhängt…“ goutiert.

Fuckup - "gute" Tipps en Masse

Fuckup – „gute“ Tipps en Masse

Der Vortrag „Github is from Venus, Excel is from Mars“ von Roman Zenner hatte kommunikative Missverständnisse zwischen Anforderern und Entwicklern, die auf unterschiedlichen Sichtweisen beruhen, zum Thema. Als ein Grundproblem identifizierte er, dass Entwickler nach Konvergenz und generischen Lösungen suchen und typische Anforderer nach Divergenz und Individualisierung streben. Im Verlauf glitt der Vortrag immer mehr in eine Diskussion mit Fallbeispielen aus der Praxis ab. Das macht deutlich, wie wichtig dieses Thema die Anwesenden war.

Architektur nicht mehr im Fokus

Jenseits der Vorträge hatte ich den Eindruck, dass Architekturthemen wieder etwas in den Hintergrund gerückt sind. Während 2015 Frameworks ein heisses Thema waren und 2016 Microservices diskutiert wurden, hörte ich in dieses Jahr nur in den privaten Gesprächen den Wunsch nach modularen Systemen. Die Unzufriedenheit mit Monolithen ist immer noch da, aber die Komplexität der großen Würfe möchte man sich auch nicht antun.

Mein Fazit

Abgesehen von meinem selbstverschuldeten Ausfall war das eCommerce Camp Jena auch in diesem Jahr wieder anregend. Man kommt mit neuen Ideen und Sichtweisen nach Hause und hat sich wieder mit der Entwicklercommunity synchronisiert. Ich komme gerne wieder zum „Klassentreffen“.

Welche Shopsoftware würdest Du jetzt nehmen?

Die Frage „Welche Shopsoftware würdest Du jetzt nehmen?“ stellte mir Lars Jankowfsky bei seinem Vortrag „E-Commerce was wirklich zählt. Die Developer Edition“ auf der code.talks eCommerce Konferenz. Zuvor hatte ich bereits erzählt, dass ich 2010 für die Shops der CBR eCommerce GmbH (siehe meine Referenzen) OXID Enterprise Edition ausgewählt hatte. Die wesentlichen Gründe waren damals, dass der Quellcode einsehbar war, die Verfügbarkeit von PHP Entwicklern und die bessere out-of-the-box Performance im Gegensatz zu Magento.

Seinerzeit ist das eine richtige Entscheidung gewesen. Aber was würde ich heute wählen?

Da kam ich ins schwimmen und sagte etwas lahm „Vielleicht eher Shopware“, aber die Antwort war nicht gut. Im Gegensatz zu 2010 ist die verfügbare Technik heute deutlich breiter aufgestellt, wie ja gerade auf dieser Konferenz deutlich wurde. Ehrlicherweise hätte ich sagen sollen, dass ich das neu evaluieren müsste.

Die eCommerce Technik wird immer differenzierter

Interessanterweise schien selbst Alexander Graf, der mit Spryker einer der Hauptsponsoren des Events war, etwas überrascht gewesen zu sein, welch breiten Raum das Thema Microservices auf der Konferenz einnahm. In seinem Artikel „Microservices & Einradfahren“ stellte er zunächst etwas verblüfft fest, dass es auch in der Welt der Techies so etwas wie Modetrends gibt, denen viele einfach hinterherlaufen. Er schrieb unter anderem:

„Zu meiner großen Enttäuschung muss ich nun feststellen, dass die Leute in der IT, bzw. Developer wie sie heute genannt werden, mit den gleichen Denkmustern arbeiten wie die Business Kasper [zu denen er sich selber zählt]. Es gibt eine extrem hohe Neigung Trends hinterherzulaufen und grundlegende technische Probleme nicht ausreichend bzw. nicht ehrlich genug zu analysieren.“

Für mich als Entwickler ist das natürlich überhaupt nichts Neues. Sehr viele Techies sind Diven mit aufgeblähtem Ego, die das Rad lieber zum 100. Mal neu erfinden – weil Ihr Rad natürlich viel viel schöner ist…

Der Rest des Artikels befasst sich damit, dass der Microservice-Ansatz gerade so ein angesagtes Ding ist, dass nicht ausreichend hinterfragt wird. Das Gefühl hatte ich allerdings nicht unbedingt. Für die vorgestellten Projekte gab es jede Menge gute Gründe, genau auf diese Architektur zu setzen – nur treffen die Gründe eben für die meisten „normalen“ Shops bei weitem nicht zu.

Orientierung zwischen Standard-Cloud und Microservices

Doch wie findet man die passende Technik in dem scheinbaren Wirrwar aus Cloudanbietern, Self Hosting, Out-of-the-box Software, Frameworks, Microservices usw?

Das hängt natürlich vom konkreten Projekt ab. Zwei wesentliche Kriterien zur Einordnung von eCommerce Projekten wurden bei der Konferenz für mich deutlich: Das Umsatzvolumen und der Grad der Individualisierung des Geschäftes. Ich habe mal für mich selber aus diesen beiden Kriterien eine Entscheidungsmatrix mit neun Feldern aufgezogen.

Kriterium 1: Das Umsatzvolumen

Bei geringem Umsatzvolumen ist eine einfachere technische Architektur ausreichend, dafür ist hier die Preissensibilität hoch. Bei sehr großen Umsätzen kann und muss man größere Ressourcen in die technische Skalierung stecken, hat aber dafür auch einen größeren Investitionsspielraum.

Kriterium 2: Grad der Individualisierung

Wer ein überschaubares Sortiment mit (datentechnisch) einfachen Produkten anbietet, kommt bereits mit Standardtechnik sehr weit. Je mehr Besonderheiten gefordert sind, desto mehr Aufwand muss in die Anpassung gesteckt werden. Beispiele sind konfigurierbare Produkte, Regionallager und Multichannel. Besondere Geschäftsmodelle, wie z.B. Shoppingclubs, zeitlich begrenztes Angebot, Auktionen etc. lassen sich eigentlich nur noch mit Individualentwicklungen umsetzen.

Die Entscheidungsmatrix

Das Ergebnis meiner Überlegungen ist diese Matrix, deren neun Felder ich kurz erläutere.

Entscheidungsmatrix

Entscheidungsmatrix

  1. Bei wenig Umsatz und Traffic können für Standardprozesse mit einem einfachen Sortiment bereits einfache und günstige Cloudlösungen gut geeignet sein.
    Kandidaten wären hier ePages, Prestashop u.ä.
  2. Eine Anpassung an viele Besonderheiten kann bereits mit Standard Plugins für die üblichen Shopsysteme abgedeckt werden. Hier sollte aber ggf. bereits ein separates Hosting geplant werden, um in das System eingreifen zu können.
    Geeignete Kandidaten sind u.a. Shopware, Oxid, Magento.
  3. Eine weiterreichende Individualisierung lässt sich bei geringem Umsatz eigentlich nur über Standardsoftware mit individuell erstellten Plugins realisieren, wenn man den Kostenrahmen nicht sprengen will.
    Basistechnik entsprechend 2.
  4. Bei mittlerem Umsatz und Traffic sind für ein einfaches Sortiment und Standardprozesse leistungsfähige Cloudlösungen, wie Demandware gut geeignet.
  5. Bei mittlerer Komplexität und mittlerem Umsatz kann Standardsoftware (siehe 2.) mit Plugins und einem Full Page Cache eine solide Lösung sein.
  6. Bei mittlerem Umsatz und hoher Individualität ist eine Frameworkgestützte Individualentwicklung sicherlich nicht die schlechteste Wahl. Kandidaten wären hier Commercetools, Ongr. oder sogar Spryker, falls der Kostenrahmen das hergibt. Falls es zum Geschätsmodell passt sollte man auch NewStore auf die Shortlist nehmen.
  7. Standardanforderungen bei hohen Umsätzen kann man m.E. mit gut skalierbaren Systemen, wie Intershop oder Hybris in sorgfältig gebauten Systemsetups erfüllen
  8. Mittlere Komplexität bei hohen Umsätzen könnte mit leistungsfähiger Standardsoftware und einem individuellem Hochlastfrontend abbildbar sein, oder man greift gleich zu einer kompletten, frameworkgestützten Eigenentwicklung
  9. Und schließlich die Königsklasse: Hoher Umsatz, hohe Komplexität. Hier kommt man nicht mehr um eine Eigenentwicklung mit optimiertem Setup herum. Das ist genau das Feld, in sich dem Otto, Metro und Zalando tummeln (um jetzt mal nicht die rosa Elefanten Amazon und Alibaba zu nennen). Für diese Gewichtsklasse sind Microservice Architekturen sinnvoll. Für alle anderen Felder wären technische Komplexität und Kosten aber einfach zu hoch.

Mal kann jetzt natürlich zurecht fragen „was heißt denn klein, mittel und groß; Standard und komplex?“ Wo sind die Grenzen zwischen den aufgemalten Feldern? Zugegebenermaßen sind die Grenzen da fließend und man kann trefflich diskutieren. Trotzdem denke ich, dass man hier erst mal eine Idee und erste Struktur bekommt.

Aber um auf die Eingangsfrage von Lars zurückzukommen:

Heutzutage würde ich für das Projekt von 2010 vermutlich den Ansatz einer Standardsoftware mit vorgeschaltetem individuellem Hochlastfrontend wählen. So kann man schnell starten, das Geschäft gut hochskalieren und gleichzeitig individuelle Features umsetzen.

 

Die IT im eCommerce

Neulich bei der Diskussion über eCommerce Technologie. Hin- und hergerissen zwischem dem Ehrgeiz der Entwickler stets die coole neue Technik einzusetzen und dem Wunsch des Kunden, bewährte, solide und günstige Technik einzusetzen.

Dabei kam mir das folgende Gleichnis in den Sinn:

„Die IT für eCommerce sitzt im Elfenbeinturm – allerdings unten im Maschinenraum.“

code.talks eCommerce Berlin 2016

Am 19. und 20. April fand in der Kulturbrauerei in Berlin Prenzlauer Berg die Konferenz code.talks commerce special statt. Die Veranstaltung richtete sich hauptsächlich an Entwickler im Bereich Online-Shops. Die zwei Tage voller interessanter Vorträge und Unterhaltungen fasse ich für mich mal so zusammen:

Zwischen Techno-Konservativismus und Zerschlagung von Monolithen

Die Eröffnungrede wurde von Alexander Graf (Spryker) und Lars Jankowfsky (Gründer von Oxid und .NFQ) gehalten und sollte einleitend die Frage klären, weshalb eine separate Entwicklerkonferenz überhaupt nötig sei.

Kulturbrauerei Prenzlauer Berg

Kulturbrauerei Prenzlauer Berg

Interessantes Kinoprogramm

Interessantes Kinoprogramm

Lars Jankowfsky provozierte mit Aussagen, wie „E-Commerce is basically incredible boring“ und „You still could build the most online shops with the systems of 2003“.

Alexander Graf konterte mit Beispielen der letzten 10 Jahre abseits des Mainstreams, wie Shopping Clubs und One Article per Day Stores und sagte dass er in den letzten 10 Jahren noch nie die Aussage gehört hat „Das mit der Technik lief ja so klasse – lass uns das gleich nochmal bei dem nächsten Projekt verwenden“.

Diese Positionen wurden von den beiden in späteren Vorträgen weiter vertieft. Alexander Graf erläuterte unter dem Titel „E-Commerce Companies = Tech Companies. Why is that?“ erneut seine Sicht auf die Entwicklung verschiedener eCommerce Segemente und die Notwendigkeit technisch flexibel auf rasch veränderte Marktanforderungen reagieren können. Hierfür sei das Spryker Framework wesentlich besser geeignet, als monolitische Shopsysteme.

Zuvor hatte Lars Jankowfsky bereits mit seinem Vortrag „E-Commerce was wirklich zählt. Die Developer Edition“ den Entwicklern den Kopf gewaschen. Er zählte verschiedene Shopsysteme auf und ergänzte stets mit entsprechender Attitude „laaangweilig!“.

Entwickler seien schnell gelangweilt und tendieren dazu, neue, vermeintlich „coole“ Technik einsetzen zu wollen. Technik sei aber nun mal kein Selbstzweck, sondern dazu da die Anforderungen des Kunden bestmöglich zu unterstützen. Es folgte eine Liste mit Themen und Techniken, die Developer in den letzten 10 Jahren lernen mussten und die teilweise schon wieder überholt seien.

Welche Ressourcenverschwendung. Insofern sieht er den Einsatz von Programmiersprachen jenseits der beiden marktbeherrschenden Schwergewichte Java und PHP skeptisch, weil das Staffing von Teams so nur noch schwieriger wird, als es ohnehin bereits ist.

Er widersprach auch der weitverbreiteten Ansicht, die besten Entwickler seien diejenigen, die stets mit den neuesten Tools am Start sind. Eine Einschätzung, die von mehreren Zuhörern bestätigt wurde.

Letztlich sind Jankowfskys Plädoyer für Techno-Konservativismus und Grafs Baukastenansatz aber kein Widerspruch, weil beide vom Endkunden her gedacht sind.

Am Ende des Tages ist entscheidend, welcher Umsatz mit wieviel finanziellen Ressourcen erzielt werden kann.

Auch wenn Jankowsky mit der Aussage, Onlineshops seien im Prinzip noch immer wie vor 15 Jahren (Landing Page, Kategorieseite, Produktseite, Basket und Checkout) in gewisser Weise recht hat, so haben sich doch Anforderungen und Komplexität der kompletten Systemlandschaft erheblich erhöht und diese Entwicklung hält an. Wie u.a. das ONGR Frontend Framework zeigt, ist ihm das auch seit langem bewusst.

Es gab mehrere hockarätig besetzte Panel Diskussionen. Zum Beispiel nahmen an der Diskussion über Shopsysteme neben Lars Jankowfsky Yoav Kutner (Oro Inc., zuvor Magento Inc.), Ulrike Müller (NewStore, zuvor Demandware und Intershop), Fabian Wesner (Spryker Systems GmbH), Moritz Zimmermann (hybris/SAP CEC) und Ben Marks (Magento Inc.) teil.

In den Panel Diskussionen „shop systems“ und „SaaS vs. Paas vs. Self-hosted“ wurde – nicht ganz überraschend – deutlich, dass es keine One-Size-Fits-All eCommerce Lösung geben kann. Die Tendenz mit zunehmender Umsatzgröße und Individualität neigen Firmen dazu, größere Teile der technischen Basis selber zu betreuen. Gleichzeitig lösen sie sich zunehmend von monolithischen Systemen.

Paneldiskussion Shopsysteme

Paneldiskussion Shopsysteme

Weg von Monolithen

Die Auflösung monolithische Shopsysteme scheint sich als Trend bei größeren Shops durchzusetzen. Vor zwei Jahren wurde noch viel darüber geredet, im letzten Jahr wurden einige Projekte in dieser Richtung gestartet und nun liegen auch die ersten Erfahrungsberichte vor. Gleich zwei parallel stattfindende Vorträge am ersten Tag und zwei weitere am zweiten Tag hatten Microservices zum Thema.

Ich entschied mich für „Von Monolithen und Microservices“ den  Guido Steinacker von Otto hielt. Zu Beginn erläuterte er weshalb vor zwei Jahren die Entscheidung für eine völlig neue Systemarchitektur fiel. Einerseits war das bestehende System mit 200 Servern nicht weiter skalierbar und die komplexität der Applikation war so hoch, dass sowohl Releases, als auch Datenupdates zu langsam wurden.

Durch die Einführung von Microservices hat sich zunächst die Entwicklung selbst geändert. Anstatt einem Entwicklerteam mit 50 Mitarbeitern gibt es nun 10 Teams mit 5 Mitarbeitern. Die Features können nun schneller entwickelt und deployt werden. Die Responsibibility der Teams für „ihren“ Service ist spürbar gestiegen und neue Mitarbeiter sind wesentlich schneller produktiv.

Eine Herausforderung war es, die Stellen zu identifizieren, an denen der Monolith aufgeteilt wurde. Die Veränderung der Systemarchitektur ist laut Steinacker ein laufender Prozess, bei dem gefundene Lösungen bei Bedarf re-evaluiert und neu zugeschnitten werden. Die Microservices sollten nicht zu groß werden, fachlich separiert und logisch abgeschlossene Einheiten nach dem shared-nothing-Prinzip sein.

Der Vortrag war wirklich sehr gut und so detailliert, dass man alleine hierzu einen längeren Artikel schreiben sollte. Da Josef Willkommer von Techdivision das bereits getan haben, verweise ich einfach mal auf seinen Blogbeitrag „Zusammenfassung der Code.Talks commerce special 2016 – Tag 1„.
Nachtrag: Ich bin eben über den Beitrag „Why Microservices?“ von Guido Steinacker auf dem Development Blog von Otto gestossen. Dort kann man nicht nur das „Warum“, sondern auch das „Wie“ nachlesen. Absolut empfehlenswerte Lektüre.

In einer Gespräch am Abend habe ich die Meinung gehört, dass die Auflösung der monolitischen System ja bereits vor Jahren begonnen habe. Kaum ein Shop hat nicht mindestens Payment, Suche, Recommendations und Tracking an externe Systeme oder gar externe Dienstleister ausgelagert. Von daher sei die weitere Dekonstruktion der Shopsysteme nur logisch und konsequent.

Der Markt bleibt also weiterhin in Bewegung. Die momentanen Newcomer heben sich von den etablierten Anbietern zur Zeit vor allem durch den Framework Ansatz ab. Ein vielversprechendes System, dass ich mir in nächster Zeit näher ansehen werde, ist Sylius, das Paweł Jędrzejewski an Tag 2 vorstellte.

Sylius Vortrag - mit wirklich großem Beamer

Sylius Vortrag – mit wirklich großem Beamer

Die zweitägige Konferenz kann ich nur als gelungen bezeichnen. Gute Vorträge (ich habe noch etliche weitere gehört, aber der Artikel wird sonst einfach zu lang) und anregende Diskussionen. Ich bin inspiriert nach Hause gegangen. Und das ist wörtlich zu nehmen, da ich nicht weit entfernt wohne. Noch ein Vorteil… 🙂

Die eCommerce Gespräche in Berlin

„Berlin, Berlin, wir fahren nach Berlin…“ Oh Moment – ich wohne da ja ohnehin.

Macht ja nichts. Ich freue mich auf eine eCommerce Konferenz, die sehr interessante Vorträge verspricht und die ich locker zu Fuß erreichen kann. Die Rede ist von der code.talks commerce Berlin, die am 19. und 20. April stattfindet.

Die Liste der Redner ist lang und hochkarätig besetzt. Neben vielen Menschen, die ich aus dem Oxid Umfeld kenne (Ina El-KadhiLars JankowfskyMarc KorthausJan Peschke, Joscha Krug, Manuel Diekmann, …) freue ich mich vor allem auch auf Vertreter neuerer Technologien, wie Spryker und New Store, die sicherlich erheblich andere Sichtweisen in die technischen Diskussionen einbringen können.

Das Programm scheint zu bestätigen, was ich bereits auf dem familiären eCommerce Camp Jena im letzten gespürt hatte: Ein großer Teil der eCommerce Szene will weg von den etablierten monolithischen Shopsystemen. Sei es aus technischen Gründen oder weil sich neue Geschäftsmodelle etablieren.

Ich bin gespannt und freue mich.

Der E-Commerce Zirkus gastierte in Jena

Vom 12. bis zum 14. März fand das eCommerce Camp 2015 in Jena statt. Im Vorfeld hatten mir Joscha Krug von Marmalade und Marco Steinhäuser von OXID die Teilnahme an der Unconference empfohlen. Die im Vorfeld eingereichten Sessionvorschläge ließen interessantes erwarten, also machte ich mich auf nach Thüringen.

Jenaer Mischung: Tradition und Moderne

Jenaer Mischung: Tradition und Moderne

Stadtmauer mit Türmen

Stadtmauer mit Türmen

Jena – die Stadt von Carl Zeiss, Schott, Intershop und meinem Lieblings Web-Comic Zeichner „JoJo Beetlebum“ Johannes Kretzschmar. Vor 16 Jahren war ich einmal kurz dort und hatte einen angenehmen Eindruck behalten, der sich wieder bestätigt hat.

Jena ist ein charmantes Städchen im Saaletal mit vielen Studenten. Genau die richtige Mischung aus Tradition und Moderne, aus jung und alt. In den zwei Tagen konnte ich alles locker zu Fuß erledigen. Länger als 10 Minuten braucht man kaum für einen Weg – sehr angenehm. Das Wetter war leider nicht ganz so toll: Tief im Tal hängende Wolken, kleinere Regenschauer und am Freitagabend sogar ein paar Schneeflocken. Aber wir waren ja nicht zum Sonnenbaden gekommen, sondern zum Gedankenaustausch, was auch hervorragend funktioniert hat.

 

Der Rahmen

Am Vorabend erschien bereits ein Großteil der fast 200 Besucher zu einem Get-together in der Altstadtkneipe „Zur Nolle“. Es gab gutes Essen, Freibier und bereits viele interessante Gespräche. Dazu ein etwas Klatsch und Trasch und einige Personalrochaden. Das Ganze fühlte sich ein bißchen wie ein Klassentreffen an.

Durch diese hohle Gasse...

Durch diese hohle Gasse...

Markt bei Nacht

Markt bei Nacht

 

Der Freitag startete ein wenig mit Verzug in der Ernst-Abbe Fachhochschule, weil das Frühstück verspätet angeliefert wurde und sehr viele Vorschläge für Vorträge eingereicht und vorgestellt wurden. Das schmälerte aber weder die Stimmung, noch die Qualität der Veranstaltung. Es gab vier parallele Tracks und so manches Mal wünschte ich, mich dreizuteilen.

Vier Tracks für Freitag

Vier Tracks für Freitag

 

Zwischen den Sessions

Zwischen den Sessions

Im Gegensatz zu Veranstaltungen wie der Oxid Commons, ist das Themenspektrum beim eCommerce Camp breiter aufgestellt. Es gab sowohl Sessions „aus dem Maschinenraum“, aber auch die Adlerperspektive auf sich permanent im Wandel befindliche Geschäftsmodelle die ständig neue Anforderungen auch an die Technik bedingen. Hier erwarte ich in nächster Zeit einige Bewegung auf dem Markt. Im Bereich kleinerer Shops macht sich Presta verstärkt daran, Kunden die bisher u.a. XTCommerce einsetzen, für sich zu gewinnen.

Im Bereich großer Online Shops bekommt der eher monolithischen Ansätze herkömmlicher Shopsysteme, wie Shopware, OXID oder Magento bekommen zunehmend Konkurrenz. Es wurde offen über verschiedene Ansätze für eCommerce Architekturen geredet und entsprechende Projekte und Produkte präsentiert.

 

Technik im Wandel

Für so manches Geschäft mag ein Framework, wie sphere.io die passende Grundlage für eine eigene Lösung sein.

Seit einiger Zeit ist Spryker im Gespräch; Ein auf den Ideen der „Alice and Bob“ Architektur von Zalando basierendes eCommerce Enviroment. Es war zu erfahren, dass der Code auf der Zielgeraden sei. Spryker besticht mit einer sehr durchdachten Architektur, verschreckt aber mit einem sehr ambitionierten Lizenzmodell.

Eine Zwischenlösung, die für viele mittelgroße Shops passend sein kann, ist Ongr – ein Framework, das für den Bau individueller, hochperformanter Katalogserver gedacht ist, und als Ergänzung vor herkömmliche Systeme, wie OXID oder Magento gesetzt wird. Simonas Šerlinskas führte das in einer Live-Coding Session vor.

Technisch noch eine Ebene tiefer setzte der Vortrag von Jan Peschke an. Er stellte eine auf OpenStack basierende Infrastrukturlösung vor, die seit ca. einem Jahr bei SysEleven, einem auf Hochlast eCommerce spezialisierten Hostingprovider, entwickelt wird. Das Projekt befindet sich in der Alphaphase und wird bereits mit ausgewählten Kunden eingesetzt. Mit der Lösung lassen sich komplette Infrastruksetups nach Belieben klonen, hoch- und runterfahren. Für mich ist das Highlight, das vollständige Setup eines Rechenzentrums versionieren zu können. So können Deployments künftig nicht mehr nur auf Codeebene, sondern auf Infrastrukturebene durchgeführt werden.

Feine Details

Es gab aber nicht nur die ganz großen Themen, sondern auch erfreulich viele nützliche Details zu erfahren. Florian Gilcher von Asquera erzählte von „Fallen, verpassten Gelegenheiten und schlechten Abkürzungen“ beim Einsatz von Elasticsearch. Spannend war, dass viele Praxisprobleme gar nicht technischer, sondern semantischer und linguistischer Natur sind.

Für viele kleine Probleme des eCommerce Alltags wurden nützliche Kleinigkeiten vorgestellt. Marmalade zeigte das Modul YAMM (Yet another Meta Module), mit dem in einem OXID Shop die Einstellungen aller Module in einerm Rutsch gesichert und wiederhergestellt werden können – inklusive der Reihenfolge, in der Klassen überladen werden.

Marmalade zeigte ebenfalls, wie PHP basierte Webapplikationen ohne den Einsatz üblicher komplexer Tools, wie Capistrano mittels Deployer vorgenommen werden können.

Fazit

Jena war auf jeden Fall die Reise Wert. Das Camp bot massenweise guten fachlichen Input und ist von der Größe und Besetzung ideal zur Pflege der fachlichen Kontakte.

E-Commerce FAIL, oder: Wie ich heute fast Konzertkarten gekauft hätte…

Heute morgen habe ich die wohl schlechteste E-Commerce Website der vergangenen Jahre besucht. Anlass war der Kartenverkauf für die acht Konzerte, die Kraftwerk im Januar 2015 in der Neuen Nationalgalerie in Berlin geben werden. Jedes Konzert dieser Reihe bezieht sich auf ein Ihrer Platten – also „Autobahn“, „Trans Europa Express“, „Mensch-Maschine“ usw.

Ich hatte mir keine große Hoffnung gemacht eine Karte zu bekommen und rechnete mit überlasteten Servern. Versuchen wollte ich es dennoch. Womit ich nicht gerechnet hatte, war die überaus beschissene Usability der Website von Tickets.de, an der ich letztlich gescheitert bin.

Der Kartenverkauf sollte heute morgen um 9:00 starten. Also saß ich mit laufendem Laptop am Frühstückstisch und versuchte ab 8:59 zum Server durchzukommen. Wie zu erwarten, war der überlastet und man bekam eine Seite mit einem entsprechende Hinweis und einem Countdown zu sehen, nach wie vielen Sekunden man einen erneuten Versuch starten durfte.

Nachdem ich 17 Minuten lang „reload“ gedrückt hatte, schien mit das Glück hold zu sein. Ich bekam eine Seite mit den möglichen Tickets angezeigt. Etwas unübersichtlich, aber nun gut.

Ein Klick auf das Wunschticket, und… nichts passiert.

Hä?

Es stellt sich heraus, dass auf der ganzen Seite kein funktionierender „kaufen“-Link war. Was bitte soll das denn?

Mit etwas Rätselraten und einem Blick in den Quellcode der Seite kam ich drauf, dass die Links nur dann funktionieren, wenn man angemeldet ist. Wunderbar, das nach knapp 20 Minuten zu erfahren. Also schnell noch registrieren… hat noch mal 20 Minuten gedauert, bis die Bestätigung da war.

Selbstverständlich waren zu dem Zeitpunkt schon alle 12.000 Karten weg. Was bleibt ist eine dreiviertel Stunde Ärger und eine überflüssige Anmeldung bei einem Ticketdienstleister, der seine Seite mutmaßlich von 17 Jährigen Praktikanten bauen lässt.

TL;DR

Dem Betreiber seien ein Grundlagen der Mediengestaltung ans Herz gelegt:

  • Wer eine Anmeldung verlangt, soll bitte deutlich darauf hinweisen – und zwar am Anfang.
  • Wenn der Nutzer eine Aktion NICHT ausführen darf, muss er darauf hingewiesen werden, weshalb er es nicht darf.
  • Bedienelemente, die kommentarlos nicht funktionieren gehen einfach gar nicht.

Nächste Seite »