portrait timon

Fachwissen

Die sechs Kerndimensionen einer umfassenden Technical Due Diligence

Von Timon11/24/2021

Für Investoren und Venture Capitalists (VCs) sind Digital-Tech-Startups sehr attraktiv, weil diese meist eine hohe Skalierbarkeit und damit einen hohen Return on Investment versprechen. Allgemein sind digitale Technologien heutzutage für die meisten Startup-Unternehmen eine zentrale Komponente in ihrem Businessmodell. Um möglichst wettbewerbsfähig zu sein, setzen die technologiegetriebenen Jung­un­ter­neh­men auf Web oder Mobile Apps, Artificial Intelligence (AI) oder Blockchain als Teil ihres Wertversprechens oder entlang ihrer Wertschöpfungskette.

Wer in ein Digital-Tech-Startup—oder auch in ein etabliertes Unternehmen—investiert, sollte genau prüfen, ob die digitale Technologie, welche von einem Unternehmen entwickelt oder eingesetzt wird, mit den Business Ambitionen und den Wachstumsszenarien mithalten kann. Nur weil beispielsweise die Benutzeroberfläche einer App schick und modern ausschaut, heisst das noch lange nicht, dass die zugrundeliegende Technologie richtig gewählt oder eingesetzt wurde.

Um das Risiko von Fehlinvestitionen zu minimieren, ist die systematische Prüfung der von einem Startup entwickelten oder eingesetzten Technologie vor einer allfälligen Investition unerlässlich. Zu validieren, ob diese hält, was sie verspricht, ist also eine Schlüssel-Herausforderung für Investoren und VCs.

Die Prüfung, Validierung und Bewertung der von einem Unternehmen entwickelten oder eingesetzten Technologie zu Investitionszwecken beschreibt der Begriff Technical Due Diligence (Tech DD) oder auch Software Due Diligence. Der folgende Text erläutert die sechs Kerndimensionen einer Technical Due Diligence Prüfung von Digital-Tech-Startups. Die sechs Dimensionen sind:

  1. Qualität
  2. Skalierbarkeit
  3. Sicherheit
  4. Agilität
  5. Wartbarkeit
  6. Resilienz
six dimensions of technical due diligence
six dimensions of technical due diligence

Qualität

Die Qualitätsprüfung von einer digitalen Technologie-Anwendung oder einer Softwareapplikation kann in zwei Bereiche unterteilt werden: die Qualität der Benutzerinterfaces (UIs) und die Qualität des Codes.

Die Qualität der UIs kann bereits ohne vertiefte IT Expertise beurteilt werden. Folgende Fragen helfen bei der Beurteilung des UIs:

  • Wie leicht und intuitiv ist die Applikation in der Bedienung?
  • Wie einfach ist die Navigation und wie intuitiv sind die Funktionalitäten?
  • Wie zeitgemäss und modern ist das UI Design?
  • Wie fühlt sich die Bedienung der Applikation an?
  • Was passiert, wenn ich die Applikation falsch bediene?

Die Beurteilung der Code-Qualität hingegen bedarf tiefgründiger IT Expertise und Erfahrung in Software Engineering. Es sollten Fragen wie die folgenden beantwortet werden.

  • Wie effizient sind die Prozesse und Algorithmen? Je effizienter eine Software-Applikation läuft, desto weniger Rechenleistung und Arbeitsspeicher werden benötigt. Was bei Applikationen, welche auf Servern laufen zu tieferen Betriebskosten und bei Desktopanwendungen zu glücklicheren Benutzern führt.
  • Wie ist das Errorhandling? Errors und Bugs in der Softwareentwicklung sind so sicher wie das Amen in der Kirche. Fehler können beispielsweise durch falsche Bedienung oder nicht berücksichtigte Sonderfälle verursacht werden. Eine gute Applikation kann damit umgehen, ohne dass es zum Totalausfall kommt. Fehler sollten auch immer aufgezeichnet werden (Error-Log), um deren Ursache zukünftig zu beheben.
  • Erfüllt der Code Best Practices und modernste Technologiestandards? Haben die Entwickler die richtige Technologie für ihr Anwendungsproblem gewählt und haben sie diese Technologie richtig angewendet?

