どうもくすたんです。

2月27,28日にハッカソンを開催したので、その振り返り記事です。

鹿児島.mk #15+beta ハッカソン with Zyaddoga

※ アイキャッチの「鹿児島.mk」のロゴはアプリファクトリーはるni株式会社 様より提供いただきました。

鹿児島.mk #15+beta ハッカソン with Zyaddoga

今回はエンジニアコミュニティの「鹿児島.mk」と鹿児島Z世代コミュニティ(間違ってたらスミマセン)「Zyaddoga」が共同開催したイベントです。

ハッカソン開催の背景

きっかけはこのTwitterです。鹿児島.mk のときと同じく、基本的にはSlack上でのやり取りだけで開催までの段取りを決めました笑
(余談ですが、鹿児島.mkもヒラマサもTwitterのリプきっかけで生まれたので、何か気になることがあればお気軽に @qst_exe までリプください)

もともと鹿児島ではハッカソン自体があまり開催されておらず、僕自身が覚えている限りだと4,5年前に一度開催されたきりだった気がします。そのため、今回のハッカソンをきっかけに細々とハッカソンを開催する文化が根付けばよいなという思惑で開催しました。

今回の開催にあたっては、以下の3点に留意することにしました。

  • 新型コロナウイルスの影響で現地参加できない人もいるので、オンライン参加枠を設ける
  • 開催場所には市の施設の「mark MEIZAN」を利用し、新型コロナウイルスの感染状況的に施設が利用できないときには開催を諦める
  • 無理をしない(いつも言ってる)

ハッカソンの内容

ハッカソンのタイムテーブルはざっくりと以下のとおりです。

1日目

時間 内容
12:30 ~ 開場
12:50 ~ Discord接続開始
13:00 ~ 13:15 趣旨説明・自己紹介
13:15 ~ 13:30 チーム分け
13:30 ~ 17:50 開発
17:50 ~ 18:00 諸注意
18:00 ~ 18:30 撤収

2日目

時間 内容
12:30 ~ 開場
12:50 ~ Discord接続開始
13:00 ~ 13:05 諸注意
13:05 ~ 17:00 開発
17:00 ~ 成果発表
17:30 ~ 17:50 審査(参加者全員による投票制)・結果発表
17:50 ~ 18:00 感想等
18:00 ~ 18:30 撤収

普通のハッカソンと違って、以下の3点を意図的に変えています。

  • 技術的な縛りはなし(大抵のハッカソンには技術的な縛りがあります)
  • グループ分けは参加申込時に取ったアンケートをもとに事前にグループ分けを行う(大抵のハッカソンはグループで申し込むか、当日に気の合うメンバーと即興で組む事が多いです)
  • テーマは「鹿児島を盛り上げるにはどうすればよいか」で、開発の手法やサービスの形式は問わない

これは、初のハッカソンの主催ということでリスクを最小限に抑えるための施策です。加えて、参加者には事前にDiscordに参加してもらうことで、適宜コミュニケーションを取るようにしました。

チーム分け

ハッカソンの様子

当日は、現地参加8人、オンライン参加3人の合計11人でハッカソンを行いました。2人の欠員が出ましたが、特に計画に変更なく当初決めていた3チームでの進行になりました。

ハッカソンは、2日間に渡って行われ、最初に簡単な趣旨説明と諸注意を行ったのち、チームに分かれての開発作業となります。

趣旨説明

人数が少ないようにも見えますが、これは新型コロナウイルス対策で定員10人に対して30人は入ることのできるスペースで開催しているためです。

コロナ対策でスペースの広い場所を準備しましたが、オンライン参加組とビデオ会議するにあたって、各チームともにある程度距離を取る必要があったたために、結果的には広い場所で正解でした。

各チームの進捗

チームのメンバー構成は、参加者の希望や開発経験、現地とオンラインの比率を均等になるようにしました。 そのため、どのチームも開発を主導する人1人と、オンライン参加の人1人は存在する構成となっています。

どのチームもDiscord内に用意されたボイスチャンネルやテキストチャンネルを活用して、コミュニケーションを取りながら開発を進めていました。

チームA

僕を中心に @hyumanase さん、 @reodon2 さんの3人で構成されたチームです。事前アンケートでFlutterを触りたいという人を中心にバランスよく集めたチームとなります。(※ 本当は4人チームですが、1人欠員が出たので3人チームです)

人数こそ減ったものの、元々面識のあった3人だったため、アイスブレイクもすぐに済んで開発に移行することができました。

