Admittedly, I was mildly shocked and a bit scared when stumbling over @ZackMaril’s recent tweet claiming Clojure was a dying language. A huge discussion was sparked and a lot has been written since. A summary can be found in Arne Brasseur’s post which also offers some good insight into the community behind Clojure. Eric Normand added another layer of abstraction today and collected some more links in this week’s Drama edition of the purelyfunctional.tv newsletter.

I share Dan Lebrero’s sentiment on Clojure. Clojure taught me lessons and introduced concepts to me  that I do not want to miss any more. First and foremost I love the built-in immutable collections. Immutability as default is a milestone in my life as a developer. I compare it to git, pair-programming, continuous integration and IntelliJ IDEA (with Cursive now, of course). There was a time when I did not even know about each of these. Now I cannot imagine to ever work without any of them.

In this post I want to emphasize another not less important aspect: Productivity. With Clojure we get a whole lot of stuff done. Seriously.

In einem fachbereichsübergreifenden Projekt wollte OTTO Insights zum Thema Customer-Journey generieren und als Basis für Maßnahmen (z.B. Verbesserung der Customer Experience) nutzen. Dabei sollte eine Analysebasis geschaffen werden, die Potenziale sichtbar macht und einen Mehrwert für OTTO bietet.

An dem Projekt waren die Bereiche Business Intelligence (BI) und Kundenservice und Logistik (KL) beteiligt.

BI ist ein zentraler Treiber für die Entwicklung der „data driven company“.

von Diana Kruse

Wir Quality Specialists schauen nicht nur über den teameigenen Tellerrand, indem wir uns in bereichsweiten Formaten wie QS-OpenSpace, QS-Conventions und Fokusgruppen rund um das Thema Qualität austauschen. Wir strecken unsere Fühler auch konzernweit und über den Konzern hinaus aus.

In diesem Beitrag möchte ich kurz über die QConf sprechen, der jährlichen konzernweiten Konferenz für alle Software-Qualitäts-Interessierten der otto group.

Seit dem letzten Jahr haben sich die einzelnen IT-Bereiche stark weiterentwickelt. Konzernweit spiegelt sich in etwa das wider, was ich auch am Markt verfolge: Es gibt Bereiche, die noch am Anfang stehen, was agile Software(Qualitäts)Prozesse angeht. Andere, wie wir bei otto.de, leben und verändern diese schon seit einigen Jahren.

Die QConf in Zahlen

750
Feedbackzettel
70
aktive Teilnehmer
17
Stunden Softwarequalität
16
Speaker / Workshopleader
4
Sponsoren
4
Orgas
1
riesiger Raum
Jeder Bereich steht somit vor anderen Herausforderungen und doch macht uns ein Gedanke alle gleich:

„Wie können wir unterstützen, dass qualitativ hochwertige Software an unsere Kunde geliefert wird?“

Beim Export von Shopdaten an Preissuchmaschinen machen die Betreiber genaue Vorgaben, in welchem Format die Produktdaten eingereicht werden müssen. Ein Betreiber möchte z.B. den Artikelpreis als Zahl in Cent, der andere als String mit Komma und Eurozeichen. Auch für die Angabe von Lieferbarkeit, Versandkosten oder Bildern sind sehr unterschiedliche Vorgaben zu beachten.
Die Software, die bei OTTO die Transformation und Datenbelieferung übernimmt, heißt ProPHET (Produktdaten Partnerfeed Handling & Export Tool). Dieser Artikel zeigt die Vorteile der Umstellung auf eine domänenspezifische Sprache (DSL) zur Beschreibung der Transformation dieser Daten.

Aktuelle E-Commerce-Systeme bestehen häufig aus mehreren Servern, die mit dem Browser der Benutzer über SSL-gesicherte Leitungen kommunizieren. Allerdings sind die Rechner der Kunden nicht die einzigen, mit denen ein Shop Daten austauschen muss: fast immer ist es notwendig, dass die einzelnen Server des Systems auch untereinander kommunizieren müssen. Dabei ist es unerheblich, ob es sich um eine Microservice– oder eine Vertikalen-Architektur handelt. Sogar die in die Tage gekommenen Monolithen nutzen bei einem Multi-Tier-Ansatz gerne mehrere Server.

