Anzeige
Anzeige
Startups & Economy

CTO-Tipps für Startups: Technische Aspekte in der Gründungsphase

Monitoring-Tools geben Aufschluss über die Anzahl der MySQL-Queries. Als CTO eines Startups gilt es, eine technische Strategie zu finden, die die Business-Strategie hundertprozentig unterstützt. Neben dem Aufbau eines guten Teams sowie Plattform- und Design-Entscheidungen gehört dazu auch der technische Überblick. Florian Munz schreibt über seine Erfahrungen bei Qype und gibt Tipps für die verschiedenen Phasen eines Startups.

5 Min.
Artikel merken
Anzeige
Anzeige


Die Entwicklung eines Startups gliedert sich in verschiedene Phasen. Die Anforderungen an den CTO können sich in diesen stark unterscheiden. Was in der Startphase richtig und wichtig ist, kann in späteren Phasen nicht mehr ideal oder sogar gefährlich sein. Genau so, wie sich das Unternehmen entwickelt, wächst auch die IT. Im Erkennen dieser Phasen und im Anpassen der Anforderungen liegt die Herausforderung an einen CTO.

Das bestmögliche Team

Der Erfolg eines Startups hängt in erster Linie von den Menschen ab. Gerade in der Anfangsphase sollte man auf ein kleines Team von überragend guten Leuten setzen. Ein Punkt, der bei Qype schmerzhaft gelernt werden musste, war, das Entwicklungsteam nicht nur aus Freelancern zusammenzusetzen. Am Anfang ist es zwar sehr viel einfacher, gute freie Entwickler zu finden, dies rächt sich aber, wenn man es versäumt, eine gesunde Mischung aufzubauen.

Anzeige
Anzeige

Gute Mitarbeiter zu finden ist schwer. Langfristig sollte man daher versuchen, das eigene Startup interessant zu machen. Zum Beispiel mit eigenen Open-Source-Beiträgen, aktiver Teilnahme an Konferenzen und in User Groups. Vor der Begutachtung des Lebenslaufs eines Entwicklers wird bei Qype nach seinem Namen gegoogelt. Weblogs, Twitter, Mailinglisten und im besten Fall Open-Source-Projekte geben in vielen Fällen einen sehr viel besseren ersten Eindruck ab als der Lebenslauf. Bei Uni-Absolventen ist Enthusiasmus und eine relevante Diplomarbeit viel Wert.

Moderne Entwicklungsprozesse

Agile Entwicklungsprinzipien wie Extreme Programming oder Scrum passen perfekt zu einem Startup. In kurzen Iterationen entsteht benutzbare Software, die man relativ schnell direkt beim Kunden ausprobieren kann. Denn nichts ist wichtiger für ein Startup als Feedback.

Anzeige
Anzeige

Zu den agilen Prozessen gehören Prinzipien wie testgetriebene Entwicklung, Continious Integration und automatisierte Deploys. Continious Integration sorgt für das zeitnahe Entdecken von Problemen und ein automatisierter Deploy-Prozess macht das häufige Ausliefern erst möglich. In der Anfangsphase von Qype wurden teilweise mehrmals am Tag neue Versionen aufgesetzt.

Anzeige
Anzeige

Operations

Solange man die Basics nicht im Griff hat, macht es keinen Sinn, in fortgeschrittene Themen zu investieren. Eine vernünftige Backup-Strategie ist beispielsweise unerlässlich. Erst vor ein paar Wochen wurde der sechs Jahre alte Service „Journalspace“ komplett eingestellt, weil außer einem Raid-System keine Backups für den Hauptdatenbankserver existierten. Backups müssen aber nicht nur angelegt, sondern auch regelmäßig getestet werden.

In der Anfangsphase ist ein einzelner Server meist ausreichend. Je größer der Cluster wird, desto sinnvoller ist es, moderne Prinzipien wie Virtualisierung oder automatisierte Konfiguration einzusetzen. Bei Qype wurden gute Erfahrung mit „puppet“ [1] gemacht, einem Programm zur zentralisierten und automatisierten Konfiguration, das es ermöglicht, neue Server innerhalb weniger Minuten betriebsbereit zu haben und Konfigurationsänderungen am kompletten Cluster auszuführen.

Anzeige
Anzeige

Erst skalieren, wenn man es muss