僕たちの班は「イベント開催で鹿児島を盛り上げるコミュニティを支援する」という命題のもと、connpassをベースとしたイベント開催・参加支援アプリの「かごんパス」を開発することにしました。

オンラインでのFlutterの環境構築に苦戦したものの、なんとか完成までもっていくことができました。

簡単にアプリのキャプチャも貼っておきます。

かごんパス_イベント一覧
かごんパス_タグ設定
かごんパス_タスク一覧
かごんパス_タスク作成

チームB

@zyaddoga_sho さんを中心に5人で構成されたチームです。事前アンケートのおもしろ枠でやりたいという声を元にアイデア力のあるメンバーが集まったチームとなります。

チームBは「竹亭(鹿児島の人なら誰でも知っている人気のとんかつ屋さん)への信仰心を高める」ことを目的とした「taketter」のアプリ開発を行ったようです。時間の都合で完成にはいたりませんでしたが、成果発表では「竹亭への愛」とカンプを交えたアプリの構想を語ってくれました。

チームBの成果物

チームC

@ysl0618kgsm さんを中心に3人で構成されたチームです。Webやバックエンドに強い人が集まったチームです。(※ 本当は4人チームですが、1人欠員が出たので3人チームです)

チームCは「クイズで鹿児島を盛り上げる」をモットーに、クイズアプリの開発を行ったようです。残念ながら時間内の完成にはいたりませんでしたが、Discord内でハッカソン後にも継続して開発を行うようです。

チームCの成果物

成果発表・審査

成果発表は、プロジェクターとDiscordの画面共有を活用してのプレゼンテーションと参加者からの質疑応答にて行いました。

プレゼンテーション

審査は参加者全員で行いました。特に審査員なども声かけていなかったので。

審査の方法は簡単で「自分のチーム以外の良かったチーム(判断基準は自由)に1票入れてください」というルールで以下の投票アプリを使って匿名投票を行いました。

投票の結果、僕たちチームAが見事1位を取ることができました!!

投票結果

投票結果

最後に参加者の感想や運営陣の総括をもってハッカソンは無事に終了しました。

本当ならこのあと懇親会もやりたかったのですが、ご時世なものと時間帯的な問題もあって今回は断念しました。

参加者の声

ハッカソンに参加してくださった参加者の声です。ご参加いただき、本当にありがとうございます!

その他にもハッシュタグ「#kagohack」でつぶやかれているので、興味のある人はご覧ください。

反省点

技術の縛りがなかったために技術選定の良し悪しで勝負が決まってしまった

よくあるハッカソンでは使う技術に関して縛りがあります。しかし、今回のハッカソンは技術には縛りがなく、テーマでの開発するものに関しての縛りしか設けていませんでした。

そのため、技術選定によって開発工数が大きく変化し、それ自体が成果物に大きく影響を及ぼす状態となりました。実際に、Firebaseを使ってバックエンドの工数を削ったチームAは、成果物が完成し、きちんとバックエンドとフロントエンドに分担して作業を行ったチームBとチームCは、成果物が完成しませんでした。

ハッカソンにおいては、何かしらの成果物を作り上げることが大事なので、1日目の最後に発破をかけるなり、事前のフォローアップを入れるなりすればよかったかもしれません。

オンライン参加組が現地の状況がわからない状況が多々あった

初のオンライン・オフライン同時開催でハマった罠でした。運営陣も基本的には現地常駐でオンラインの様子を常に見れていないため、全体説明や成果発表のときにオンライン参加組に声がと届いていないことが多々ありました。

これは、オンライン参加組が視聴している音声を運営陣も常に聴いている状態にして、なるべく問題が起きない状態にしたいと考えています。

チーム開発を初めて行う人向けのフォローが十分でなかった

Gitの使い方や環境構築で1日目が費やされたというチームがほとんどでした。

これに関しては、チーム分けを早く告知してチーム内でのコミュニケーションを十分にとってもらうとかでしょうか。

最後に

色々と問題点がありましたが、コロナ禍での初ハッカソン開催はなんとか無事に終了できました。また半年後か1年後目処に開催したいと思ってます。

次回に開催する際には、以下の要素を取り入れようと考えています。

  • オンライン参加者がもっと参加しやすい仕組みを準備する
  • 審査員として参加してくれる人を巻き込む
  • 事前にプレイベント等でチームが打ち解けることができる機会を設ける
  • SAKURAJIMA HOUSE のセッションの1つに盛り込む

もし「もっと早く開催してほしい」とか「ハッカソンについて色々と聞きたい」という人は Discord からお気軽にお問い合わせください!

https://discord.gg/sAJYFargnJ