Skalierbarkeit

Die Skalierbarkeit ist gerade für ambitionierte Startups von Bedeutung. Wenn die Nutzerzahlen stark ansteigen, aber die Technologie nicht mit dem Business-Wachstum mithalten kann, führt dies zu existenziellen Problemen: Primär wird das Business-Wachstum verlangsamt. Sekundär sinkt aber meist auch die Zufriedenheit der bestehenden Nutzern, da die App-Performance nachlässt.

Ein Startup muss nicht von Beginn weg eine Software-Applikation bauen, welche für Millionen von Nutzern funktioniert. Viel wichtiger ist eine modulare und skalierbare Architektur, welche mit dem Wachstum der Nutzerzahlen ausgebaut werden kann ohne dass die Applikation nochmal komplett neu gebaut werden muss. Bei Cloud-Applikationen spricht man beispielsweise von horizontaler Skalierbarkeit.

Der Aufwand für Setup und Bereitstellung einer Software-Applikation für einen neuen Kunden ist ein weiterer Punkt, welcher bezüglich Skalierbarkeit beachtet werden sollte. Bedarf die Applikation beispielsweise aufwändiger manueller Installationen und Konfigurationen (z.B. von Servern oder Datenbanken), welche bei wachsender Kundenzahl zum Nadelöhr werden? Was lässt sich möglicherweise automatisieren?

Sicherheit

Mit dem wachsenden Erfolg eines Unternehmen nimmt auch die Sichtbarkeit und damit die Wahrscheinlichkeit für Hacker-Angriffe zu. Verliert ein Unternehmen das Vertrauen seiner Kunden, weil es nicht in der Lage ist, deren Daten sicher zu verwahren, hat dies einen direkten Einfluss auf den Unternehmenswert. Im schlimmsten Fall kann es zu zusätzlichen finanziellen Schäden kommen, wenn es den Angreifern gelingt, die Funktionsfähigkeit zu sabotieren (z.B. Verschlüsselung der Datenbank durch Ransomware).

Gerade bei Startups, welche möglichst schnell mit ihrem Produkt auf den Markt wollen, werden wichtige Sicherheitsstandards vernachlässigt. Das Thema Sicherheit sollte also spätestens bei der Tech DD ausreichend Beachtung erhalten. Folgende Fragen sollten mindestens geklärt werden:

  • Welcher Standard wird für die Authentifizierung eingesetzt und wird dieser Standard richtig angewendet (z.B. OAuth 2.0, OpenID)?
  • Werden vertrauliche/sensitive Daten sicher verwahrt (z.B. Datenbank-Passwörter oder API-Keys)?
  • Enthält der Source-Code keine schützenswerten Informationen (bei Open Source Projekten) oder wird der Zugriff darauf eingeschränkt?
  • Wie anfällig ist die Software-Applikation für Attacken (z.B. Ransomware oder DDoS-Angriffe)?
  • Welche Lösungen und Libraries von Dritten werden verwendet und haben diese möglicherweise Sicherheitslücken?

Agilität

Kundenbedürfnisse können und werden sich ändern. Umstände können und werden sich ändern. Damit ändern sich die Anforderungen an eine Softwarelösung und/oder die digitalen Technologien, welche vom Startup eingesetzt werden. Die Agilität eines Unternehmens hat im Tech DD Kontext zwei Dimensionen: Erstens die technische Erweiterungsfähigkeit und zweitens die organisatorische Flexibilität.

Um die technische Erweiterungsfähigkeit zu gewährleisten, muss die Architektur der Software- und Technologielösung modular sein (siehe auch Wartbarkeit). Im Idealfall können Teile der Software-Applikation ohne Ausfallrisiko jederzeit substituiert oder neue Module mühelos hinzugefügt werden. Wenn kleine Änderungen am Code eine Vielzahl von neuen Bugs und Fehlern verursachen, dann ist die technische Erweiterungsfähigkeit nicht oder nur ungenügend gewährleistet.

