Product Development – ein bunter Haufen, der Bürokratie hasst und aus Fehlern lernt
Hinter den Kulissen

Product Development – ein bunter Haufen, der Bürokratie hasst und aus Fehlern lernt

Stefan Müller
Zürich, am 31.05.2022

Bei Digitec Galaxus entwickeln wir sowohl unsere Onlineshops als auch unser ERP-System selbst. Aktuell arbeiten über 260 Engineers, Product Owner, Data Analysten und UX Designer in 35 Entwicklungsteams daran, unsere Prozesse laufend zu optimieren. Dies mit dem Ziel möglichst effektiv und effizient Mehrwert für unsere Kunden zu generieren. Welche Aspekte uns dabei besonders wichtig sind, erfährst du in diesem Artikel.

Unsere Kultur ist geprägt durch die Unternehmenswerte kooperativ, innovativ, piratisch, eigenverantwortlich und ambitioniert. Sie bilden das Fundament unserer Zusammenarbeit.

Besonderen Wert legen wir darauf, dass sich alle im Unternehmen unabhängig von der Hierarchie auf Augenhöhe und wertschätzend begegnen und andere Meinungen und Ansichten positiv gegenüberstehen. Dadurch fühlen wir uns frei auch verrückteste Ideen zu diskutieren und Bedenken ungeniert zu äussern. Diese Offenheit ist eine enorm wichtige Voraussetzung, um clevere und innovative Lösungen zu entwickeln und zielstrebig umzusetzen.

Wichtig ist uns auch, dass wir unsere Aufgaben und Herausforderungen proaktiv und eigenverantwortlich angehen und Entscheidungen möglichst selbst treffen. Dafür ist es essenziell, dass wir unnötige bürokratische Hürden konsequent beseitigen und Entscheidungsprozesse schlank halten.

Fehler passieren, um daraus lernen zu können

Ausserdem liegt uns eine starke Lern- und Fehlerkultur am Herzen: Je besser es uns als Organisation gelingt, bei Fehlern nicht die Schuldigen zu suchen und an den Pranger zu stellen, sondern möglichst viel aus den Fehlern zu lernen, desto mehr Wissen können wir aufbauen. Und dies hilft uns, Software effektiv und effizient zu entwickeln. Folgende Praktiken haben sich in diesem Zusammenhang als wertvoll erwiesen:

  • Wir unterstützen temporäre Teamwechsel - sogenannte DevXChanges. Sie ermöglichen es uns Erfahrungen in einem anderen Kontext zu sammeln und den eigenen Horizont zu erweitern.
  • Alle zwei Wochen stellen die Entwicklungsteams am DevInfo-Termin ihre Erfolge und neue Erkenntnisse der ganzen Abteilung vor.
  • Nach grösseren Incidents führen wir ein Post Mortem durch. Dies mit dem Ziel aus unseren Fehlern zu lernen und das Risiko zu reduzieren nochmals in einen ähnlichen Fettnapf zu treten.
  • Für die persönliche Weiterbildung bieten wir diverse interne Kurse zu Fach-, Sozial- und Führungskompetenzen an. Beispiele für aktuell behandelte Themen sind Domain Driven Design, agile Methoden oder Konfliktmanagement.

Agiler Planungs- und Entwicklungsprozess

Unsere Geschäftsleitung definiert in den Jahreszielen den strategischen Fokus des Unternehmens. Darauf basierend formulieren unsere Entwicklungsteams in enger Zusammenarbeit mit allen Geschäftsbereichen sogenannte Initiativen. Eine Initiative beschreibt ein Änderungsvorhaben mit klaren Zielen und überprüfbaren Ergebnissen, welches direkt auf die strategischen Ziele einzahlt. Eine Initiative sollte in maximal vier Monaten umsetzbar sein. So gelingt es uns schnell zu lernen und wir können auf sich verändernde Prioritäten zügig reagieren.

Sobald die Umsetzung einer Initiative startet, wird sie in kleinere Arbeitspakete heruntergebrochen – sogenannte Epics und Storys. Die Storys werden dann in den Product Backlogs der Entwicklungsteams priorisiert und umgesetzt. Die Entwicklung erfolgt im Rahmen des Scrum-Frameworks, teilweise ergänzt durch Kanban-Praktiken.

Vom strategischen Firmenziel bis zur Story im Product Backlog
Vom strategischen Firmenziel bis zur Story im Product Backlog

Spezialisierte Entwicklungsteams schaffen Mehrwert

Die Entwicklungsteams spezialisieren sich auf ein bestimmtes Geschäftsfeld und sind dafür verantwortlich, das Kundenerlebnis zu verbessern, indem sie sowohl die Prozesse als auch die technische Lösung in diesem Bereich weiterentwickeln. Um eine skalierbare Organisation und ein motivierendes Arbeitsumfeld zu begünstigen, ist es uns wichtig, dass möglichst viele Entscheidungen direkt innerhalb eines Teams getroffen werden können. Dank der Spezialisierung gelingt es uns, das dafür notwendige Detail-Wissen – sowohl produktseitig als auch technisch – innerhalb des Teams kontinuierlich auszubauen. Ein Team besteht in der Regel aus insgesamt 6 bis 9 Leuten. Neben den Entwicklerinnen und Entwicklern verfügt jedes Team über einen Product Owner. Er oder sie ist verantwortlich für die Priorisierung des «Product Backlogs». Und dann wäre da noch der Teamleader. Er oder sie ist verantwortlich ist für die personelle Führung, entwickelt aber auch aktiv an der technischen Lösung mit. Die Verantwortung für die Softwarearchitektur liegt im Team: Für jede Initiative übernimmt ein Teammitglied die Rolle des Solution Architekten und prägt somit die Architektur der umgesetzten Lösungen.

