Mein erster Hackathon
Samstag Abend, 23:30 Uhr, Hamburg. Ich sitze in einem Büroraum, trinke Wodka-Mate, höre viel zu laut Hardrock und starre abwechselnd auf meinen Laptop und einen Haufen bunter Notizzettel an der Wand hinter mir. Alle paar Minuten fallen mir die Augen zu. Ich muss wachbleiben. Ich. Muss. Wachbleiben. Ich. Muss. Tsssss …
Wie es soweit kommen konnte
Alles begann wieder einmal mit einer E-Mail von meiner Arbeitskollegin, der selben Kollegin, die damals auch für meinen ersten Talk auf einer Tech-Konferenz verantwortlich war. Sie suche ein paar Leute für einen Hackathon, schrieb sie. Sie hätte da auch schon ein paar gute Ideen, und es wäre doch toll, wenn wir mitkämen. Das Ganze fände in Hamburg statt, sie kenne auch die Organisator_innen, das werde sicher lustig.
„Lustig“, das war genau mein Stichwort, und einen Klick auf „allen antworten“ und ein „ich bin dabei!“ später hatte ich auch schon ja gesagt.
Das Prinzip Hackathon
Ein Hackathon, auch anzutreffen unter den Begriffen „Hack Day“, „Hackfest“ oder „Codefest“, ist eine Veranstaltung, bei der Menschen sich treffen, um gemeinsam an Software und / oder Hardware zu arbeiten. Klassischerweise sind dabei viele Software-Entwickler_innen anzutreffen, aber auch Menschen, die anderweitig mit Software-Entwicklung zu tun haben, beispielsweise Designer_innen oder Projektmanager_innen. Die Grundidee: gemeinsam in sehr kurzer Zeit an Projekten arbeiten, neue Menschen kennenlernen, idealerweise Spaß haben und womöglich sogar ein Projekt fertigstellen.
Und das ist auch schon das Wesentliche, was den Kerngedanken hinter Hackathons ausmacht. In allen weiteren Facetten unterscheidet sich die weltweite Vielzahl an Hackathons und ähnlichen Veranstaltungen enorm: es gibt themenbezogene Hackathons und welche mit freier Themenwahl, es gibt von Unternehmen veranstaltete, gesponserte und völlig unabhängige, dann wären da noch Hackathons für Frauen, LGBTIQ* Hackathons, manche dauern einen Tag, andere zwei, und viele andere Unterscheidungsmerkmale mehr. Wenig Schlaf, überhöhte Mengen Koffein und Augenringe gehören bei vielen von ihnen zum Gesamtprogramm dazu. Irgendwann am Ende der meisten Veranstaltungen gibt es einen Abgabetermin. Zu diesem Zeitpunkt müssen die entwickelten Anwendungen bereitgestellt werden, ab dann darf nichts mehr verändert werden. Bei einigen Hackathons gibt es eine Jury, eine Präsentation aller Anwendungen und eine Abstimmung durch die Teilnehmer_innen über die Sieger_innen des Hackathons, die dann Gewinne bekommen (so soll das auch bei „unserem“ Hackathon werden). Bei anderen Veranstaltungen wiederum gibt es einfach eine Präsentation ohne Sieger_innen.
Häufig geht das in jedem Fall bei Hackathons so: Menschen kommen an, es gibt eine offizielle Begrüßung, und dann stellen alle, die möchten, ihre Projektideen vor und suchen sich andere, die mit ihnen zusammen daran arbeiten möchten. Und dann geht es los.
Zwei Wochen davor
Außer mir finden sich noch drei weitere, die mit meiner Kollegin und mir nach Hamburg fahren wollen. Der Hackathon, um den es geht, wird veranstaltet von den jeweiligen Hamburger Dependancen der Geekettes, die sich an verschiedenen Standorten für Frauen in Tech einsetzen, sowie der Open Tech School, die weltweit kostenlose Programmierworkshops anbietet. Es geht also um den Hamburg Geekettes and OTS HH Hackathon.
Bei diesem Hackathon ist, im Gegensatz zu manch anderen, erlaubt, dass wir unser Team quasi mitbringen. Wir fünf sind nun ein Team aus drei Entwickler_innen, einem Designer und mir, die noch keine wirklich Vorstellung hat, was sie bei diesem Hackathon eigentlich machen soll außer „bloß nicht im Weg stehen“.
Per E-Mail diskutieren wir: mit welchen Technologien wollen wir arbeiten? Wollen wir Frameworks einsetzen, und wenn ja, welche? Und was wollen wir eigentlich bauen?
Wir diskutieren hin und her und einigen uns schließlich wenige Tage vor dem Termin. Wir wollen eine Anwendung bauen, die die berufliche Entscheidungsfindung für Teams und Einzelpersonen vereinfacht. Umsetzen wollen wir das alles so:
- Wir verwenden JavaScript als Programmiersprache, und nutzen zusätzlich:
- Hoodie, einer Schnittstelle für die einfache Entwicklung von Web-Anwendungen (das kennen einige von uns und können damit ganz gut arbeiten
, glauben wir jedenfalls) - Ember.js, ein Framework (das kennt keine_r von uns, aber wir wollen ja auch noch etwas Neues lernen, und wir können damit bestimmt trotzdem ganz gut arbeiten
, glauben wir jedenfalls)
Mit der Idee in der Tasche und der Entscheidung für die Umsetzung halten wir uns für optimal vorbereitet.
Samstag, 07. Juni
06:00 Uhr, Berlin. Mein Wecker klingelt. Im Zombie-Modus werfe ich zwei T-Shirts in eine Reisetasche, schaffe es irgendwie zum Bahnhof und versinke in meinem Platz im Zug.
07:30 Uhr, Berlin. Im Zug öffne ich meinen Laptop. Letzte Nacht habe ich zuhause noch 45 Tabs mit Studien und Untersuchungen zum Thema Entscheidungsfindung geöffnet. Ich will mir das noch durchlesen und die wichtigsten Ergebnisse zusammenstellen, um sie dann in die Konzeption unserer Anwendung einfließen zu lassen.
07:45 Uhr, Berlin-Spandau. Ich schlafe nochmal ein.
09:30 Uhr, Hamburg. Die Sonne scheint, die Vögel singen, ich tapere mit einem Kaffee aus einer Bäckerei am Bahnhof zum Coworking-Space, in dem an den nächsten beiden Tagen der Hackathon stattfinden soll. Bei meiner Ankunft erhalte ich ein Namensschild, eine Tasche mit Sponsorengeschenken und setze mich mit meinem Computer in die Sonne. Schnell noch die verschlafene Vorbereitung nachholen, bevor mein Team eintrifft!
10:30 Uhr. Ich habe eben noch ein paar Recherche-Ergebnisse für die Anwendung zusammengestellt, als das Team schon ankam. Wir saßen noch kurz zusammen im Hof vor dem Coworking-Space, und nach der kurzen Vorstellung der Veranstalter_innen haben wir uns schonmal in eine Büro gesetzt, die Rechner aufgeklappt und besprochen, wie wir das so angehen wollen.
Eine der Bürowände funktionieren wir um zu einem einfachen Kanban-Board: wir unterteilen unsere große Aufgabe, die Entwicklung einer Anwendung, in verschiedene kleine Aufgaben, die wir auf Zettel schreiben und an die Wand kleben, dort sortiert nach Arbeitsfeldern (wie „Programmierung“, „Design“ und „Kommunikation“) und „to do“, „in Arbeit“ und „erledigt“. Idealerweise wandert so jeder der Zettel irgendwann an diesem Wochenende von „to do“ nach „erledigt“. Wie gut das klappt, werden wir ja sehen.
12:45 Uhr. Draußen scheint die Sonne. Jens und ich setzen uns vor unser Büro und diskutieren die inhaltlichen Anforderungen an die Anwendung und das Design. Drinnen arbeitet mit Ola, Hendrik und Andy der Rest unseres Teams an den Grundlagen der Anwendungsumsetzung.
13:30 Uhr. In allen Büros im Coworking-Space sitzen Gruppen von Menschen vor Computern und brüten über ihren Ideen. Die Atmosphäre ist entspannt, fröhlich, und sehr konzentriert. Ab und an schaut eine der Personen aus dem Orga-Team vorbei und fragt, ob es uns gut geht, und ansonsten arbeiten alle vor sich hin. Was mich freut: die Teilnehmer_innen sind eine sehr gemischte Gruppe von Menschen unterschiedlicher Geschlechter, Altersklassen und Herkunft, es ist schön, sie alle bei einem solchen Event zu sehen.
15:00 Uhr. Nach dem Mittagessen geht es weiter. Noch sind wir alle sehr entspannt: die Grundlagen stehen, die Technik läuft soweit, wir scherzen noch, dass wir voraussichtlich heute Abend fertig sein werden. Jens baut jetzt das Design, Ola, Hendrik und Andy programmieren, und ich soll mich jetzt an die Inhalte machen.
Die konkrete Idee für unsere Anwendung ist folgende: wir möchten wiederkehrende, einander ähnliche Entscheidungsprozesse vereinfachen. Zielgruppe sind zum einen Freiberufler_innen und andere Selbstständige, zum anderen aber auch Gruppenprojekte wie Open Source Software-Projekte, die regelmäßig im berulichen bzw. Projekt-Kontext als Einzelpersonen bzw. Gruppen Entscheidungen treffen müssen in Bezug auf neue Projekte, Software-Weiterentwicklung oder neue Kund_innen. In unserer Anwendung soll es möglich sein, einmalig bestimmte Grundwerte und Parameter für sich selbst oder für die Gruppe zu definieren. Diese Grundwerte werden gewichtet und in einem Formular als Fragen formuliert eingetragen. Bei allen zutreffenden Entscheidungen müssen diese dann nur noch einmal durchgegangen und, falls zutreffend, mit „ja“ angekreuzt werden. Zu diesen Fragen zählen in einer beispielhaften Freiberufler_innen-Version unter anderem, in fallender Gewichtung:
- Ich bekomme Geld dafür, das ich dringend benötige.
- Es passt zu meiner Expertise.
- Es ist (für) etwas, das ich liebe.
- …
Nutzer_innen der Anwendung können entweder eine vorgegebene Auswahl an Fragen verwenden, diese anpassen oder vollständig eigene Fragen eingeben. Am Ende spuckt die Anwendung dann als Ergebnis aus, ob etwas gemacht werden soll oder lieber nicht.
Die Anwendung soll so nicht unbedingt Entscheidungen leichter machen oder Menschen abnehmen – aber dafür sorgen, dass keine wichtigen Parameter vergessen werden. Die Idee dafür war entstanden auf Basis einiger nicht ganz so kluger Entscheidungen innerhalb eines Projekts, bei dem ich beteiligt war. Dort hatte sich mehrfach herausgestellt, dass wichtige Kriterien schlicht vergessen worden und so ungute Entscheidungen gefallen waren. Wir wollten nun bei diesem Hackathon einmal ausprobieren, ob sich das nicht mit Hilfe einer Anwendung vermeiden ließe.
Dafür baue ich nun eine Weile die ersten Beispiel-Inhalte, überlege mir eine Gewichtung, sitze lange mit dem Taschenrechner da und prüfe verschiedene Ergebnisse, und bespreche sie mit unserem Designer. „Shall I?“ („Soll ich?“), so soll unsere Anwendung heißen.
17:45 Uhr. Ich werfe einen Blick in die Räume der anderen Gruppen. Da arbeiten einige an einer App für am Straßenrand abgeladene Möbelstücke, andere an einer App für Künstler_innen und Kunstinteressierte, wieder andere bauen eine App für Frauen in der IT. Ich rede kurz mit einigen anderen Teilnehmer_innen, ohne sie zu lange von der Arbeit abhalten zu wollen. Ich bin jetzt schon sehr gespannt auf die Präsentationen morgen.
19:30 Uhr. Der erste Entwurf für das Design steht, wir sind alle sehr begeistert von Jens‘ Arbeit. Ola, Andy und Hendrik haben derweil große Fortschritte mit der Programmierung gemacht. Die Hoodie-Basis der Anwendung steht längst, jetzt arbeiten sie an den Details und wollen sich nachher dann an den Einbau von Ember.js machen. Erstmal aber essen wir noch gemeinsam zu Abend. Danach gibt es noch eine Runde Yoga im Hof für alle, die mitmachen möchten. Ich lege mich daneben auf die Wiese und versuche, wach zu bleiben.
22:30 Uhr. Ich habe mich bei meinen Kalkulationen für die Gewichtungen verrechnet, und ich komme mit meinen Inhalten nicht so weiter, wie ich das gerne würde. Außerdem bin ich schon viel zu lange wach und so langsam wirklich müde. Ola sitzt neben mir am Schreibtisch und flucht über einen Fehler im Code, während bei Hendrik und Andy die Sache mit Ember.js bei Weitem nicht so gut anläuft, wie sie sich das erhofft hatten. Genauer gesagt: es läuft überhaupt nicht. Frust macht sich breit. Die Zeit scheint zu rasen, während wir nicht mehr vorankommen.
23:30 Uhr. Keine Besserung in Sicht. Davon, dass wir heute Abend fertig werden, redet längst keine_r mehr. Wir besorgen neue Getränke, ein Freund hat im Supermarkt um die Ecke Wodka geholt und für die Gruppe gibt es jetzt Wodka-Mate beziehungsweise noch mehr Rhabarberschorle und Wasser.
Sonntag, 08. Juni
00:30 Uhr. Das erste große Tal des kollektiven Frustes haben wir gemeinsam durchschritten, da macht sich das nächste Problem breit. Egal was wir machen, es wird einfach nicht besser. Aber egal, wir wollen das jetzt gemeinsam hinbekommen. Mit Hilfe von noch mehr Mate, Vodka, Rhabarberschorle und neuerdings auch noch Schokolade, die irgendwer herbeigezaubert hat.
02:45 Uhr. Wir haben die Bürobeleuchtung gedimmt, weil wir das starke Licht nicht mehr aushalten. Alle haben Kopfhörer auf, beim Vorbeilaufen ist von Hardrock über Heavy Metal bis hin zu lautestem Elektro alles zu hören. Auf allen Sesseln und in den Ecken hocken Menschen, die großteils nur noch ein Abbild ihrer selbst darstellen. Alle nun noch vorhandenen Gefühle werden ausgedrückt durch diese beiden Tweets:
Current status: ATEMLOS! DURCH DIE NACHT #hamburgHH #EmberJS #CouchDBDies #DocumentSharingIstDoof pic.twitter.com/E9oyjUhbJI
— Andy Grunwald (@andygrunwald) 7. Juni 2014
Ember’s gonna hate pic.twitter.com/iFUFnSlbZQ
— Lena Reinhard (@ffffux) 7. Juni 2014
Nicht einmal eine Runde kollektiver Umarmungen, sonst hilreich für und gegen fast alles, kann uns jetzt noch retten. Nur irgendeine Person, die sich mit Ember.js auskennt. Aber nachts um 3 in Hamburg ist diese Person auch eher schwer zu finden.
03:10 Uhr. Ich bin am Ende. Meinen Schlafsack hinter mir herziehend, wanke ich durch den Coworking-Space, in der Hoffnung, irgendwo eine ruhige, bisher nicht besetzte Ecke zu finden, treffe noch eine andere Teilnehmerin, die auch gerade mit Schlafsack unterwegs ist (ja, das sah vermutlich ungefähr so aus). Auf einer Empore rolle ich schließlich meinen Schlafsack aus und mich in Embryonalstellung zusammen.
07:30 Uhr. Ich stehe auf. Nein, ich versuche aufzustehen. Mein Rücken schickt freundliche Grüße von der letzten, kurzen Nacht auf dem Fußboden. Auf den Fluren ist alles ruhig, ich schleiche mich in eines der Badezimmer und versuche, mir im Waschbecken die Haare zu waschen, ohne dabei alles unter Wasser zu setzen.
07:45 Uhr. Aus einigen Ecken schnarcht es noch leise, ich laufe auf Zehenspitzen in Richtung Kaffee. Vorne an der Bar, in Reichweite zu den Kaffeebechern, sitzen ein paar müde Gestalten. Drei oder vier von ihnen haben wohl ganz durchgemacht. Ola, Andy und Hendrik haben sich ebenfalls noch die halbe Nacht um die Ohren geschlagen. Sie sind gegen 4, 5 ins Bett und tapern mir ziemlich übermüdet auf den Fluren entgegen. Auch die anderen Teams kriechen nach und nach aus Schlafsäcken oder von Übernachtungsgelegenheiten in der Nähe des Veranstaltungsorts zurück an die Computer. So wirklich ausgeschlafen wirkt fast niemand.
08:30 Uhr. Nach dem Frühstück kurze Lagebesprechung: wer muss sich noch worum kümmern? Wie können wir möglichst viel Zeit einsparen? Welche Funktionalitäten sind nicht so wichtig und können zur Zeitersparnis noch rausfliegen? Wer hilft wem? Andy und Hendrik haben sich an Ember.js gestern noch eine ganze Weile die Zähne ausgebissen, hatten aber irgendwann überhaupt keine Nerven (und keine Lust) mehr. Ola hat auch viel zu wenig geschlafen, aber wenigstens noch ein paar Sachen zum Laufen gebracht und im CSS Jens‘ Designs umgesetzt. Und Jens hat die Nacht bei Freund_innen in Hamburg verbracht und ist gerade unterwegs. Er ist aber auch der einzige von uns, der gerade mit seinem Teil halbwegs fertig ist. Um 13:30 Uhr ist Abgabe. Bis dahin müssen wir alles fertigstellen, testen und hochladen. Das ist ganz schön wenig Zeit. Wir machen uns an die Arbeit.
10:30 Uhr. Ich versuche, die Präsentation für nachher vorzubereiten. Obwohl der Kaffee wirkt, ist mein Gehirn heute erstaunlich langsam. Wir haben fünf Minuten Zeit für die Präsentation, in der ich die Anwesenden überzeugen soll, dass unsere Idee total gut ist und auch noch funktioniert. Die Idee finden wir inzwischen nur noch so halb gut (frustrierter O-Ton eines Teammitglieds letzte Nacht: „Ich setze nie wieder die Ideen von anderen Leuten um!“). Und das mit dem Funktionieren … nun ja, das wird ja vielleicht noch was. Wir haben ja noch 3 Stunden Zeit.
12:00 Uhr. Krisensitzung mit Ola. Es funktioniert immer noch nichts. Dafür habe ich zwar eine Präsentation gebaut, die aber mit 15 Minuten etwas zu lang ist für die 5 Minuten Vortragszeit. Angespannte Stimmung auch bei den anderen Teams. Wildes Herumhacken auf Computertastaturen, verzweifelte Gesichtsausdrücke, der Zeitdruck macht sich in allen Büros breit.
13:00 Uhr. Ola hat sich nochmal alles vorgenommen und irgendwie haben unsere drei Programmierer_innen es so doch gerade noch geschafft, die Software zum Laufen zu bekommen. Jetzt schnell noch alles fertigstellen, hochladen, und dann ab zu den Präsentationen.
13:30 Uhr. Geschafft! Es läuft, und vor allem: es ist vorbei! Letzteres ist mir gerade das wichtigste überhaupt. Jetzt nur noch testen, ob die Präsentation auf meinem Rechner am Beamer läuft, und dann war’s das erst mal.
14:30 Uhr. Die Präsentationen starten. Ich bin sehr begeistert von der Vielzahl der Anwendungen, die die Teilnehmer_innen entwickelt haben. Da sind Lösungen für kleine Unternehmen dabei, die erwähnten Anwendungen für Künstler_innen und Kunstliebhaber_innen, Anwendungen zur Vernetzung von Menschen, spezielle Programme für Entwickler_innen und viele mehr. Auch die Umsetzung unterscheidet sich sehr im Hinblick auf verwendete Programmiersprachen und Frameworks.
14:55 Uhr. Und dann sind wir dran. Erst läuft unsere Präsentation trotz des Tests vorhin nicht, dann bin ich viel zu nervös, schließlich reicht der Zeitrahmen nicht um zu zeigen, dass all das sogar schon online ist und funktioniert. Aber egal, nach fünf viel zu kurzen Minuten ist es vorbei und geschafft. Wir fallen uns in die Arme und sehen uns die restlichen Vorführungen an.
15:15 Uhr. So langsam merke ich den Stress der letzten eineinhalb Tage. Mein Kreislauf macht in dem engen Präsentationsraum schlapp, und ich setze mich vor der Tür, um ein bisschen durchzuatmen.
16:30 Uhr. Sieger_innenehrung. Die ersten Preise gehen an meine persönlichen Lieblings-Apps dieses Wochenenedes, die einfach großartige Ideen hatten. Aber dann passiert, womit ich nach der verkorksten Präsentation überhaupt nicht mehr gerechnet hätte: drei unserer Gruppenmitglieder gewinnen Tickets für die JSConf EU.
17:50 Uhr. Und dann ist es schon wieder Zeit für die Heimreise. Wir müssen zurück in den Ruhrpott und nach Berlin, und wir alle müssen eine Runde schlafen.
Drei Monate später
Drei Monate ist der Hackathon jetzt her. Ein bisschen haben wir an „Shall I?“ jetzt noch weitergearbeitet, und dann kam einiges dazwischen. Deshalb funktioniert die App derzeit nicht, aber ihr Quellcode liegt noch hier auf GitHub, und wer weiß, vielleicht finden wir demnächst mal wieder etwas Zeit, daran weiterzuarbeiten.
Dieses Wochenende ist uns allen so oder so in sehr guter Erinnerung geblieben, und trotz des Stresses haben wir dort eine sehr gute Zeit zusammen verbracht.
Und an sich bleibt zu sagen: ich kann die Teilnahme an einem Hackathon grundsätzlich sehr empfehlen – auch und insbesondere für Menschen, die selbst keine Programmierer_innen sind. Auch für euch, egal ob ihr zum Beispiel Designer_innen, Texter_innen, Projektmanager_innen, Illustrator_innen seid oder was auch immer ihr macht: wenn ihr Lust darauf habt, findet sich auch für euch mehr als genug zu tun. Wenn ihr Freund_innen oder Bekannte habt, die euch einmal mitnehmen können, nutzt die Gelegenheit und schaut es euch an. Es ist eine sehr intensive Zeit, die aber auch sehr viel Spaß machen kann.
Das war mein erster Hackathon. Und wer weiß, vielleicht gibt es ja demnächst mal einen zweiten.
Bilder vom Hackathon:
- Hamburg Geekettes – Tag 1 und Tag 2 (Facebook-Alben)
- Wilm Dohmeyer – Tag 1 und Tag 2 (Facebook-Album)
„Der heißeste Hackathon des Jahres“ – Philipp Knodel von der OpenTechSchool Hamburg mit einem Rückblick
Hinweis: Lena ist Mitglied der Community um das Open Source-Projekt Hoodie. Über ihre Erfahrungen in der Tech-Community im Allgemeinen schrieb sie kürzlich bei uns diesen Text.