Keine Zeit für Dirty Hacks: Über Abkürzungen bei der Produktentwicklung

Ich war 6 Jahre CTO der Social Media Agentur buddybrand und bin nun fast ein Jahr CTO des SaaS Startups BuzzBird.

Auch wenn der Themenbereich mit Social Media / Ad Tech sehr ähnlich ist, unterscheidet es sich doch fundamental, ob für (mehrere) Kunden ein Projekt abgewickelt, oder ein eigenes Produkt immer weiterentwickelt und besser gemacht wird.

Agentur-Dienstleistung

Der Vorteil einer Agentur ist sicherlich auch ihr Nachteil: Man hat da so Projekte am laufen. Und zwar eine ganze Menge Projekte. Bei buddybrand hatten wir in 3 Jahren 500 Apps geshipped.

Das bringt eine schnelle Lernkurve mit sich – für alle Beteiligten. Wenn ein Projekt mal eher so mittelmäßig lief, finden Learnings daraus direkt im nächsten Projekt Anwendung. Das Betrifft die Entwicklung genauso wie das Projektmanagement und die Zusammenarbeit sämtlicher Gewerke.

Gerade in der Entwicklung kann super mit neue Frameworks experimentiert werden. Wir hatten in all den Agentur-Jahren sicherlich 5 verschiedene Frameworks sowohl im Backend als auch im Frontend. Diese Erfahrung macht  auch für die absurdesten Kundenwünsche unglaublich flexibel.

Leider existiert ein hoher Zeit- und Budget-Druck, so dass man oft hinter seinen Möglichkeiten zurück bleibt. Andererseits ist das ja auch irgendwie egal, da die Projekte selten für die Ewigkeit sind.

Produktentwicklung

Bei der Produktentwicklung gibt es keine Abkürzungen. Dinge müssen ordentlich gemacht werden. Alles, was einmal live ist, wird verwendet und beeinflusst zukünftige Entscheidungen.

Die Anwendungs-Architektur muss dabei so sauber wie möglich aufgesetzt sein,um sowohl Stabil zu sein als auch Handlungsspielraum zu gewähren. Dabei immer im Hinterkopf: Jede Stelle Code, die einmal geschrieben wurde, wird irgendwann auch noch einmal refactored.

Bei der Datenhaltung gibt es absolut keinen Toleranz für unsauber modellierte Daten. Jede Entscheidung zieht immer einen langen Rattenschwanz nach sich. Sei es das Format der Daten oder nur die Benennung von Datenbankspalten.

Es geht nicht mehr nur darum, ob rechtzeitig die Deadline geschafft wird, sondern wie aufwendig zukünftige Änderungen sind. Jedes Release erfordert bereits bestehende Daten zu migrieren und sehr aufwendig zu testen.

Das macht die Entwicklung von neuen Features deutlich langsamer, als die Freiheit bei jedem Release frisch zu starten.

Es gibt keine Abkürzungen

Jede Abkürzung oder jeder “Dirty Hack” kostet auf lange Sicht das doppelt davon, was er ursprünglich eingespart hat. Das heißt nicht, dass Produkt nicht schlank  entwickeln werden sollten – aber sauber müssen sie sein. Es geht selten darum, ein neues Feature zwei Wochen früher zu shippen – sondern wo man nächstes Jahr ist und wie flexibel man dabei bleibt.

Auf der anderen Seite: Wer in einer Agentur arbeitet, sollte bitteschön auch immer den neusten heissen Scheiss nutzen und von der krassen Lernkurve profitieren.

Im Optimalfall kann während einem Berufsleben auch mehrfach die Seite gewechselt werden. Jede Seite profitiert von den Erfahrungen der anderen. Aktuell wechselt auch im Rahmen eines Mentorings meinerseits jemand “die Seite” – was mich bewogen hatte mal meine Gedanken dazu aufzuschreiben.

Image Credits:  Ciudad Nezahualcoyotl in Mexico @ Google Earth

Sharing:
Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedIn

Veröffentlicht von Klaus Breyer

Hat Software Engineering studiert und 2010 die Social Media Agentur buddybrand mitgegründet. War dort bis 2015 als technischer Geschäftsführer / Chief Technology Officer verantwortlich für die Implementierung von Technologien und Innovationen im Marketing-Kosmos. Seit 2016 nun Mitgründer und CTO von BuzzBird, der #1 Plattfform für automatisiertes Influencer Marketing.

Immer auf der Suche nach Trends und technischen Herausforderung liegt der Fokus aktuell auf der Entwicklung neuer Geschäftsmodelle und Engagements als Business Angel. Kann auch als Freelance CTO und Berater gebucht werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.