Mehrere Teams bilden zusammen eine Area. Die untenstehende Tabelle gibt einen Grobüberblick über die Verantwortlichkeiten der Areas und im Bild sind die einzelnen Teams pro Area aufgeführt.

Unsere Teams und Areas
Unsere Teams und Areas

Rasches Feedback dank Continuous Delivery

Es ist uns wichtig, dass wir umgesetzte Änderungen rasch und häufig in die produktive Umgebung integrieren können (Continuous Delivery). Das geschieht in der Regel nach jeder umgesetzten Story - also typischerweise mehrmals täglich. So verhindern wir Big-Bang-Releases und erhalten rasches Feedback, sollte etwas nicht wie gewünscht funktionieren. Ausserdem können die Kundinnen und Kunden sofort von Verbesserungen profitieren. Automatisierte Tests im Rahmen des Release-Prozesses erhöhen die Wahrscheinlichkeit, dass allfällige Bugs frühzeitig entdeckt und behoben werden. Und falls uns doch mal etwas durchrutscht, freuen wir uns, wenn ihr in der Community Feedback hinterlässt.

Der DevOps Zyklus zeigt alle Stufen, die für häufige Releases benötigt werden.
Der DevOps Zyklus zeigt alle Stufen, die für häufige Releases benötigt werden.

Modulare Softwarearchitektur ermöglicht klare Zuständigkeiten

Wir setzen auf eine modulare Architektur mit möglichst schlanken und stabilen Schnittstellen zwischen den einzelnen Softwarekomponenten. Jede Komponente entspricht einem Teilbereich unseres Geschäftsfeldes und wird von einem designierten Team verantwortet. Damit stellen wir sicher, dass sich alle Teams auf ihren Verantwortungsbereich konzentrieren und sich beim Implementieren von neuen Features nicht gegenseitig in die Quere kommen.

Eine Softwarekomponente lebt entweder in einem Modul (Microservice) oder im modularen Monolithen. Aktuell gibt es über 50 Module (ein bis zwei pro Team). Unser Technologie-Stack beruht hauptsächlich auf .NET Core, MS SQL-Server und MongoDB. Im Onlineshop-Frontend verwenden wir React mit Next.js und GraphQL. Sowohl die Module als auch der Monolith werden in einem Kubernetes-Cluster betrieben. Für die asynchrone Kommunikation nutzen wir Messaging (Kafka und Azure Service Bus). Unseren kompletten Tech-Radar findest du hier.

Softwarekomponenten und deren Zusammenspiel
Softwarekomponenten und deren Zusammenspiel

Clevere Standards

Die Teams in der Area «Platform & SysOps» setzen alle Hebel in Bewegung, dass die anderen Entwicklungsteams möglichst effizient arbeiten können. Dies tun sie, indem sie standardisierte Lösungen für Querschnitts- und Infrastrukturthemen anbieten. Dies wäre beispielsweise ein Modul-Template, ein Kubernetes-Cluster, eine zentrale Observability-Lösung (Logging, Monitoring, Alerting) oder Database-as-a-Service für unsere Standard-Persistenztechnologien (SQL-Server und MongoDb). Ziel ist es, dass solche Plattformdienste für die Entwicklungsteams einfach verständlich und nutzbar sind, sodass möglichst viel Raum für die Entwicklung von kundenwirksamen Features bleibt.

Hast du Fragen oder Lust, unsere Shops und Prozesse zu verbessern? Fragen kannst du gerne in der Kommentarspalte stellen.

Wir sind laufend auf der Suche nach Verstärkung. Unsere aktuellen Stellenangebote findest du auf unserem Stellenportal.

Mehr über den bunten Haufen:

  • Hinter den KulissenComputing

    Team Isotopes: Die Speed Demons des Engineerings

  • Hinter den KulissenComputing

    Team KickAss: Arbeit da, wo es weh tut

  • Hinter den KulissenComputing

    Team Spectre: Die, die im Dunkeln agieren

  • Hinter den Kulissen

    Keine künstliche ohne menschliche Intelligenz

55 Personen gefällt dieser Artikel


User Avatar
User Avatar

Meine Passion ist die Technologie und die Menschen dahinter. Ich mag es, zusammen mit coolen Leuten einfache Lösungen für komplexe Problemstellungen zu finden. Meine Freizeit geniesse ich zusammen mit meiner Familie und beim Sport.


Diese Beiträge könnten dich auch interessieren

  • Skeleton Loader

    Skeleton Loader

  • Skeleton Loader

    Skeleton Loader

  • Skeleton Loader

    Skeleton Loader