Die organisatorische Flexibilität bezieht sich vor allem auf die Entwicklungs- und Innovationsprozesse. Ein gutes Mass dafür sind zum Beispiel Release-Zyklen (Häufigkeit mit der neue Funktionalität veröffentlicht wird). Viele Startups geben an, dass sie nach Lean Startup Ansätzen und mit agilen Methoden wie Scrum oder Kanban arbeiten. Damit sind sie zumindest theoretisch in der Lage, rasch auf Veränderungen zu reagieren. Doch in der Praxis findet man immer wieder auch Startups, welche diesbezüglich eher rigide sind oder die agilen Entwicklungsmethoden nicht effektiv anwenden. Mögliche Fragestellungen sind:

  • Wie werden neue Features implementiert?
  • Welche Team-Rollen und Verantwortlichkeiten werden gelebt?
  • Wie ist Entwicklung und Operations organisiert (DevOps)?

Wartbarkeit

Ein weiser Entwickler sagte mal “Software ist wie eine Pflanze”. Software wächst und muss gepflegt, respektive gewartet werden, sonst entsteht Wildwuchs und Unkraut. Wie die Software geschrieben, strukturiert und dokumentiert ist, ist massgebend für ihre Wartbarkeit. Eine Dimension von Wartbarkeit ist die technische Erweiterungsfähigkeit (siehe Agilität). Je länger die geplante Verwendungsdauer der Software ist und je weniger Experten für das Themengebiet verfügbar sind, desto wichtiger ist die Wartbarkeit. Folgende Fragen helfen die Wartbarkeit einer Softwarelösung zu beurteilen.

  • Wie gut ist die Dokumentation, vor allem von Schnittstellen?
  • Entsprechen die Schnittstellen etablierten Standards?
  • Sind automatisierte Tests vorhanden (Unit- und Integrationstests)?
  • Wurden Design-Prinzipien und etablierte Struktur-Patterns angewendet (z.B. Separation of Concerns)?
  • Sind mehrere Entwickler in der Lage die Softwarelösung zu pflegen oder bestehen Abhängigkeiten von einzelnen Knowhow-Trägern?

Resilienz

Resilienz bezeichnet die Fähigkeit von Softwarelösungen auf Störungen und Probleme, wie Ausfälle einzelner Komponenten, robust zu reagieren und für den Anwender weiterhin oder möglichst schnell wieder ein funktionierendes System zur Verfügung zu stellen. Ein resilientes System erreicht den Zustand des Totalausfalls theoretisch nie. Zu den Eigenschaften eines resilienten Systems zählen hohe Widerstandsfähigkeit, robuste Funktionsweise, schnelle Wiederherstellbarkeit der Datenbasis oder von Teilfunktionen. Beim Beurteilen der Resilienz helfen folgende Fragen:

  • Sind Teilkomponenten der Softwarelösung redundant (z.B. mehrere Instanzen/Pods von einzelnen Micro Services)?
  • Wird die Verfügbarkeit der Softwarelösung automatisch überwacht (Monitoring) und werden fehlerhafte oder abgestürzte Komponenten automatisch neu gestartet?
  • Werden regelmässig und automatisiert Backups der Datenbasis erstellt?
  • Können frühere Zustände der Applikation im Störungsfall leicht wieder hergestellt werden (z.B. Rollback-Deployments)?

Fazit

Die sechs vorgestellten Dimensionen von Technical Due Diligence (Qualität, Skalierbarkeit, Sicherheit, Agilität, Wartbarkeit, Resilienz) erlauben die von einem Digital-Tech-Startup entwickelten oder eingesetzten Technologien zu Investitionszwecken ganzheitlich zu prüfen. Die Fragestellungen, welche für jede Dimension relevant sind, werden skizziert, sind aber nicht vollständig ausgeführt. Sie dienen aber als guter Startpunkt für eine Tech DD. Die sechs Dimensionen können natürlich auch zur Prüfung eines etablierten Unternehmens und dessen digitaler Technologie herangezogen werden, wobei da das Thema Legacy-Applikationen und Modernisierung zusätzlich Beachtung verdient.


Planen Sie in ein Technologieunternehmen zu investieren?

Wir können für Sie prüfen, ob die Technologie vielversprechend ist.

Reden wir!