Managing Tech

Managing Technology, from the trenches

Infos

Im privaten Blog von Jan Miczaika geht es um die Arbeit mit Technologien, in Teams, und das insbesondere im Startup-Umfeld. Kontakt?
    jan -at- hitflip.de oder bei XING

Wir haben vor kurzem die ersten Hitmeister Optimierungs-Tage (HOT 1 - Abkürzungen sind ganz wichtig) durchgeführt. Ich wollte hier mal von unseren Erfahrungen berichten.

Ziel der HOT: Jedes Software-Projekt hat Code, der Liebe braucht. Das sind Stellen die undokumentiert sind, selten getestet, trotzdem wichtig und zentral, für die sich alle ein bisschen schämen und wo keiner ran will. Die sollte “man” mal aufräumen. Je länger diese Problemstellen ignoriert werden, desto größer werden sie. Eine gute Analogie sind Schulden, die immer weiter anwachsen. Im Englischen nennt man das auch technical debt oder karmic debt. Wir wollten bei Hitmeister mal was für unser Karma tun. Das Ziel war es den Code aufzuräumen, zu dokumentieren, Tests zu schreiben und zu refactoren. Also lauter Sachen erledigen, die im Tagesgeschäft öfters liegen bleiben. Und das in einem Sprint-artigen Modus.

Vorgehen

  • Wir haben uns für HOT 1 zwei Tage Zeit genommen. Innerhalb der Firma wurde vorher kommuniziert, dass die Technik an den zwei Tagen nur für absolute Notfälle zur Verfügung steht und ansonsten nicht ansprechbar ist.
  • Im Vorfeld der HOT wurden in einem Wiki-Dokument Ideen gesammelt, was man angehen könnte. Zu jeder Idee wurden die erwarteten Auswirkungen dazu geschrieben.
  • Am Vormittag des ersten Tages wurden die Ideen diskutiert und evaluiert. Es haben sich Zweierteams gebildet, die die verschiedenen Baustellen angegangen sind. Dabei wurde nicht jede Aufgabe zu zweit gemacht. Manche Aufgaben wurden wirklich im pair-programming-Stil gelöst, andere waren eher do-and-review.
  • An den folgenden 1,5 Tagen haben die Teams dann - soweit möglich - die Aufgaben gelöst und umgesetzt. Hierbei gab es recht viel Diskussionsbedarf.
  • Nach den HOT wurden dann die Ergebnisse besprochen und ein Fazit gezogen.
  • Einige Arbeiten sind leider nicht fertig geworden in den zwei Tagen, das hat sich dann noch etwas fortgezogen.

Ergebnis: Wir haben in den zwei Tagen über 5.000 Zeilen Code gelöscht (echten Code, keine Libraries), ca. 200 Todos entfernt und unzählige Tests und Kommentare geschrieben. Nach ersten Tests sollte die Menge an SQL-Abfragen um etwa 20% sinken, die memcached-Aufrufe um etwa 30%.

Fazit: Die ersten Hitmeister Optimierungs Tage waren sehr erfolgreich. Wenn Anfang Dezember der Code live geht sollte das die Seitenladezeit und die Serverlast etwas reduziert. Was aber wesentlich wichtiger ist, ist dass der Code wieder sauberer, lesbarer und robuster geworden ist. Ein zusätzlicher Vorteil der HOT war, dass alle Entwickler viel “fremden” Code gelesen haben und so ein besseres Verständnis der Plattform bekommen haben. Weitere Ergebnisse:

  • Die Arbeit war teilweise zu viel, teilweise auch zu wenig. Die Aufgaben waren nicht so aufgeteilt, dass alle in 2 Tagen fertig wurden bzw. auch 2 Tage gebraucht haben. Das sollte besser eingeteilt werden.
  • Die Arbeit in Teams, im Sprintmodus, ist sehr gut angekommen und hat gut funktioniert. In Zukunft macht dieses Vorgehen für abgeschlossene Komponenten viel Sinn.
  • Ein grosser Batzen Arbeit im ersten HOT war die Vorsortierung der TODOs im Code. Beim nächsten HOT wird da dann erst aufgeräumt.
  • 100% frei von Tagesgeschäft waren die Tage nicht, aber es war nur “unaufschiebbares”. Unsere Firma kann mal ein paar Stunden ohne Technik laufen…

In Zukunft werden wir ca. einmal im Monat einen HOT machen, der sich dann aber stärker auf wirkliches refactoring konzentrieren soll. Im zweiten HOT (oder HRT) sollen dann die vorsortierten Todos durchgegangen werden. Ich bin von unseren Erfahrungen sehr angetan, und würde jedem Team raten so etwas mal zu probieren.

Leave a Reply