Entwickler neigen zum Over-Engineering. Sie wollen ihre gesamte Erfahrung aus vergangenen Projekten einsetzen. Dabei wird oft vergessen, dass es weitaus schwieriger ist, überhaupt in die Lage zu kommen, skalieren zu müssen, als die eigentliche Skalierung zu leisten. Solange man noch kein erfolgreiches Produkt hat, womöglich noch alle paar Wochen die Ursprungsidee ändert und anpasst, ist es wenig sinnvoll, Zeit in eine skalierbare Architektur zu stecken. Die wenigsten Startups sind mit der puren Grundidee erfolgreich. Flickr zum Beispiel war am Anfang ein kleines Foto-Sharing-Feature innerhalb eines Online-Games.

Auf der anderen Seite ist es irgendwann nicht mehr möglich, Änderungen oder neue Features zu entwickeln, ohne an die Performance und Skalierung zu denken.

Was du nicht messen kannst, kannst du nicht lenken

Auch wenn dieser Satz der Management-Theorie kontrovers gesehen werden kann, gilt er auf jeden Fall beim Betrieb von Webapplikationen. Man benötigt so viele Daten wie möglich. Die Grundlage eines jeden erfolgreichen Services ist es, den momentanen Systemzustand detailliert zu kennen. Im akuten Problemfall ist es essenziell zu wissen, wie sich der momentane Zustand vom Normalfall unterscheidet.

Anzeige
Anzeige

Software wie Ganglia [2] oder Munin [3] messen periodisch den Zustand des Systems und zeichnen historische Daten auf. Zusätzlich zu den Basismessungen wie der Systemlast sollte man produktspezifische Erweiterungen bauen: die durchschnittliche Antwortzeit, hochgeladene Fotos pro Minute, lesende und schreibende Datenbankabfragen pro Sekunde und weitere Kriterien. Diese Daten helfen einem nicht nur bei akuten Problemen, sondern sind der Grundstein einer soliden Kapazitätsplanung [4]. Nur mit dem Wissen der historischen Entwicklung dieser Kennzahlen kann man planen, wie viele Server man in einem halben Jahr braucht, wie lange der Speicherplatz noch reicht und wann man Entwicklungszeit in Skalierungsmaßnahmen investieren muss.

Performance

Bei Webapplikationen ist Performance einer der wichtigsten Aspekte überhaupt. Zu gern würde man jedes neue Feature und jede Erweiterung der Performance unterordnen, doch leider hat das Produkt-Management meist andere Vorstellungen.

Ähnlich der Skalierung wird das Thema Performance erst in späteren Phasen wirklich wichtig. Je erfolgreicher ein Produkt wird, desto mehr treten Performance-Probleme auf: Was mit 500 Datensätzen noch innerhalb weniger Millisekunden fertig wird, dauert bei 500.000 Datensätzen mehrere Sekunden.
Bei Optimierungen ist es wesentlich sinnvoller, die am häufigsten aufgerufene Seite zu optimieren als eine Seite, die zwar langsam ist, aber am Tag nur wenige Male aufgerufen wird. Für Ruby on Rails gibt es mittlerweile externe Services wie NewRelic [5] oder FiveRuns [6], die einem detaillierte Performance-Daten liefern. Die wichtigsten Regeln zur Optimierung der Frontend-Performance findet man in dem Buch „High Performance Web Sites“ von Steve Souders.

Anzeige
Anzeige

Aus Fehlern lernen

Es wird zu Fehlern kommen, das kann keine noch so gute Vorbereitung verhindern. Neben einer offenen Kommunikationspolitik ist es wichtig, aus Fehlern zu lernen. Ein Fehler, der auf identische Weise ein zweites Mal vorkommt, ist wesentlich peinlicher und schädigender als beim ersten Mal.

Besonders hilfreich, um wirklich aus Fehlern zu lernen, ist die 5-Whys-Methode [7] zur Ursachenanalyse. Durch das fünfmalige Fragen von „Warum“ kommt man in den meisten Fällen zur Ursache eines Problems und deckt dabei mehrere Schichten des Problems auf. Idealerweise plant man dann Maßnahmen auf jeder dieser Schichten. Die obersten Schichten sind dabei meist kurzfristig („Bringe die Site wieder online“), die untersten langfristig („Neuen Mitarbeitern intensives Test-Driven-Development beibringen“).

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Kommentare

Community-Richtlinien

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Kommentar abgeben

Melde dich an, um Kommentare schreiben und mit anderen Leser:innen und unseren Autor:innen diskutieren zu können.

Anmelden und kommentieren

Du hast noch keinen t3n-Account? Hier registrieren

Anzeige
Anzeige