Ungewöhnliche Parallelen: Kuchenbacken und Softwareentwicklung im Vergleich
Zugegeben, auf den ersten Blick mag es wenig Gemeinsamkeiten zwischen einem Softwareprodukt und Backerzeugnissen geben. Dennoch scheint gerade das Backen eines Kuchens in einer Konditorei die komplexen Abläufe in der Softwareentwicklung auf einen gemeinsamen Nenner dieser scheinbar grundverschiedenen Fachbereiche herunterzubrechen.
Beginnen wir von vorne. Der Wunsch ist da, einen Kuchen zu backen. Der erste Gedanke: Zutaten besorgen und einfach loslegen. Aber halt! Es gibt verschiedene Rezepte, Hygienevorschriften sind zu beachten, und am Ende sollte der Kuchen auch schmecken. Nicht zu vergessen ist, dass der Kuchen von einer Kundin oder einem Kunden bestellt wurde, was einen Qualitätsanspruch impliziert. Bei einem Lehrling mag ein Fehler noch auf fehlende Erfahrung zurückzuführen sein, und die Meisterin steht dafür ein, diesen auszubügeln. Doch gerade die Meisterin hat den Anspruch – und dies erwarten letztendlich auch die Geldgebenden –, dass der Kuchen meisterhaft wird, und sie gibt sich mit nichts weniger zufrieden.
Von der Idee bis zum Genuss: Parallelen zwischen dem Konditormeister und dem Softwareentwickler
In der Softwareentwicklung verhält es sich nicht anders. Es gibt Vorschriften zum Datenschutz, Sicherheitsaspekte und einen klaren Qualitätsanspruch. Dieser Anspruch ist charakteristisch für alle professionellen Schöpferinnen und Schöpfer, sei es in den Bereichen Ingenieurwesen, Handwerk oder Architektur. Sie alle erschaffen Produkte, sei es mit ihren Gedanken, ihren Händen oder einer Kombination aus beidem, die letztendlich genutzt werden sollen und für die Geld den Besitzer wechselt.
Ähnlich wie in der Konditorei, wo ein Backrezept für Apfelkuchen existiert, gibt es in der Softwareentwicklung oft verschiedene Wege zum gleichen Ziel. Es gibt unterschiedlichste Methoden, einen Apfelkuchen zu backen, und vermutlich noch mehr persönliche Interpretationen, beispielsweise von Großmüttern. Hier zeigt sich wieder eine Gemeinsamkeit!
Manchmal gibt es in beiden Domänen Anforderungen oder Rezepte, die auf den ersten Blick schwierig umzusetzen oder nicht gut miteinander zu vereinbaren sind. Es wäre beispielsweise keine gute Idee, eine Schwarzwälder Kirschtorte zu frittieren, aber man könnte die Torte mit einer karamellisierten Zuckerschicht dekorieren. Ebenso wäre es äußerst bedenklich und rechtswidrig, die persönlichen Daten von Millionen von Menschen ohne ihre Zustimmung öffentlich im Internet zugänglich zu machen. Wenn sich die Menschen jedoch freiwillig dafür anmelden und ihre Profile und Lebenswelten nur auf Anfrage sichtbar sind, könnte dies durchaus vertretbar sein.
Für praktisch jede Anfrage gibt es eine Lösung oder zumindest einen Gegenvorschlag, und dafür existiert ein passendes und bewährtes Rezept. Man muss nicht für jeden Kuchen oder jedes Softwareprodukt das Rad neu erfinden. In der Softwareentwicklung lohnt es sich oft, auf vorhandenen Grundlagen aufzubauen und keinen vollständig neuen Teig zu kreieren, beispielsweise kein völlig neues Framework für eine einfache Website zu erstellen. Dennoch sind es immer individuelle Anforderungen, die an Softwareentwickler gestellt werden. Es gibt keine Kuchen des Tages, keine Standardsoftware:
Wenn ein Projekt in die Konzeptionsphase übergeht, ähnelt dies dem Entwurf einer Hochzeitstorte. Die Zutatenliste mag sich an die Vorstellungen des Kunden und das damit verbundene grundlegende Rezept halten, aber letztendlich liegt es in der Entscheidung der Entwicklerinnen und Entwickler, wie genau dieses Rezept umgesetzt wird. Es gibt ein Ziel, und verschiedene Wege führen dorthin.
Lektionen aus dem Kuchenbacken: Was die Softwareentwicklung lernen kann
Genau wie sich Milch durch pflanzliche Produkte austauschen lässt, können auch in der Softwareentwicklung Frameworks substituiert werden. Hierbei sprechen wir über das Softwaredesign. Obwohl der Begriff auf den ersten Blick irreführend wirken mag, ergibt er im Nachhinein betrachtet Sinn: Das Design und die Struktur des Programmquellcodes (nicht im ästhetischen Sinne) werden durch die Entscheidungen bestimmt, welche Zutaten dafür verwendet werden und wie diese verarbeitet werden. Hierbei orientieren wir uns an grundlegenden Prinzipien, um den Code strukturiert und sauber zu halten, damit das “Software-Backen” ordentlich und nachvollziehbar bleibt.
Auf einer höheren Ebene spricht man dann wiederum von einer Architektur und den damit verbundenen strategischen Entscheidungen: Welche Systeme arbeiten zusammen und vor allem warum? Diese Entscheidungen müssen begründet und für alle nachvollziehbar sein, am besten dokumentiert in “Architectural Decision Records” (ADR).
Die Konditormeisterin hat sich basierend auf dem Auftrag dazu entschieden, mehrere flache Backbleche mit dem gleichen Kuchen zu verwenden. Es hätte auch ein gigantisches Backblech sein können, aber dieses wäre schwer zu transportieren. Hier kommt auch das Team ins Spiel.
Das Team arbeitet Hand in Hand, um die Herausforderungen des Auftrags zu bewältigen. Arbeitsprozessoptimierungssysteme, wie beispielsweise SCRUM, helfen dabei, den Überblick zu behalten. Sie ermöglichen die Zerlegung von Aufgaben, klare Zuweisungen und letztendlich die Erfüllung der gestellten Anforderungen. Entwickler und Designer, die ihre Arbeit meisterhaft erledigen, mögen teuer sein, aber aus gutem Grund: Qualität hat ihren Preis! Qualitätsarbeit ist jedoch nicht möglich, wenn das Zeitfenster zu knapp ist.
Eine exzellente Hochzeitstorte wird weit im Voraus der Hochzeit geplant und abgestimmt. Es gibt ausreichend Zeit, das Design zu entwerfen, Feedback einzuholen und natürlich zu backen. Die Konditormeisterin stellt sicher, dass die Qualitätsstandards erfüllt sind und würde sich nicht mit weniger zufriedengeben, bevor sie die Torte übergibt. Dies gilt auch für meisterhaft entwickelte Software: Gute Arbeit braucht Zeit. Wenn es jedoch einmal schneller gehen muss, sollten Kompromisse hinsichtlich der Funktionalität gefunden werden, ohne Abstriche bei Qualität oder Sicherheit zu machen. Software soll funktionieren und sicher sein, auch wenn bestimmte Funktionen vielleicht erst im nächsten Sprint hinzugefügt werden. Ähnlich verhält es sich mit dem Kuchen, der schmecken und bekömmlich sein soll, selbst wenn aufgrund von Zeitmangel Abstriche bei der Dekoration gemacht werden müssen.
Auch aus der Perspektive der Kundinnen und Kunden stellt sich die Frage: Möchte ich etwas Günstiges, das schnell zusammengestellt wurde, oder ein Spitzenprodukt, das durch testgetriebene Entwicklung, Feedbackschleifen und eine solide Infrastruktur robust ist und den Benutzerinnen und Benutzern eine angenehme Benutzererfahrung bietet? Es ist ratsam, sich frühzeitig darüber im Klaren zu sein, welche Aufgabe das Produkt erfüllen soll. Um die Analogie wieder aufzugreifen: Spätestens, wenn man täglich Kuchen in die Cafeteria geliefert bekommt und die Belegschaft zufriedenstellen muss, möchte man sicherstellen, dass der Kuchen auch schmeckt. Dank des agilen Kontexts lässt sich hier und dort noch etwas optimieren, aber letztendlich sollte ein bestimmter Umfang des Projekts abgegrenzt sein, ein sogenanntes Minimal Viable Product (MVP).
Kuchen und Code: Meisterhaftes Handwerk und die Kunst der kontinuierlichen Verbesserung
Damit endet der Prozess jedoch nicht. Gute Software altert ebenfalls. Die Erfahrungen aus dem gestrigen Produkt fließen bereits in den Release von morgen ein, und das Feedback von heute ist mindestens genauso wichtig. Auf diese Weise lässt sich im Laufe der Zeit ein Softwareprodukt schaffen, das sich kontinuierlich an veränderte Umstände und Anforderungen anpassen kann. Dies gilt selbstverständlich auch für die Konditorei.
Auch dort erfolgt kontinuierliche Anpassung und Weiterentwicklung. Ein Konditor muss gelegentlich völlig neue Rezepte ausprobieren, um kreativ zu bleiben und die gewonnenen Erkenntnisse für das alltägliche Geschäft mit Apfelkuchen und Hochzeitstorten zu nutzen. Die kreative Freiheit, die dabei gegeben ist, gehört zur Profession und beinhaltet auch die Verantwortung, die verfügbaren Werkzeuge bei Bedarf zu nutzen. So wird die Konditorei das Feedback der Kundschaft – sei es für den Apfelkuchen oder die Hochzeitstorte – auch für den nächsten Auftrag nutzen. Und das gilt auch beim Erstellen von Software.
Absolut, der Vergleich lässt sich nicht eins zu eins übertragen. Alles in allem geht es nicht nur um Kuchen, denn genauso gut hätte man ein Metall- oder Holzprodukt aus einer Schreinerei als Beispiel wählen können. Der Kern des Vergleichs liegt im Handwerk selbst, dessen Meisterschaft in der jeweiligen Profession sich unmittelbar auf das Endprodukt auswirkt. Dies spiegelt sich auch im Qualitätsanspruch von FASTROCKET wider, den wir täglich unter Beweis stellen und der uns in unserer Handwerkskunst am Herzen liegt. Letztendlich sollte man, egal ob als Meisterin, Geselle oder Lehrling, am Ende des Projekts mit Stolz erfüllt sein und das geschaffene Produkt guten Gewissens an die Kundschaft übergeben können.