Architektur für Startups

Der Aufbau eines Startups ist eine ganz eigene Herausforderung. Die wichtigste Aufgabe besteht darin, einen Platz für Ihre Innovation als Produkt oder Dienstleistung auf dem Markt zu finden. In diesem Prozess müssen mehrere Annahmen getestet werden, die mit der Innovation in Verbindung stehen. Ein erfolgreiches Startup muss diese Annahmen iterieren und selbst wachsen und skalieren, sobald das Produkt an Product-Market Fit gewinnt. Wenn es seinen Platz gefunden hat, muss das Startup wachsen, um die Marktanforderungen zu erfüllen.

In den unterschiedlichen Phasen eines Startups müssen Entwickler*innen, Architekt*innen und CTOs (Chief Technical Officers) auch an unterschiedlichen Entwicklungsphasen arbeiten. Diese Phasen erfordern grundverschiedene Ansätze und unterschiedliche Technologien. Ein Teil der Aufgabe besteht darin, festzustellen, in welcher Phase sich Ihr Startup befindet. Wählen Sie die Technologien und Architekturen aus, die für diese Phase geeignet sind.

Innovationsphasen

Kent Beck beschreibt die Innovation von Softwareprodukten als dreistufigen Prozess. Die drei Phasen lauten Explore, Expand und Extract (Erforschen, Expandieren und Extrahieren). Stellen Sie sich die verschiedenen Teile dieses Prozesses als Graph vor:

Graph mit den Phasen „Explore“, „Expand“ und „Extract“ der Produktentwicklung

Ein Graph mit einer Sigmoidkurve für die Y-Achse „Certainty/Investment/Risk of Change“ und die X-Achse „Time“. In diesem Graphen sind drei Bereiche hervorgehoben: der Teil „Explore“ vor dem Aufwärtstrend, der am stärksten wachsende Teil der Sigmoidkurve „Expand“ und das flache Maximum „Extract“.

  • Die Explore-Phase beginnt mit einer niedrigen Steigung. In dieser Phase versuchen Sie herauszufinden, was funktioniert. Die Sicherheit ist gering, Sie investieren nur kleine Beträge, und das Risiko durch vorgenommene Änderungen ist ebenfalls gering.

  • Irgendwann steigt der Graph schneller an. Dieses schnelle Wachstum ist die Expand-Phase. Ihre Sicherheit steigt deutlich, Sie investieren deutlich mehr und sind sich der Risiken viel bewusster.

  • Schließlich erreicht der Graph ein flaches Maximum, und Sie gelangen in die Extract-Phase. Die Sicherheit, die Investitionen und das Risiko einer Änderung sind hoch, aber die Wachstumsrate hat ein stabiles Niveau erreicht.

Erkunden

Wenn sich Ihr Startup in der Explore-Phase befindet, dürfen Sie nur wenig Zeit und Aufwand in viele verschiedene Produktideen investieren. Sie werden feststellen, dass die meisten Ideen nicht die richtige Wahl sind. Nur durch Iteration und Dazulernen kann ein guter Product-Market Fit erzielt werden. Indem Sie viele kleine Risiken eingehen, versuchen Sie, eine lohnenswerte Produktidee zu finden.

Diese Phase erfordert Disziplin. Oft wird zu viel in eine Idee investiert, die mit weniger Zeit- und Arbeitsaufwand getestet werden könnte. Technolog*innen gehen besonders häufig in diese Falle. Wenn Sie Architekturentscheidungen treffen möchten, die die Untersuchung erleichtern, bedenken Sie, dass Sie sich erst in der Explore-Phase befinden. Sie wissen noch nicht, ob die aktuelle Produktidee sich durchsetzen kann.

Aus Architektursicht sollten Dienste ausgewählt werden, die die Geschwindigkeit, die Kosten und die Optionalität optimieren. Verwenden Sie verwaltete Dienste und PaaS-Angebote (Platform-as-a-Service) wie Azure App Service, um schnell loszulegen, ohne sich Gedanken über komplexe Infrastrukturen machen zu müssen. Wählen Sie während der Erkundung kostenlose Tarife und kleinere Instanzgrößen, um die Kosten zu steuern. Container unterstützen die Entwicklung mit beliebigen Tools, die für Sie sinnvoll sind, und bieten flexible Bereitstellungsoptionen für die Zukunft.

Erstellen Ihres ersten Stapels

Genau wie bei Ihrer ersten Produktversion sollte Ihr erster Technologiestapel stark auf die Untersuchung von Daten ausgelegt sein. Das bedeutet, dass der Technologiestapel die schnelle Produktiteration ohne überschüssigen Aufwand erleichtern sollte. Sie sollten keine Zeit und keinen Aufwand in Infrastrukturen oder Architekturen investieren, die für die Beantwortung der aktuellen Fragen nicht erforderlich sind.

Während der Explore-Phase müssen Sie die Geschwindigkeit, die Kosten und die Optionalität optimieren. Bei der Geschwindigkeit geht es darum, wie schnell Sie eine Idee entwickeln und mit dieser vorankommen oder mit der nächsten Idee fortfahren. Die Kosten geben an, wie viel Sie für die Ausführung Ihrer Infrastruktur ausgeben. Die Optionalität beschreibt, wie schnell Sie die Richtungen in der aktuellen Architektur ändern können.

