Umgang mit technischen Schulden im Startup-Umfeld

Theoretischer Hintergrund

Der Begriff der technischen Schulden bezeichnet Code, der zwar funktioniert, dessen Implementierung allerdings technisch nicht einwandfrei ist und deshalb in Zukunft dazu neigt, höhere Kosten bei Wartung oder Erweiterung zu verursachen. Daruber hinaus konnen technische Schulden allerdings auch erst im Verlauf der Zeit ungeplant entstehen beispielsweise durch Abhangigkeiten zu veralteten Bibliotheken oder anderer Dritt-Software.

Beispiele dafür sind: Unzureichende Dokumentation, fehlende Tests, Verstöße gegen Programmierkonventionen, Nicht-Einhalten der Architektur oder suboptimale Architektur.

Fundamental zu unterscheiden ist dabei zwischen der bewussten Entscheidung technische Schulden aufzunehmen, um schneller Funktionalität zu schaffen, und der unbewussten Aufnahme beispielsweise zu Beginn eines Projekts, wenn der perfekte Lösungsansatz noch nicht bekannt ist.

Motivation

Obwohl sich die Metapher sehr großer Beliebtheit erfreut, gibt es nur wenig qualitative Forschung dazu in der Praxis. Also zu Fragestellungen wie: Wann und warum werden bewusst oder unbewusst technische Schulden aufgenommen? Aus welchen Gründen entscheidet man sich für oder gegen ein Refactoring, das technische Schulden abbauen könnte? Wie genau gestalten sich die Entscheidungsprozesse und Diskussionen zu dem Thema? Welche verschiedenen Perspektiven gibt es auf das Thema abhängig von der jeweiligen Rolle (Entwickler, Teamleiter, Architekten, Tester, Entscheidungsträger, etc.)?

In Startups ist zu diesen Fragestellungen mit einer ganz besonderen Dynamik zu rechnen, da diese unter einem hohen Druck stehen schnell Funktionalität zu schaffen. So wäre es zum Beispiel plausibel, dass ein Startup vor gesicherter Finanzierung technische Schulden aufnimmt, um Zeit und Budget zu sparen. Sobald die Finanzierung gesichert und langfristiger geplant werden kann, wäre ein Abbau von technischen Schulden zu erwarten.

In dieser Arbeit soll sich genau solchen Fragestellungen in Bezug auf Startups gewidmet werden: Wie bewusst sich Software-Startups den Vor- und Nachteilen von technischen Schulden? Verändert sich der Umgang mit technischen Schulden in Abhängigkeit von der Phase des Startups? (Hypothese: Ja, auf jeden Fall.) Welchen Einfluss hat die technische Expertise der Gründer und Entscheidungsträger auf den Umgang mit technischen Schulden?

Methodik der Arbeit

Im Rahmen dieser Arbeit sollen Fallstudienen idealerweise mit min. 2 Startups durchgeführt werden. Ziel soll ein möglichst tiefer Einblick in die Denkweise, die Prozesse, Diskussionen und Entscheidungen rund um das Thema der technischen Schulden in mehreren Startups sein. Dafür lautet der grobe Plan:
  • Interviews (ca. 30-60 Minuten) mit möglichst vielen Prozessbeteiligten führen
  • Beiwohnen von allgemeinen Teammeetings / Standups und Diskussionen und Entscheidungsprozesse rund um die Thematik
  • Wenn möglich Zugriff auf die Code-Basis (oder Teile davon) erhalten
Die Hoffnung lautet natürlich, dass ich im Rahmen der Fallstudie über irgendeinen besonders spannenden Aspekt stolpere, den ich gerne genauer unter die Lupe nehmen möchte. Dementsprechend wäre dann die Möglichkeit diesem nachzugehen, im Rahmen weiterer Interviews wünschenswert. Idealerweise würde ich ein Startup über einen Zeitraum von 6-8 Wochen (oder sogar länger) begleiten.

Zweites und drittes Standbein

Da es aufgrund der aktuellen Krise schwierig ist Unternehmen für die Zusammenarbeit zu gewinnen sind folgende Nebenarme der Forschung angedacht:
  1. Interviews mit Unternehmensberatern (aus meiner Firma), die mehrere Startups in Bezug auf die dahinterliegende Technik geprüft haben.
  2. Verwendungen und Evaluation von Analytics-Methoden zur automatischen Identifizierung von technischen Schulden.

Verwandte Arbeiten

  • Umfrage zum Umgang mit technischen Schulden unter 86 Startups
    E. Klotins, M. Unterkalmsteiner, P. Chatzipetrou, T. Gorschek, R. Prikladnicki, N. Tripathi, and L. B. Pompermaier. Exploration of technical debt in startups. In F. Paulisch and J. Bosch, editors, Proceedings of the 40th International 23 Conference on Software Engineering: Software Engineering in Practice, ICSE (SEIP) 2018, Gothenburg, Sweden, May 27 - June 03, 2018, pages 75{84. ACM, 2018.

  • 16 Interviews mit Angehörigen von 7 unterschiedlichen Startups
    T. Besker, A. Martini, R. E. Lokuge, K. Blincoe, and J. Bosch. Embracing technical debt, from a startup company perspective. In 2018 IEEE International Conference on Software Maintenance and Evolution, ICSME 2018, Madrid, Spain, September 23-29, 2018, pages 415{425. IEEE Computer Society, 2018.

  • 8 Interviews mit CTOs oder CEOs aus Startups in oder kurs vor der Wachstumsphase
    O. Cico, R. M. de Souza, L. Jaccheri, A. Nguyen Duc, and I. Machado. Startups transitioning from early to growth phase -a pilot study of technical debt perception. 11 2020.