Читать книгу Prinzipien des Softwaredesigns - John Ousterhout - Страница 18

Start-ups und Investitionen

Оглавление

In manchen Umgebungen gibt es starke Kräfte, die gegen den strategischen Ansatz arbeiten. So spüren beispielsweise Start-ups in ihrer Frühphase einen unglaublichen Druck, erste Releases so schnell wie möglich herauszubringen. In solchen Firmen scheinen selbst die 10 bis 20 % Investitionen nicht machbar zu sein. Daher verfolgen viele Start-ups einen taktischen Ansatz und wenden nur wenig Zeit für das Design und noch weniger für das Aufräumen nach Problemen auf. Sie begründen das damit, dass sie – wenn sie erfolgreich sind – genug Geld haben würden, um zusätzliches Personal zum Beseitigen des Chaos einstellen zu können.

Arbeiten Sie in einer Firma, die in diese Richtung tendiert, sollten Sie sich im Klaren sein, dass eine Codebasis, die einmal zu Spaghetticode wurde, so gut wie nie wieder aufgeräumt werden kann. Sie werden vermutlich über die gesamte Lebenszeit des Produkts hohe Entwicklungskosten haben. Zudem macht sich gutes (oder schlechtes) Design sehr schnell bemerkbar, daher stehen die Chancen nicht schlecht, dass der taktische Ansatz selbst Ihr erstes Produkt-Release nicht sehr beschleunigen wird.

Zudem sollten Sie berücksichtigen, dass einer der wichtigsten Faktoren für den Erfolg einer Firma die Qualität der Entwicklung ist. Am besten verringern Sie die Entwicklungskosten, indem Sie hervorragende Entwicklerinnen und Entwickler einstellen – sie kosten nicht viel mehr als mittelmäßiges Personal, haben aber eine sehr viel höhere Produktivität. Allerdings ist den besten ihrer Zunft gutes Design wichtig. Ist Ihre Codebasis Schrott, wird sich das herumsprechen, und es wird für Sie schwieriger werden, gutes Personal zu finden. So wird die Entwicklung nur mittelmäßig sein, was Ihre Kosten in Zukunft erhöhen und die Systemstruktur vermutlich noch schlechter machen wird.

Facebook ist ein Beispiel für ein Start-up, das taktische Programmierung gefördert hat. Viele Jahre lang hieß das Firmenmotto: »Move fast and break things.« Neues Personal frisch vom College wurde darin bestärkt, direkt in die Codebasis des Unternehmens einzutauchen – es war ganz normal, schon in der ersten Arbeitswoche Commits in die Produktivumgebung zu pushen. Das Positive war, dass Facebook sich den Ruf erwarb, eine Firma zu sein, die ihre Mitarbeitenden befähigt. Die Entwicklung hatte unglaublich viele Freiheiten, und es gab nur wenige Regeln und Einschränkungen.

Als Firma war Facebook spektakulär erfolgreich, aber die Codebasis hatte aufgrund des taktischen Ansatzes Schwächen – ein Großteil des Codes war instabil und nur schwer zu lesen, es gab wenige Kommentare oder Tests, und die Arbeit daran war schmerzvoll. Mit der Zeit erkannte das Unternehmen, dass seine Kultur nicht nachhaltig war. Schließlich änderte Facebook sein Motto zu: »Move fast with solid infrastructure.« Es unterstützte die Entwicklung darin, mehr in gutes Design zu investieren. Es wird sich zeigen, ob Facebook die Probleme erfolgreich beseitigen kann, die sich in all den Jahren taktischer Programmierung angehäuft haben.

Fairerweise sollte ich darauf hinweisen, dass der Code von Facebook vermutlich nicht schlimmer ist als der eines durchschnittlichen Start-ups. Taktische Programmierung ist in vielen Start-ups verbreitet – Facebook ist dafür nur ein besonders sichtbares Beispiel.

Zum Glück ist es auch im Silicon Valley möglich, mit einem strategischen Ansatz erfolgreich zu sein. Google und VMware wurden ungefähr zur gleichen Zeit wie Facebook groß, aber beide Firmen verfolgten ein eher strategisches Vorgehen. Ihnen waren qualitativ hochwertiger Code und gutes Design wichtig, und beide Firmen schufen ausgefeilte Produkte, die komplexe Probleme mit zuverlässigen Softwaresystemen lösten. Die starke technische Kultur der Unternehmen wurde in Silicon Valley schnell bekannt. Nur wenige andere Firmen konnten mit ihnen beim Einstellen der besten Talente mithalten.

Diese Beispiele zeigen, dass Firmen sowohl mit dem einen als auch mit dem anderen Ansatz Erfolg haben können. Aber es macht viel mehr Spaß, in einer Firma zu arbeiten, der Softwaredesign wichtig ist und die eine saubere Codebasis besitzt.

Prinzipien des Softwaredesigns

Подняться наверх