Digitales "All in"

Was treibt den Erfolg von Software im E-Commerce an?

Laurent Py

© Shutterstock / Montri Thipsorn

Wenn man sich die aktuelle Beschleunigung der digitalen Transformation, die Zunahme von Remote-Arbeitskräften und eine größere Abhängigkeit von Online-Transaktionen und Interaktionen anschaut, dann haben diese Veränderungen zusammen jedes Unternehmen letztendlich in ein E-Commerce-Unternehmen verwandelt. Dies zeichnet sich nicht mehr nur als eine verlässliche Erwartung ab. Es ist bereits geschehen und ich würde sagen, auf eine ziemlich brutale Art und Weise.

Wenn ich versuche zu verstehen, wie groß eine bestimmte Welle oder ein Trend ist, schaue ich mir gerne die Infrastruktur-Trends an. Wenn wir darüber nachdenken, was die meisten E-Commerce-Unternehmen benötigen, ist es eine Zahlungsplattform oder ein Zahlungsstapel. Führend in dieser Kategorie ist Stripe. Schauen Sie sich an, wie Stripe in Bezug auf das Volumen und die Millionen von Kunden in die Höhe schießt. Sie haben kürzlich auch eine Finanzierungsrunde abgeschlossen, bei der sie jetzt mit mehr als 100 Milliarden Dollar bewertet werden. Das wird die neue Norm.

Wenn wir über Erfolg im E-Commerce sprechen, sprechen wir letztendlich über Software-Erfolg. Software ist nicht nur ein entscheidender Teil Ihres Geschäfts; sie ist zum wichtigsten Unterscheidungsmerkmal zwischen Ihnen und Ihrer Konkurrenz geworden. Wie schnell können Sie Ihre Software entwickeln? Wie schnell können Sie sie an Ihre Kunden liefern? Das ist der Punkt, an dem Sie echte Wettbewerbsvorteile schaffen.

Die größte Herausforderung liegt im Change Management. Egal, ob Sie ein Startup oder ein großes Unternehmen sind, wie werden Sie sich selbst oder Ihre Organisation weiterentwickeln und dann transformieren? Wie werden Sie Ihre Teams auf diesem Weg unterstützen, um ein Softwareunternehmen zu werden, das kontinuierlich innovativ ist und eine hohe organisatorische Leistung erbringt?

E-Commerce = Qualität mit Geschwindigkeit

In der Vergangenheit standen Geschwindigkeit und Qualität in einem gewissen Widerspruch zueinander. Man konnte in einem von beiden gut sein, aber das bedeutete, dass das andere darunter leiden würde. Aber das ist einfach keine Option mehr. Ihre Kunden werden es nicht tolerieren, wenn eines von beiden fehlt. Sie müssen sich auf beides konzentrieren. Wie schaffen es also die erfolgreichsten Unternehmen von heute, „Qualität mit Geschwindigkeit“ zu liefern?

Für diejenigen, die nach Antworten suchen, gab es einige hervorragende Untersuchungen über die ähnlichen Eigenschaften von hochleistungsfähigen Teams – diejenigen, die mehrmals am Tag Software bereitstellen, im Gegensatz zu denen, die weniger häufig, vielleicht nur vierteljährlich, releasen. Diese Studien konnten einige wirklich eindeutige Zusammenhänge und Datenpunkte zwischen der Release-Häufigkeit und der Software-Qualität identifizieren. Es gibt viele Fallstudien, die deutlich zeigen, dass Teams, die mehrmals am Tag Software bereitstellen, viel eher qualitativ hochwertigere Software liefern, als solche, die nur alle paar Monate releasen.

Die Teams, die täglich oder mehrmals am Tag bereitstellen, haben in der Regel eine Fehlerrate bei Änderungen von unter 15 %. Sie haben eine Zeit bis zur Lösung eines Problems, die weniger als eine Stunde beträgt. Wenn Sie Teams mit geringer Leistung betrachten, so dauert die Bereitstellung in der Regel Wochen oder Monate, und die Fehlerrate bei Änderungen liegt bei mehr als 30 %. Denken Sie darüber nach, was dies für Ihre Benutzererfahrung bedeutet. Der Weg zu einer optimalen, niedrigen Change-Fail-Rate führt über DevSecOps. Für viele Unternehmen bedeutet dies, neue Arbeitsweisen und Lernmethoden einzubeziehen.