Gemein ist diesen Backend-Requests (im Gegensatz zu dem Netzwerkverkehr zwischen Kunden-Browser und otto.de), dass hier im Allgemeinen keine vertraulichen Daten über die Leitung gehen, sondern beispielsweise die Aktualisierung einer Produktverfügbarkeit oder Konfigurations-Requests. Diese Inhalte müssen also nicht geheim gehalten werden, was uns den Aufwand und die Komplexität erspart, sie zu verschlüsseln.

Trotzdem darf natürlich nicht jeder die Texte im Shop ändern oder Produktinformationen anpassen, daher benötigen wir eine Methode zur Authentifizierung und Autorisierung der Requests.

Scaling Agile @ OTTO – Learning at Scale: Agilität als umfassende organisatorische Herausforderung
von Peter Wolter und Stephan Kraus

Was ist eigentlich das Ziel hinter Agilität? Geschwindigkeit und Veränderungsfähigkeit! Die Grundlage dafür sind entsprechende Strukturen und Rahmenbedingungen im Unternehmen und die Fähigkeit der Organisation zu lernen: Kleine, autonome, interdisziplinäre Teams, die eigenständig und in hoher Verantwortung auf die unternehmerischen Ziele hinarbeiten, die entscheiden, was getan wird. In einer unsicheren Welt von sich schnell ändernden Anforderungen müssen diese Teams lernen. Dazu muss es eine lernende Kultur geben, um das Wie ständig anpassen zu können. In der lernenden Kultur ermächtigen wir Menschen, kreativ zu werden und ihren eigenen Weg zu finden. Dafür beschreiben wir vor allem das Warum.

In der Ausgabe 04/2016 des OBJEKTspektrum haben wir zum Schwerpunktthema „Führung und Management in der IT“ einen Artikel veröffentlicht, in dem wir unseren Weg zu einer lernenden Organisation beschreiben.

Von Natalie Volk, Finn Lorbeer, Diana Kruse, und Torsten Mangner

Bei otto.de gibt es in jedem Cross-Functional-Team mindestens eine Testerin / Testmanagerin / QA / QSlerin… wie auch immer man die Rolle der Person bezeichnet, die Bewusstsein für Qualität schaffen soll.

Bisher dominierte die Bezeichung „Testmanagerin“ – ein sehr hölzerner, bürokratisch klingender Titel. Dieser sollte deutlich machen, dass die Rolle mehr tut, als nur Tests durchzuführen: Sie managed Tests! Mittlerweile ist auch das managen von Tests nur noch ein kleiner Teil des Mehrwerts, den wir im Team erbringen.

A Completely Biased Summary of the Assets of Microservice Architectures

by @GuidoSteinacker

When we started ‚Lhotse‘, the project to replace the old, monolithic e-commerce platform of otto.de a few years ago, we chose self-contained systems (SCS) to implement the new shop: Instead of developing a single big monolithic application, we chose to vertically decompose the system by business domains (’search‘, ’navigation‘, ‚order‘, …) into several mostly loosely coupled applications. Each application having it’s own UI, database, redundant data and so on. If you are more interested in the ‚how‘ instead of the ‚why‘, please have a look into an earlier article on monoliths and microservices.

Lately, some of these SCS turned out to be still too large, so we decomposed them by extracting several microservices. Because we are already running a distributed system, cutting applications into smaller pieces is now a rather easy exercise.  One of the reasons, why I agree with Stephan Tilkov that you should not start with a monolith, when your goal is a microservices architecture.

This article is not about the pros and cons of microservice architectures. This article is mostly about the pros. Not because they do not have downsides, but because I’m biased and completely convinced that microservices are a great idea.

Whenever we present how we release features and deploy our code in one of OTTOs core functional teams, we are met with a certain set of questions, e.g..: “Why do you want to deploy more than once a week?”, “If you automate release and test management, what are the release and test managers doing?”, “How can we prevent major bugs to enter the shop?”, “Where is the final control instance to decide if something goes live?”, or the typical question “Who is responsible if something breaks?” or simply “Why the heck would someone want to do this?”

Let us answer those questions. Let us guide you through our way of working. Let us show you what processes we have (and which ones we do not have) and give you a hint on how to increase productivity and quality at the same time (without firing the test manager). All you have to do is to sit back, relax and let go of your concerns to lose control. Don’t worry, you won’t lose it.