Es ist wichtig, Kosten, Geschwindigkeit und Optionalität in einem ausgewogenen Verhältnis zu halten. Ein zu großer Fokus auf die Kosten schränkt die Geschwindigkeit und Optionalität ein. Ein zu großer Fokus auf die Geschwindigkeit kann zu höheren Kosten und weniger Optionen führen. Ein Design mit zu vielen Optionen erhöht die Komplexität. Dadurch steigen die Kosten, und die Geschwindigkeit wird verringert.

Erwägen Sie die Verwendung unseres vorgeschlagenen ersten Technologiestapels. Diese Architektur verwendet PaaS-Dienste, um die Implementierung zu vereinfachen, kann im kleinen Rahmen gestartet werden und verwendet Container- und Open-Source-Technologien, die im Zuge Ihrer Weiterentwicklung mühelos in verschiedenen Technologiestapeln bereitgestellt werden können.

Expand

Sobald Ihr Startup durch die Explore-Phase an Wachstum gewinnt, müssen Sie auf Expansion umschwenken. Sie konzentrieren sich auf die Beseitigung der Hindernisse für das weitere Wachstum Ihres Produkts und Unternehmens. Aus technischer Sicht lösen Sie Herausforderungen im Infrastrukturbereich und erhöhen die Entwicklungsgeschwindigkeit. Das Ziel ist es, die Anforderungen Ihrer neuen Kunden zu erfüllen und Ihre Produktroadmap voranzubringen.

Erweitern Ihrer Architektur

Bei der Iteration Ihres Produkts werden Sie zwangsläufig Bereiche finden, in denen Ihre Architektur erweitert werden muss. Möglicherweise müssen Sie Tasks mit langer Ausführungsdauer im Hintergrund ausführen oder häufig Updates von IoT-Geräten (Internet of Things, Internet der Dinge) verarbeiten. Vielleicht müssen Sie Ihrem Produkt eine Volltextsuche oder künstliche Intelligenz hinzufügen.

Es ist auch denkbar, dass Architekturänderungen erforderlich sind, um die Punkte auf Ihrer Roadmap umzusetzen. Widerstehen Sie der Versuchung, diese Änderungen zu weit im Voraus vorzunehmen. Bei Erweiterungen besteht die Gefahr, dass Ihre Architektur- und Infrastrukturkosten in Ihrer Bilanz komplexer werden.

In frühen Startupphasen sollte jede Architekturerweiterung Just-In-Time erfolgen. In die Erweiterung sollte nur so viel Zeit und Aufwand wie nötig investiert werden, um die nächste Hypothese zu testen. Seien Sie offen dafür, Erweiterungen zu entfernen, um die Komplexität zu reduzieren. Suchen Sie nach Produktfeatures, die Ihre Kunden nicht verwenden, um Ihre Architektur zu vereinfachen und Ihre Infrastrukturausgaben zu reduzieren.

Ihre Architektur kann auf viele Arten erweitert werden. Beispiele wären etwa:

Extrahieren

In der Extract-Phase verlangsamt sich das Wachstumstempo, wenn Sie die Grenzen der Marktchancen erreichen. Da Sie in der vorherigen Phase expandiert haben, gibt es jetzt viel zu verlieren. Sie sollten also auf einen vorsichtigeren Ansatz umstellen. Die Extract-Phase wird durch die Margenverbesserung, die Kostenreduzierung und die Effizienzsteigerung gekennzeichnet. Achten Sie während der Extract-Phase darauf, das Produkt für die Kunden, die Sie in der Expand-Phase gewonnen haben, nicht unattraktiver zu machen.

Umgang mit Wachstum und Weiterentwicklung des Stapels

Sobald ein Product-Market Fit für ein Produkt erreicht wurde, muss die Architektur auf viele Anforderungen ausgerichtet werden. Durch einer höhere Nutzung ist möglicherweise eine Infrastrukturskalierung erforderlich, um die Auslastung zu bewältigen. Neue Complianceanforderungen an Unternehmen erfordern möglicherweise eine stärkere Isolation. Diese Änderungen sind gängige Schritte bei der Weiterentwicklung einer erfolgreichen Anwendung.

Die Änderungen, die Sie vornehmen, um das Wachstum zu bewältigen und die Weiterentwicklung voranzubringen, unterscheiden sich von denen für die der Erweiterung der Architektur. Diese Änderungen sind keine funktionalen Anforderungen, sondern sollen die Skalierbarkeit ermöglichen. Ein erhöhter Skalierungsbedarf kann aus Neukunden, einer erhöhten Auslastung durch Bestandskunden oder Kunden mit höheren gesetzlichen Anforderungen resultieren.

Widerstehen Sie der Versuchung, Optimierungen vorzeitig vorzunehmen. Ergreifen Sie Wachstums- und Weiterentwicklungsmaßnahmen, die zur weiteren Iteration und Produktverbesserung beitragen.

Nächste Schritte