Die gute Nachricht ist, dass es dafür tatsächlich ein Playbook gibt: Accelerate von Dr. Nicole Forsgren. Dieses Buch enthält eine Fülle von Informationen, einschließlich einer Liste von anzustrebenden – und erreichbaren – Fähigkeiten, die in den erfolgreichsten Softwareunternehmen von heute identifiziert wurden. Diese Fähigkeiten sind außerdem in fünf Hauptkategorien unterteilt, beginnend mit der regelmäßigen Bereitstellung. Dazu gehören u.a. kontinuierliche Integration, kontinuierliche Bereitstellung und Testautomatisierung.

Die zweite Kategorie ist die Architektur. Wie finden Sie die richtige, lose gekoppelte Architektur, die es Ihnen ermöglicht, Änderungen sehr schnell und ohne Auswirkungen oder viele Abhängigkeiten auf den Rest Ihrer Anwendung vorzunehmen? Daneben gibt es die Kategorien Prozesse und Lean-Management. Schließlich, und das ist für mich das Wichtigste, die fünfte Säule, welche die Kultur ist. Die Kultur ist ein so wichtiger Aspekt bei einer DevOps-Transformation. Wie stellen Sie sicher, dass Sie Ihre Teams unterstützen, schulen, befähigen und organisieren, damit sie die Bereitstellung von hochwertiger Software wirklich beschleunigen können?

Wo soll man anfangen?

Vorausgesetzt, Sie verfügen über die richtige Führung und Kultur, was die Grundlage ist, so ist die kontinuierliche Bereitstellung definitiv mein bevorzugter Startpunkt, vor allem für eine Organisation, die ihre Kadenz von monatlichen zu täglichen Releases beschleunigen möchte. Wenn Sie sich mit Continuous Deployment oder Continuous Delivery beschäftigen, dann ist das erste, was Sie beschleunigen wollen oder müssen das Testen. Das ist in der Regel der erste Engpass. „Team, wir veröffentlichen derzeit alle drei Monate. Ich möchte, dass wir im nächsten Sprint am Ende dieser Woche releasen.“ Das wird nicht funktionieren, aber ich möchte sehen, was kaputt geht.

Bei Ihren Tests wird das passieren, weil es wahrscheinlich nicht genug Automatisierung gibt. Was Teams in der Regel haben, sind zu viele funktionale und manuelle Tests und nicht genügend Unit Tests. Die Ausführung dauert also nicht nur zu lang, sondern die Tests sind auch sehr spröde. Ich betrachte das Testen als so etwas wie die „Leitplanken“ des Software-Entwicklungsprozesses. In vielen Fällen können Sie mir Ihre Tests zeigen und ich kann die Struktur Ihres Software-Entwicklungsteams und der Prozesse, die Sie derzeit einsetzen, ziemlich genau bestimmen.

Es gibt so viele Engpässe, die Sie in Ihren Build-, Test-, Liefer- und Deployment-Prozessen schnell identifizieren können. Und wenn sich Ihre Teams darauf konzentrieren und sich bemühen, diese nach und nach anzugehen und einige der manuellen, fehleranfälligen Prozesse zu automatisieren, werden Sie schnell eine Verbesserung der allgemeinen Software-Qualität und der Fähigkeit, häufiger zu veröffentlichen, feststellen. Ein Blick auf Ihre Testprozesse wird Sie auf den richtigen Weg bringen. Wenn Sie sich das Testen von Software ansehen und wie wichtig es für die kontinuierliche Bereitstellung ist, erkennen wir auch einen direkten Zusammenhang mit der Software-Performance.

Schnellere Feedback-Schleifen

Je weiter Ihre Teams auf diesem Weg kommen, desto größer wird der Nutzen ihrer Bemühungen werden. Sie werden schneller und früher Feedback erhalten. Diese verkürzte Feedback-Schleife ermöglicht es Ihnen, einen Fehler zu beheben, der erst vor ein paar Tagen eingeführt wurde, und nicht schon vor drei Monaten, wo das Umschalten zwischen den Kontexten die Dinge wirklich zum Stillstand bringen kann. Effizienzsteigerungen wie diese sind eines der ersten Dinge, die sich bemerkbar machen werden.

