Der erste Firmen-Hackathon im Team Mobile
Am 06.04.18 haben wir erstmalig in unserem Team einen Hackathon organisiert und durchgeführt.
Im folgenden Artikel möchte ich euch erzählen, wie wir auf die Idee eines Hackathons gekommen sind, warum es Sinn macht (abseits des Arbeitsalltags) selbst einen Hackathon zu veranstalten und auch welche coolen Technologien und Projektideen an dem Tag umgesetzt / getestet wurden.
Bevor es aber los geht, noch schnell 3 Sätze über das Unternehmen BRICKMAKERS:
-
Wir sind eine Entwicklungsagentur aus Deutschland mit ca. 40 Mitarbeitern
-
Wir entwickeln Apps für alle Systeme, egal ob Android, iOS, Windows oder den Browser. Dabei begleiten wir unsere Kunden vom Konzept über die Entwicklung & das Design bis hin zur Vermarktung der fertigen App
1. Die Idee
Nach dem kurzen Einblick in unser Unternehmen lässt sich der übliche Alltag eines Entwicklers bei den BRICKMAKERS sicherlich gut vorstellen:
Kaffee trinken und Programmieren sind dabei die Hauptbestandteile.
Und genau aus dem Grund, weil wir sonst immer programmieren, wollten wir Entwickler (die Idee des Hackathons kam direkt aus dem Team und wurde nicht von einem Vorgesetzten geplant oder durchgeführt) auch mal etwas ganz neues probieren:
Mehr Programmieren !
So albern es auch klingt, so ist die Idee entstanden. Zusätzlich kommt in (fast) jedem Entwickler früher oder später der Wunsch auf neue Technologien auszuprobieren oder auch einfach eine selbst ausgedachte Idee zu verwirklichen. In dem normalen Entwicklungsalltag ist dafür meistens nicht unbegrenzt Zeit und deshalb wollten wir diese Energie in Form eines Events umsetzen.
Zu Beginn wollten wir ein ganzes Wochenende für den Hackathon einplanen, aber leider ist der erste Planungsversuch gescheitert einen passenden Termin zu finden (ist mit ca 40 Menschen auch wirklich nicht leicht).
Also haben wir uns dazu entschlossen den Hackathon an einem Freitag nur innerhalb des Teams zu organisieren, so fällt die Terminplanung viel leichter und die Organisation ist auch nicht ganz so aufwendig.
Man muss ja schließlich viel Kaffee kochen.
Somit lässt sich aktuell schonmal festhalten:
-
kleinere Gruppen sind leichter zu planen & somit schneller umzusetzen (Unser Team bestand zu der Zeit aus 12 Mitarbeitern)
-
Ein komplettes Wochenende ist schwer mit der Freizeit zu vereinbaren ( auch Entwickler wollen manchmal nach Hause..)
-
Wir haben den Zuspruch von oben bekommen: Hackathons zählen als “normaler” Arbeitstag.
2. Planung & Vorbereitung
Nachdem wir beschlossen hatten, den Hackathon nur innerhalb des Teams zu organisieren, ging die Planung auch insgesamt sehr zügig von statten.
Für die Planung standen noch folgende Dinge auf der ToDo Liste:
-
Datum festlegen
-
Besprechungsraum buchen
-
Pizza für die Mittagspause bestellen
-
Sammeln von Themen & Ideen für den Hackathon
-
Frage klären: „Wie funktioniert ein Hackathon?“
-
Randbedingungen & Tagesablauf ?
Nun gut, die ersten beiden Aufgaben sind schnell erledigt gewesen, der Termin war für vier Wochen später für alle in Outlook eingetragen.
Bei der Pizza wurde es dann schon etwas schwieriger, aber letztendlich gehört die Auswahl von Pizzasorten doch zu meinen Stärken.
Die letzten beiden Punkte sind wahrscheinlich die Interessantesten.
Wie funktioniert ein Hackathon & Tagesablauf
So, die Antwort auf die Frage „Wie funktioniert ein Hackathon“ wurde nicht abschließend geklärt & ist es immer noch nicht.
Ein Hackathon kann grundsätzlich viele Bereiche abdecken:
-
Teamgeist
-
Weiterbildung
-
Abwechslung
-
Motivation
-
Produktivität
Diese Veranstaltung ist aber so flexibel einsetzbar, dass er eigentlich alle Bereiche abdeckt. Für unseren ersten Hackathon waren uns die Punkte Teamgeist und Weiterbildung bei gleichzeitiger Abwechselung am wichtigsten. Die Produktivität ist ein netter Nebeneffekt, steht aber zu Recht weit unten auf der Liste.
Projektideen / Technologien
In meinen Augen ist es am sinnvollsten, keine Vorgaben für den Tag zu machen. Es soll grundsätzlich alles erlaubt sein, egal was es ist. Selbst wenn es niemals für ein Kundenprojekt relevant ist.
Somit ergibt sich für den Tag : Unendliche Ideen für Projekte & Technologien.
Mit dieser hohen Zahl lässt sich aber nicht wirklich gut planen oder abschätzen was passiert.
Deshalb haben wir alle Mitarbeiter im Vorhinein dazu angeregt sich kurz Gedanken zu machen, welche Technologien oder Projektideen sie gerne an diesem Tag ausprobieren möchten und diese zu sammeln.
An Hand der Liste der Vorschläge sollte dann spontan am Tag des Hackathons ausgesucht werden, was wirklich umgesetzt wird.
Damit die Liste der Vorschläge zu Beginn nicht einfach nur ein leeres Blatt ist, habe ich schon selbst einige Beispiele vorbereitet.
Gruppengröße
Im Bereich der Gruppengröße gibt es auch einige Möglichkeiten, entweder jeder darf an dem Tag für sich selbst entscheiden welche Idee er umsetzt, alle arbeiten an einem Thema oder es gibt mehrere kleine Gruppen.
Aus dem Bauch heraus haben wir uns für die mittlere Lösung entschieden, die Teams sollten ca 3–4 Mann/Frau groß sein. Unser Team besteht zur Zeit aus 12 Mitarbeiter/Innen, also hätten wir 3–4 Teams.
Würde jeder für sich alleine arbeiten, wäre der Teamgeist bei dem Team Event wohl sehr gering ausgefallen.. Auf der anderen Seite konnten wir uns nur schlecht vorstellen ein Thema zu finden, was alle anspricht und gleichzeitig auch genug Arbeit für jeden bietet.
Pizza
Auch wenn noch nicht alle Bestandteile für den Hackathon geklärt sind, ist eines klar: „Pizza gehört dazu!“.
Randbedingungen
Wir haben uns außerdem überlegt, welche Randbedingungen wir für diesen Tag aufstellen sollten, diese sind bewusst knapp gehalten:
- Das Projekt und der Ablauf sollte zu Beginn grob geplant werden
- Am Ende des Tages soll jedes Team einen kurzen Vortrag halten und ihren Zwischenstand demonstrieren.
- Im Nachgang sollen kurze Dokumentationen erstellt werden. (<1 Seite)
3. Day of the Hack
Ablauf
Nach der ganzen Vorbereitung waren wir natürlich auch sehr gespannt darauf wie denn der Tag nun wirklich abläuft.
Vor dem Eintreffen der Teilnehmer wurden alle vorgeschlagenen Themen an ein Whiteboard geschrieben und nach Thema & Technologie sortiert.
Nachdem alle Teilnehmer eingetroffen sind und mit dem ersten Kaffee versorgt wurden haben wir gemeinsam alle Themen kurz besprochen, damit jeder wusste worum es in etwa dabei gehen sollte.
Auch hier wurde noch einmal die Möglichkeit gegeben spontan eine Idee zu äußern. :)
Jeder durfte am Whiteboard 2 Stimmen abgeben (1x Thema, 1x Technologie), danach wurden die nicht so beliebten Themen aussortiert.
Wir konnten beide Seiten so immerhin schonmal von ca 12 Ideen -> 5 Ideen dezimieren.
Für den Hackathon sollten die Gruppen ja in etwa aus 3–4 Leuten bestehen, also haben wir in der nächsten Fragerunde versucht Teams zu bilden. Das war schon deutlich schwieriger, weil alle übrig gebliebenen Themen für fast alle interessant waren. Letztendlich haben wir es aber zu den folgenden 3 Themen geschafft, diese wurden dann nach Möglichkeit noch mit den gewünschten Technologien verbunden (so konnten wir Flutter und Vue.js testen).
Themen & Ideen
Wie vorher angekündigt wird es noch einzelne Dokumentationen als Nachbereitung geben, eventuell werden diese auch auf Medium veröffentlicht. Vorab aber schonmal eine kurze Beschreibung der Themen:
Microsoft Teams Bots mit node.js
Früher hatten wir wundervolle Slack Bots, die uns bei den schwierigen Fragen im Leben unterstützen konnten, diese konnten bspw. auf einfache Befehle wie Drucker? oder Wlan? die IP-Adresse des Druckers oder auch das Wlan Passwort ausgeben. Seit dem wir aber auf die Nutzung von Microsoft Teams umgestiegen sind, konnten wir nichts mehr drucken (Achtung: Ironie vorhanden).
Auch die Essensbestellung, die bei uns meistens Freitags durchgeführt wird, wurde früher durch einen Slack Bot unterstützt.
Also wollten wir die alten bekannten Lösungen auch in Teams integrieren.
Mithilfe des BotBuilders und dem BotFramework Emulator kam das Team zum folgenden Prototypen:
Referenzstory Estimate Webapp mit Vue.js
Diese Webanwendung soll dem Team helfen die User Stories an Hand eines einheitlichen Maßstabs zu bewerten. Da sich die Schätzungen und somit auch die Velocity zwischen den einzelnen Teams doch stark unterscheiden versuchen wir aktuell die Schätzungen stärker aneinander anzupassen um so einen einheitlichen Maßstab zu erstellen.
In der Anwendung soll man also eine User Story erstellen können und diese mit einer Schätzung (plus Kategorie) versehen können. In der Übersicht aller Stories können im Anschluss alle User, ähnlich wie bei Reddit oder Hackernews, die Story hoch oder runter voten.
Dadurch kann man dann später seine Userstories an Hand vieler Referenzstories besser schätzen.
Die WebApp wurde mit Hilfe von Vue.JS & Material UI auch ziemlich vorzeigbar:
Partytime App mit Flutter
Das dritte und letzte Team hat sich das neue Framework von Google genauer angesehen: Flutter. Hiermit sollen native Apps sehr schnell realisiert werden. Flutter setzt allerdings auch eine vorher unbekannte Programmiersprache ein: Dart.
Die Anwendung sollte ein Update für eine etwas in die Jahre gekommene intern genutzte Xmas-Party App werden.
Bei der alten Version der Anwendung konnte man einen Trinkwettbewerb starten, seine getrunkenen Getränke eintragen und dafür Punkte kassieren. Den aktuellen Highscore sowie eventuell entstandene Bilder konnte man auch über den Feed einsehen.
Nun sollte diese App etwas generischer aufgebaut werden, so dass man beim Start der App verschiedene Gruppen / Events erstellen und im Nachhinein die Regeln (bspw. Welche Aktion gibt wieviele Punkte) festlegen kann. Danach könnten Freunde eingeladen werden um am Event teilzunehmen. Innerhalb des Events sollte der Ablauf so sein wie vorher auch.
Um sich möglichst stark auf die Technologie Flutter zu konzentrieren wurde auf ein „echtes“ Backend verzichtet und die API-Abfragen wurden an den simple-json-server (Link) gesendet. Im Bild sieht man auch den geplanten Flow:
Am Tagesende sah die App so aus :
Sonstige Vorbereitung:
- Kaffee kochen
- Getränke in den Besprechungsraum tragen
- Projektideen & Technologien ans Whiteboard schreiben
4. Bewertung & Ausblick
Ganz am Schluss haben wir noch alle gemeinsam die positiven und negativen Aspekte des Hackathons zusammengefasst.
Positiv:
- Freiheit
- Demo / Überblick am Schluss
- Spaß
- Teamarbeit
Negativ
- Zeit (zu wenig)
- Fokus
- Projekte zu umfangreich
Wir haben viel an einem Tag gelernt, hatten eine Menge Spaß, aber wir waren alle doch recht unzufrieden mit dem Ergebnis. Ein Drittel des Tages war direkt nach der Planung schon vorbei und die Einarbeitungszeit in die neuen Technologien war doch sehr hoch, so hatten wir alle das Gefühl erst in den letzten 1–2h vor der Mini-Demonstration so richtig produktiv an der Idee zu arbeiten.
Allerdings lassen sich all diese Nachteile auf ein zeitliches Problem beschränken, deshalb haben wir entschlossen den zweiten Hackathon für dieses Jahr mit einem offenen Ende zu planen (statt den regulären Arbeitszeiten).
Eure Erfahrungen
Habt ihr einen Hackathon gemacht ? Was sind eure Erfahrungen ?