Der Product Manager ist tot. Es lebe der Product Developer.
Die Person, die mit Figma-Entwürfen ins Meeting kommt und sagt 'baut das', hat keine Zukunft mehr. KI hat den Abstand...
15 Min. Lesezeit
31.12.2025, Von Stephan Schwab
Bestimmte Praktiken der Software-Entwicklung mögen rein technisch klingen, doch jede einzelne löst ein konkretes geschäftliches Problem — Risiken reduzieren, Auslieferung beschleunigen, Wissen bewahren. Durch diese Praktiken entwickeln Entwickler tiefes Wissen über das Geschäft selbst und gehen weit über die veraltete Vorstellung von „Codierern" hinaus, die fremde Ideen abtippen. Ein Verständnis dessen, was diese Praktiken bewirken, hilft Führungskräften, klug zu investieren und die Expertise ihrer technischen Teams anzuerkennen.
Wenn Entwickler Praktiken wie „testgetriebene Entwicklung” oder „kontinuierliche Integration” erwähnen, kann die Terminologie wie technischer Jargon klingen, der mit geschäftlichen Belangen nichts zu tun hat. Doch jede Praktik entstand, weil echte Organisationen schmerzhafte Probleme erlebten — fehlgeschlagene Releases, Experten, die kritisches Wissen mitnahmen, Systeme, deren Änderung immer teurer wurde. Diese Kommunikationslücke zu überbrücken zwischen technischen und nicht-technischen Perspektiven bleibt eine der wichtigsten Herausforderungen in Software-Organisationen.
Diese Praktiken wurden nicht in der Theorie erfunden. Sie wurden von Praktikern entdeckt, die echte Systeme bauten und lernten — oft schmerzhaft — was tatsächlich funktioniert. Diesen Ursprung zu verstehen hilft Führungskräften, technische Praktiken als Investitionen mit messbaren Erträgen zu sehen statt als mysteriöse Rituale, auf denen Entwickler bestehen.
Was folgt, ist ein Leitfaden zu den wichtigsten Praktiken, welche geschäftlichen Probleme sie lösen und wie man erkennt, ob die Teams sie effektiv anwenden.
Was es ist: Zwei Entwickler arbeiten gemeinsam an einem Computer und arbeiten aktiv am selben Code.
Das geschäftliche Problem, das es löst: Wissenskonzentration und das Risiko, wenn Schlüsselpersonen ausfallen.
In den meisten Organisationen lebt kritisches Wissen in einzelnen Köpfen. Der Entwickler, der das Zahlungssystem gebaut hat, kennt Geheimnisse, die keine Dokumentation erfasst. Wenn er geht — und er wird irgendwann gehen — geht sein Wissen mit ihm. Das verbleibende Team steht vor Code, den es nicht versteht, was Änderungen riskant und langsam macht.
Pair Programming verbreitet Wissen kontinuierlich. Zwei Personen verstehen immer jedes Stück Code. Fragen werden sofort beantwortet, statt auf Meetings zu warten. Junior-Entwickler lernen direkt von erfahrenen Kollegen, was ihr Wachstum beschleunigt.
Der geschäftliche Wert: Reduzierte Abhängigkeit von bestimmten Personen, schnelleres Onboarding, weniger Wissenslücken, geringeres Risiko durch Fluktuation.
Was nicht-technische Führungskräfte beobachten können: Fragen Sie, wie viele Personen Ihre kritischsten Systeme verstehen. Wenn die Antwort eins oder zwei ist, haben Sie ein Risiko, das Pair Programming direkt adressiert.
Was es ist: Entwickler schreiben automatisierte Tests, bevor sie den Code schreiben, den diese Tests verifizieren, und nutzen die Tests, um das Design der Software selbst zu leiten.
Das geschäftliche Problem, das es löst: Schlechte Designentscheidungen, die im Laufe der Zeit Kosten ansammeln, und Unsicherheit darüber, ob die Software tatsächlich funktioniert.
Trotz ihres Namens geht es bei der testgetriebenen Entwicklung nicht primär um das Testen. Sie produziert zwar Tests, aber das ist fast ein Nebeneffekt. Der Hauptzweck ist Design. Zuerst einen Test zu schreiben zwingt Entwickler, aus der Perspektive desjenigen zu denken, der den Code benutzt, bevor sie ihn schreiben. Dieses Outside-in-Denken führt zu saubereren, besser nutzbaren Designs.
Eine Analogie aus der Architektur hilft, dies zu veranschaulichen. Ein Architekt stellt sich nicht einfach ein Gebäude vor und zeichnet es dann. Er skizziert Möglichkeiten, überlegt, wie sich Menschen durch Räume bewegen werden, testet Ideen gegen Einschränkungen und verfeinert sein Denken durch das Zeichnen selbst. Die Zeichnungen sind nicht nur Dokumentation bereits getroffener Entscheidungen — sie sind Werkzeuge zum Denken und Entdecken.
Testgetriebene Entwicklung funktioniert genauso. Jeder Test fragt: „Wenn dieser Code existierte, wie würde ich ihn nutzen wollen? Was würde ihn klar und bequem machen?” Der Test wird zu einem konkreten Experiment, das Designprobleme aufdeckt, bevor der Code geschrieben wird. Wenn der Test umständlich zu schreiben ist, ist das Design wahrscheinlich umständlich. Wenn der Test komplexes Setup erfordert, wird der Code wahrscheinlich komplex zu benutzen sein.
TDD folgt einem einfachen Rhythmus: einen kleinen Test schreiben, der fehlschlägt, gerade genug Code schreiben, um ihn bestehen zu lassen, dann das Design verbessern, während die Tests weiterhin bestehen. Dieser Zyklus dauert typischerweise Minuten, nicht Stunden. Jeder Zyklus ist ein kleines Experiment, das Verständnis bestätigt und die nächste Frage aufzeigt.
Dieser inkrementelle Ansatz hat tiefgreifende Auswirkungen auf die Designqualität. Große Vorab-Designs verpassen oft wichtige Details, die erst während der Implementierung offensichtlich werden. Wenn Probleme auftauchen, ist bereits erhebliche Arbeit in eine fehlerhafte Richtung investiert. TDD bringt diese Probleme sofort ans Licht, während sie noch günstig zu beheben sind.
Dieser Rhythmus der Entdeckung funktioniert am besten als kollaborativer Dialog zwischen Entwicklern und fachlichen Experten. Jeder Test beginnt mit einer Frage: „Wenn diese Situation eintritt, was soll passieren?” Die Antwort kommt von jemandem, der die Geschäftsdomäne versteht — einem Produktmanager, einem fachlichen Spezialisten oder einem erfahrenen Nutzer.
Dieser Dialog verwandelt Entwickler in etwas weitaus Wertvolleres, als die veraltete Vorstellung von „Codierern” nahelegt. Dieser Begriff gehört in die Ära der Lochkarten, als Maschinenbediener Spezifikationen abtippten, die andere erstellt hatten. Moderne Software-Entwicklung hat damit keine Ähnlichkeit mehr. Entwickler übersetzen nicht die Ideen anderer in eine Fremdsprache. Sie entwerfen aktiv Lösungen, erkunden Einschränkungen und treffen unzählige Entscheidungen, die tiefes Verständnis des geschäftlichen Problems erfordern.
Durch den Dialog bei TDD sammeln Entwickler bemerkenswerte fachliche Expertise an. Sie sehen Randfälle, die fachliche Experten nie bedacht haben. Sie verstehen die Interaktionen zwischen verschiedenen Teilen des Geschäfts, die Spezialisten in einzelnen Bereichen übersehen könnten. Sie wissen nicht nur, was das System tut, sondern warum es das tut und was passiert, wenn sich die Umstände ändern.
Dieses angesammelte Wissen macht erfahrene Entwickler außerordentlich wertvoll — nicht trotz ihres technischen Fokus, sondern gerade deswegen. Sie sehen das Geschäft durch eine einzigartig umfassende Linse: jede Regel, jede Ausnahme, jede Interaktion kodiert in Tests, die Verständnis beweisen. Diese intrinsische Motivation — der Stolz, die Neugier und die Sorgfalt, die Entwickler antreibt, tiefgehend zu verstehen — ist eines der wertvollsten Vermögenswerte jeder Organisation.
Software-Entwicklung ist grundlegend eine Designdisziplin — iterativ, erkundend und kollaborativ. Testgetriebene Entwicklung unterstützt diese Natur, indem sie sofortiges Feedback zu Designentscheidungen liefert. Wenn Code schwer zu testen ist, ist das meist ein Signal, dass das Design Probleme hat: zu viele Verantwortlichkeiten an einer Stelle, zu viel Kopplung zwischen Komponenten, unklare Grenzen.
Entwickler mit TDD-Erfahrung lernen, diese Signale zu lesen. Schwierige Tests sind nicht nur unbequem — sie sind diagnostische Information über das Design. Diese Feedback-Schleife beschleunigt das Lernen und führt im Laufe der Zeit zu saubereren Architekturen.
Die durch TDD erstellten Tests dienen als lebende Dokumentation. Anders als geschriebene Spezifikationen, die mit der Realität aus dem Takt geraten, müssen Tests genau widerspiegeln, wie sich der Code verhält, oder sie scheitern. Neue Teammitglieder können die Tests lesen, um zu verstehen, was das System tut und warum. Wenn Fragen zum beabsichtigten Verhalten auftauchen, liefern die Tests definitive Antworten.
Gut geschriebene Tests lesen sich wie Geschäftsspezifikationen. Jeder, der Deutsch versteht, sollte einen Test anschauen und erfassen können, was er verifiziert: „Wenn ein Kunde eine Bestellung über 500 € aufgibt, ist der Versand kostenlos.” „Wenn eine Rechnung mehr als 30 Tage überfällig ist, sende eine Erinnerung.” „Wenn der Lagerbestand unter die Nachbestellschwelle fällt, erstelle eine Bestellanforderung.”
Tests, die Programmierkenntnisse zum Entschlüsseln erfordern, testen Implementierungsdetails statt Geschäftsverhalten. Diese Unterscheidung ist wichtig. Implementierungsdetails ändern sich häufig, wenn Entwickler den Code verbessern; Geschäftsregeln ändern sich nur, wenn sich das Geschäft ändert. Tests, die an Geschäftsverhalten verankert sind, bleiben stabil und aussagekräftig. Tests, die an der Implementierung verankert sind, werden zu Wartungslasten, die bei jeder Verbesserung brechen.
Diese Lesbarkeit hat eine praktische Implikation: Geschäftliche Stakeholder können Tests überprüfen. Sie können bestätigen, dass die kodierten Regeln ihrem Verständnis entsprechen. Sie können Lücken erkennen, wo wichtige Szenarien nicht abgedeckt sind. Die Testsuite wird zu einer gemeinsamen Sprache zwischen Geschäfts- und technischen Teams — präzise genug zur Ausführung, klar genug zur Diskussion.
Diese lebende Dokumentation hat erheblichen geschäftlichen Wert. Organisationen kämpfen routinemäßig mit Wissensverlust, wenn ursprüngliche Entwickler gehen. Systeme werden zu mysteriösen Blackboxes, die niemand zu ändern wagt. Eine umfassende Testsuite ist eine Investition in langfristige Wartbarkeit — sie bewahrt nicht nur, was der Code tut, sondern die Absichten dahinter.
Über Design hinaus schafft TDD ein Sicherheitsnetz, das sichere Modifikationen ermöglicht. Jede Änderung kann in Sekunden gegen Hunderte oder Tausende automatisierter Prüfungen verifiziert werden. Probleme tauchen sofort auf, während der Entwickler sich noch erinnert, was er geändert hat und warum.
Dieses Sicherheitsnetz gewinnt im Laufe der Zeit an Wert. Früh in einem Projekt sind Änderungen einfach, unabhängig vom Testen. Aber wenn Systeme wachsen, wird ungetesteter Code zunehmend gefährlich zu modifizieren. Teams werden langsamer, konservativer und vermeiden es, irgendetwas anzufassen, das funktioniert. Getesteter Code bleibt formbar und erlaubt dem System, sich mit wechselnden Geschäftsanforderungen weiterzuentwickeln.
Der geschäftliche Wert: Bessere Designs, die weniger Wartung kosten, lebende Dokumentation, die Wissensverlust verhindert, Vertrauen in Änderungen, das kontinuierliche Verbesserung ermöglicht, und Beweis, dass Software wie beabsichtigt funktioniert.
Was nicht-technische Führungskräfte beobachten können: Bitten Sie darum, die Testsuite laufen zu sehen. Beobachten Sie, wie Hunderte oder Tausende von Prüfungen in Sekunden bestehen. Fragen Sie, wie lange es dauert zu verifizieren, dass eine Änderung nichts kaputt gemacht hat. Fragen Sie, ob Entwickler sich sicher fühlen, unbekannte Teile des Systems zu modifizieren. Die Antworten zeigen, ob TDD nachhaltige Auslieferung ermöglicht.
Was es ist: Alle Entwickler integrieren ihre Arbeit mehrmals täglich in eine gemeinsame Codebasis, wobei automatisierte Tests jede Integration verifizieren.
Das geschäftliche Problem, das es löst: Integrationsprobleme, die zu spät entdeckt werden, um sie günstig zu beheben.
Kontinuierliche Integration stellt eine fundamentale Abkehr vom traditionellen Ansatz dar: Entwickler arbeiten wochenlang getrennt und versuchen dann, ihre Arbeit zusammenzuführen. Diese „Integrationsphase” zeigt routinemäßig, dass Teile nicht zusammenpassen. Was wie paralleler Fortschritt aussah, war tatsächlich parallele Divergenz. Je später man Inkompatibilitäten entdeckt, desto teurer ist ihre Behebung.
Kontinuierliche Integration erzwingt, dass diese Entdeckungen sofort passieren. Wenn Arbeit mehrmals täglich integriert wird, tauchen Probleme innerhalb von Stunden nach ihrer Entstehung auf. Sie werden behoben, während der Kontext noch frisch ist, während die Änderung noch klein ist, während die Kosten minimal sind.
Der geschäftliche Wert: Vorhersehbare Integration, frühere Problemerkennung, reibungslosere Releases, weniger Notfall-Reparaturen.
Was nicht-technische Führungskräfte beobachten können: Fragen Sie, wie oft Code integriert wird. Wenn die Antwort Branches beinhaltet, die wochenlang existieren, sammeln Sie Integrationsrisiko an, das als Überraschung ankommen wird.
Was es ist: Kontinuierliche Verbesserung der Codestruktur ohne Änderung des Verhaltens.
Das geschäftliche Problem, das es löst: Systeme, die progressiv schwerer und langsamer zu modifizieren werden.
Jedes Geschäft ändert sich. Märkte verschieben sich, Anforderungen entwickeln sich, Chancen entstehen. Software muss sich ändern, um diese Verschiebungen zu unterstützen. Aber Software, die nie gewartet wird, wird starr, fragil und langsam zu modifizieren. Jede Änderung dauert länger als die vorherige. Schließlich dauern Änderungen, die Tage dauern sollten, Monate.
Refactoring ist vorbeugende Wartung. Es hält Code sauber, gut organisiert und anpassungsfähig. So wie ein gut gewartetes Gebäude renoviert statt abgerissen werden kann, kann gut gewarteter Code geändert statt ersetzt werden.
Der geschäftliche Wert: Nachhaltige Geschwindigkeit über die Zeit, schnellere Reaktion auf Marktveränderungen, aufgeschobene Neuschreibungen, niedrigere langfristige Kosten.
Was nicht-technische Führungskräfte beobachten können: Fragen Sie, wie lange eine „einfache Änderung” jetzt im Vergleich zu vor zwei Jahren dauert. Wenn die Antwort „viel länger” lautet, zahlen Sie die Kosten, die Refactoring verhindert.
Was es ist: Software in kleinen Inkrementen veröffentlichen, oft mehrmals täglich.
Das geschäftliche Problem, das es löst: Das Risiko, das sich in großen, seltenen Releases ansammelt.
Große Releases sind gefährlich. Wenn man viele Dinge auf einmal ändert, ist es schwer festzustellen, welche Änderung ein Problem verursacht hat. Ein Rollback bedeutet, alles zu verlieren. Die Einsätze sind hoch, also werden Releases zu stressigen Ereignissen, die umfangreiche Koordination und Notfallpläne erfordern.
Kleine Releases kehren diese Dynamik um. Wenn man eine kleine Änderung veröffentlicht, weiß man genau, was sich geändert hat. Wenn etwas kaputt geht, weiß man, was es verursacht hat. Ein Rollback ist trivial, weil man nur ein kleines Stück entfernt. Die Einsätze sind niedrig, also werden Releases zur Routine.
Der geschäftliche Wert: Schnellere Markteinführung, geringeres Release-Risiko, einfachere Fehlersuche, Fähigkeit, schnell zu experimentieren und zu lernen.
Was nicht-technische Führungskräfte beobachten können: Fragen Sie nach dem letzten Release. War es ein ruhiges Routine-Ereignis oder eine stressige Koordinationsherausforderung? Die Antwort zeigt, ob Sie oft genug veröffentlichen.
Was es ist: Jeder Entwickler kann jeden Teil der Codebasis modifizieren.
Das geschäftliche Problem, das es löst: Engpässe durch territoriales Code-Eigentum.
In vielen Organisationen hat jeder Codebereich einen „Eigentümer”, der alle Änderungen genehmigen oder durchführen muss. Das erzeugt Warteschlangen. Arbeit wartet, weil der Eigentümer beschäftigt ist, im Urlaub oder anderweitig fokussiert. Prioritäten können nicht verschoben werden, weil die Person, die diesen Code besitzt, nicht verfügbar ist.
Kollektives Eigentum beseitigt diese Engpässe. Jeder qualifizierte Entwickler kann an jedem Teil des Systems arbeiten. Arbeit fließt zu verfügbaren Personen, statt auf bestimmte zu warten. Das Team wird flexibel statt durch individuelle Zeitpläne eingeschränkt.
Der geschäftliche Wert: Schnellere Auslieferung, reduzierte Wartezeiten, flexible Ressourcenzuweisung, geringere Personenabhängigkeit.
Was nicht-technische Führungskräfte beobachten können: Fragen Sie, was passiert, wenn der Datenbankexperte im Urlaub ist. Wenn die Arbeit stoppt, haben Sie einen Eigentums-Engpass, den kollektives Eigentum adressiert.
Was es ist: Ein Geschäftsvertreter, der dem Entwicklungsteam für sofortige Fragen und Entscheidungen zur Verfügung steht.
Das geschäftliche Problem, das es löst: Das Falsche bauen, weil Fragen unbeantwortet bleiben.
Entwickler stehen ständig vor kleinen Entscheidungen, die geschäftliche Ergebnisse beeinflussen. Soll dieser Randfall so oder so behandelt werden? Was ist wichtiger: Geschwindigkeit oder Genauigkeit bei dieser Berechnung? Wenn Benutzer dieses unerwartete Ding tun, was soll passieren?
Ohne sofortigen Zugang zu Geschäftswissen warten Entwickler entweder (was den Fortschritt blockiert) oder raten (was falsche Ergebnisse riskiert). Beides ist nicht gut. Einen Kunden verfügbar zu haben bedeutet, dass Fragen sofort beantwortet werden, wobei geschäftliche Prioritäten jede Entscheidung informieren.
Der geschäftliche Wert: Schnellerer Fortschritt, bessere Ausrichtung an Geschäftsanforderungen, weniger kostspielige Missverständnisse, reduzierte Nacharbeit.
Was nicht-technische Führungskräfte beobachten können: Fragen Sie Entwickler, wie sie Fragen beantwortet bekommen. Wenn die Antwort formale Anfragen, geplante Meetings oder „wir raten einfach” beinhaltet, zahlen Sie die Kosten, die Kundenverfügbarkeit verhindert.
Was es ist: Die einfachste Lösung implementieren, die funktionieren könnte, spekulative Komplexität vermeiden.
Das geschäftliche Problem, das es löst: Verschwendete Investitionen in Funktionen und Strukturen, die sich nie als notwendig erweisen.
Entwickler bauen oft für vorgestellte zukünftige Bedürfnisse. „Wir könnten Millionen von Benutzern handhaben müssen.” „Wir könnten mehrere Währungen unterstützen müssen.” „Wir könnten mit Systemen integrieren müssen, die noch nicht existieren.” Jedes „könnten” verursacht jetzt Kosten für unsicheren zukünftigen Nutzen.
Einfaches Design kehrt dies um. Baue, was du weißt, dass du brauchst. Halte das Design flexibel, damit du hinzufügen kannst, was sich als notwendig erweist. Investiere nicht in Spekulation.
Der geschäftliche Wert: Niedrigere Entwicklungskosten, schnellere anfängliche Auslieferung, reduzierte Wartungslast, Flexibilität, auf tatsächliche Bedürfnisse statt auf vorgestellte zu reagieren.
Was nicht-technische Führungskräfte beobachten können: Fragen Sie nach Funktionen, die für „zukünftige Bedürfnisse” gebaut wurden, die sich nicht materialisiert haben. Jede repräsentiert eine Investition, die einfaches Design vermieden hätte.
Keine dieser Praktiken existiert isoliert. Testgetriebene Entwicklung macht Refactoring sicher, indem sie unbeabsichtigte Änderungen auffängt. Kontinuierliche Integration ermöglicht kleine Releases, indem sie sicherstellt, dass die Codebasis gesund bleibt. Pair Programming ermöglicht kollektives Eigentum, indem es Wissen verbreitet. Einfaches Design reduziert die Testlast, indem es Systeme verständlich hält.
Organisationen, die in diese Praktiken investieren, sehen kumulative Vorteile: schnellere Auslieferung, weniger Überraschungen, geringere Fluktuation, nachhaltige Geschwindigkeit über die Zeit. Organisationen, die sie überspringen, zahlen kumulative Kosten: langsamere Auslieferung, mehr Notfälle, frustrierte Entwickler, wachsende technische Schulden. Diese Praktiken bilden den Motor für vorhersehbare Software-Auslieferung — sie verwandeln Entwicklung von einem Hochrisiko-Glücksspiel in eine zuverlässige Quelle geschäftlichen Werts.
Wenn Sie eine nicht-technische Führungskraft sind, die für Software-Auslieferung verantwortlich ist:
Verstehen Sie den Business Case. Jede Praktik oben hat direkten geschäftlichen Wert. Wenn Entwickler Zeit für Testen, Refactoring oder Pair Programming anfragen, schlagen sie Investitionen mit messbaren Erträgen vor.
Stellen Sie gute Fragen. Sie müssen nicht verstehen, wie man Pair Programming macht — Sie müssen verstehen, welches geschäftliche Problem es löst und wie man erkennt, ob Ihre Teams es effektiv praktizieren.
Finanzieren Sie technische Exzellenz. Teams, die diese Praktiken überspringen, sparen kein Geld — sie leihen gegen zukünftige Geschwindigkeit zu bestrafenden Zinssätzen. Führen ohne Kontrolle bedeutet, Systeme zu entwerfen, die die Wahrheit durch automatisierte Tests, Pipelines und Monitoring sagen — nicht durch Statusberichte.
Beziehen Sie Entwickler in Entscheidungen ein. Die Praktiken, die funktionieren, entstehen von den Menschen, die die Arbeit tun. Technische Expertise verdient denselben Respekt, den Sie jedem anderen professionellen Bereich entgegenbringen würden.
Wenn Sie das nächste Mal die Software-Auslieferung überprüfen, können diese Fragen zeigen, ob Ihre Organisation das technische Fundament für zuverlässige Ergebnisse hat:
Die Antworten zeigen, ob Ihre Organisation das technische Fundament für zuverlässige Auslieferung hat.
Diese Praktiken sind nicht mysteriös. Sie sind bewährte Ansätze für Probleme, mit denen jede Software-Organisation konfrontiert ist. Die Entwickler, die Ihre Software bauen, haben hart erkämpfte Expertise angesammelt — nicht nur in Technologie, sondern in Ihrem Geschäft selbst. Diese Praktiken zu verstehen hilft Ihnen, klug zu investieren, die richtigen Fragen zu stellen und den Wert anzuerkennen, den Ihre technischen Teams einbringen.
Sprechen wir über Ihre reale Situation. Möchten Sie Auslieferung beschleunigen, technische Blockaden beseitigen oder prüfen, ob eine Idee mehr Investition verdient? Ich höre Ihren Kontext und gebe 1-2 praktische Empfehlungen. Ohne Pitch, ohne Verpflichtung. Vertraulich und direkt.
Zusammenarbeit beginnen