Als Entwickler kann ich die Sinnhaftigkeit und den Einfluss meiner Arbeit am besten am direkten Feedback der Benutzer der Software erkennen, an deren Entwicklung ich beteiligt bin. Und der Weg, die Anzahl der erhaltenen Feedbacks zu erhöhen, besteht darin, die Software häufiger in ihre Hände zu bekommen. Deshalb ist Automatisierung für mich enorm wertvoll. Es dreht sich alles um Geschwindigkeit und schnelleres Lernen. Wenn Sie ein Release herausgeben, sagen wir jedes Quartal, ist der Abstand zwischen dem, was Sie tun und dem Wert oder der Wirkung, an der Sie gearbeitet haben, einfach zu groß. Das tötet die Feedback-Schleife und die Vertrautheit mit dem Kunden.

Zusammenarbeit: Der nächste Engpass, den es zu überwinden gilt

Wenn Sie Ihre Tests verbessert haben und sich der kontinuierlichen Auslieferung nähern, werden Sie einen weiteren Engpass erkennen und der betrifft in der Regel die Zusammenarbeit. Wenn Sie schneller iterieren, liefern Sie jede Woche oder ein paar Mal pro Woche kleinere Software-Teile aus. Diese Zusammenarbeit zwischen Produktbesitzern, Testern, Entwicklern und dem Unternehmen kann natürlich nicht nur ein paar Mal im Quartal stattfinden.

Ihre Zusammenarbeit und Gespräche müssen im Wesentlichen genauso „kontinuierlich“ sein wie Ihre Lieferung. Dies bedeutet, dass Sie wahrscheinlich neue Wege der Zusammenarbeit, neue Prozesse und neue Tools benötigen werden. Als Mitbegründer von HipTest (jetzt CucumberStudio) ist es nicht verwunderlich, dass ich die verhaltensgesteuerte Entwicklung (BDD) als einen großartigen Ansatz zur Lösung dieses Problems betrachte. BDD „verlagert“ die Qualität in der Software nach links, indem es eine Abstimmung zwischen Geschäftsbeteiligten, Produktbesitzern, Testern und Entwicklern schafft. Eine Möglichkeit, dies zu erreichen, ist die Verwendung von Techniken wie „Beispiel-Mapping“, um als Team das Geschäftsproblem zu untersuchen und die User Story in detailliertere Geschäftsregeln und Beispiele zu zerlegen.

Jedes Beispiel wird dann in Szenarien verfeinert, die das Verhalten der erwarteten Software beschreiben. Und diese Szenarien werden verwendet, um die Entwicklung voranzutreiben. Dadurch wird sichergestellt, dass das, was entwickelt wird, auf einem Vertrag und einer Vereinbarung beruht, die frühzeitig zwischen allen wichtigen Beteiligten festgelegt wurden.

Wenn Sie von Anfang an sicherstellen können, dass Sie das Richtige, ein Feature oder eine App entwickelt haben, die den Kundenbedürfnissen entspricht und ihnen einen Mehrwert bietet, haben Sie einen enormen Vorteil gegenüber Ihrer Konkurrenz. Wir müssen wegkommen von informell definierten Anforderungen, einem fehlenden gemeinsamen Verständnis zwischen den Beteiligten sowie Tests, die erst nach der Entwicklung durchgeführt werden. Tatsächlich gefährden oder unterbinden diese vollständig alle Erfolgsaussichten für Ihr Unternehmen oder für Ihre Kunden! Heute dreht sich der Erfolg darum, Ihre Kunden dort abzuholen, wo sie sich gerade befinden, und interne Innovationen zu implementieren, die es Ihnen ermöglichen, kontinuierlich externe Innovationen zu liefern, die Ihren Kunden helfen, ihr Ziel zu erreichen.

Geschrieben von
Laurent Py

Laurent Py verfügt über 20 Jahre Erfahrung in der Softwareentwicklung und ist Senior VP of Products bei SmartBear. Er war Mitbegründer und CEO der Continuous Testing-Plattform HipTest, die 2018 von SmartBear übernommen wurde.

Kommentare

Hinterlasse einen Kommentar

avatar
4000
  Subscribe  
Benachrichtige mich zu: