見出し画像

「都知事杯オープンデータ・ハッカソン2022」に参加しました。

始めに

RUNTEQ27期生の柊と申します。
今回は表題の通り、ハッカソンに初めて参加しました。
そこでFinal Stageの10グループまで残ることができ、
貴重な体験を得ることができました。
その経験に関して書き連ねていこうと思います。

そもそも都知事杯ハッカソンとは?

元々私は「ハッカソン」という言葉すらこれまで知りませんでした。
「RUNTEQ」という私が通っているプログラミングスクールで、
このイベントに参加してみませんか?という告知があり、
私はそこで初めてハッカソンに関して知りました。

ハッカソンとは、システムなどを解析するという意味のある「ハック(Hack)」と、42.195キロという長距離を走る「マラソン(Marathon)」を合わせた造語。
これは、主にIT業界で行われているイベントの名前で、一定期間で、決められたテーマによるシステム作りを行うというものです。
プログラマーやエンジニア、デザイナーなどがチームになって、24時間、3日、1週間など、一定の時間で開発を行います。この期間は集中して業務に当たり、最後にそれぞれのチームの成果を発表し合い、優秀者を決めるという、IT業界におけるお祭りやゲーム大会のような試みです。

カオナビ人事用語集 編集部
より

更に都知事杯オープンデータハッカソンはその名の通り、
オープンデータを使用して開発を行うというものでした。

都は、行政が保有するデータを積極的に公開し、シビックテックや民間企業等が新たなサービスを創出することで、都民の利便性向上に繋げていく取り組みを進めています。
この取り組みを加速するため、この度、都のオープンデータを活用して行政課題の解決に向けたデジタルサービスの提案を行う「都知事杯オープンデータ・ハッカソン(※)」を実施いたします。
多様化する行政課題の解決に向け、シビックテックの力も取り込み、都民のQOL向上につながる新たなサービスを創出する官民協働スタイルを構築することを目指します。
(※都知事杯オープンデータ・ハッカソン:エンジニアやプランナーがそれぞれの技術やアイデアを持ち寄り、短期間に集中してアプリケーションなどを開発し、成果を競う開発イベントです。)

オープンデータハッカソン 事業目的より

エンジニアなら夏はフェスよりハッカソンらしいと、我らが校長ひさじゅさんも仰っていますw

ハッカソンに参加した理由

私は元々チーム開発自体には興味がとてもありました。
他のRUNTEQ生がされているのをみて、
とても楽しそうだと感じていましたし、
勉強になりそうとも考えていました。
チーム開発をした人に話を聞いたイベントに出た際も、
同期がチーム開発をしているのを見た時も、
楽しそうでとても羨ましく思っていました。
ですが賞とかを決める大会に出るのはとても躊躇いがありました。
私の当時の進捗としては、
一応RUNTEQのカリキュラムは終えていましたが、
自分の実力があるとはとても思っておらず……(それは今もですが)
技術力で足を引っ張ってしまうことをとても恐れていました。
更にチームの組み分け自体はRUNTEQの運営の方で行ってくれることも、
とても不安でした。
メンバーと仲良くなれなかったらどうしよう……
27期のくせに何もできないと失望されたらどうしよう……
そもそも自分に何かできるのか……
貢献できるのか……
考えれば考える程悪いことばかり考えてしまっていて。
あとはその当時自分のPFを作成するフェーズにもなっており、
両立できるのかも不安でした。
実はその当時は裏で結構悩んでいました。
(当時のtimesとか見るとそこでも不安を吐露している)
しかし最終的にはこんな機会を貰えることは滅多にない!
チーム開発を運営がお膳立てしてくれる機会なんて早々ない!
不安になる前にやってみよう!
と思って、結局なんか募集が始まったその日に募集していました。
(本当に悩んでたの?)
ただこの第一歩が大きかったのだなと今思うと感じます。

とはいえ直前のチーム発表の前の私のツイートは無茶苦茶残念な感じ
できるだけのことはするのは当たり前だろ……

いざチームメンバー発表!そしてまさかのリーダー抜擢!

いざRUNTEQ運営の方でチームメンバーが発表されました。
今回知っているのは23期の先輩一人、他は初めましての方お二人。
そして何故かそこで仮リーダーに抜擢されました……
それまでの私はオンラインでもくもく会をよくやっていたことから、
指名して下さったとは思うんですけど、正直リーダーなんて、
学生の頃も、社会人になってからもやったことがない。
取り敢えず仮だし!と自分にやれることを考えて、
まずDiscordとMattarmostでチャンネルを作り、
Notionのページを準備し、初顔合わせMTGの日時をセッティングしました。
そして当日の顔合わせMTG。
名前を見ててわかっていたけど女性は私一人、
本当はリーダーを23期の先輩に譲れないかな〜とか思ってましたが、
そのままリーダーを続行していくことになりました。(不安……)
でも折角任せて貰えたし、頑張ってみようと思いました。

アプリのアイデアを決めるのに難航

今回はオープンデータを使用して、
行政課題を解決していくのがコンセプトのハッカソン。
なのでオープンデータの使用が必須になっていました。
そしてこのアイデア出しで一番苦戦しました。
オープンデータを見ていると幾つか問題点があったのです。
・オープンデータに文字化けや抜けがある
・リンク切れが起こっていたりする
・ファイルの形式がPDFで使用しにくい
更にオープンデータがあったとしても、
・充実していると思ったデータは既にアプリに使用されている
・充実しているデータを使用した競合アプリに勝てそうもない
と言った問題があり……。
最初出てきた案は行政課題は解決できても、
オープンデータがないことで却下。
その後は色々な案を出しては、競合アプリがあったり、データがないとかで全部没になっていき……。
最終的に決まったAEDのアプリも、
これが自分達が課題だと感じているか?
自分ごとだと思うのか?と言った観点から、没になり……。
一度画面遷移図やER図まで作成していたのに、
ダメになってしまったことから、
すっかり私達の士気は下がっていました。
最終的にはひさじゅ校長やRUNTEQの運営の方に相談し、
アイデアを貰い、
最初少し出ていた防災アプリに舵を切り換えることにしました。

迫り来る時間の中での開発

なんとかアプリ案が固まりましたが、とにかく時間がない。
ハッカソンのスケジュールとして、
8/28に途中経過の発表、
9/18がFirst Stageの発表。
最初の発表まで既に1ヶ月ぐらいしかなく。
まず急いで画面遷移図とER図を作成し、
ER図でよくわからないところは講師の方に質問したりもしました。
その二つが決まった後も、
・使用技術の剪定
・GitHubの運用ルール決め
・タスクの振り分け
など考えることが多く、後々にも影響してきそうだった為、
慎重に、でも早く決めなければならず……。
そしてこれが決まってもここからが本番な為、
ちゃんと無事作り切ることができるのか、という不安は尽きませんでした。
メンバーは誰もチーム開発自体は体験したことがなかったため、
(厳密にいうと23期の先輩は既に就職していたので、
業務自体は経験済み)
まずGithubでチームを作ることも初めて、
メンバーを招待するのも初めてで。
ただそういうチーム開発の準備自体はとても楽しかったです。

チーム開発で色々あったこと

やはりチーム開発は初めてだったので色々なことがありました。
・リポジトリへのアクセス権限を付与しておらず、レビューして貰えない
→こちらは設定の問題だったのですぐ解決
・PCや環境が違うので、バージョンが揃わない
→とはいえそこはあまり問題にならなかった
・chart.jsで作成したグラフが表示される人とされない人がいる
→yarn add -D @types/chart.jsで設定を追加することで解決
しかし原理がよくわからずモヤモヤが残る
・gemファイルを上げなくて、masterブランチと差異が出てしまい、
git pullができなくなる
→ブランチを切り直して解決
やはりチームでGithubを使う経験がなかったので、
最初はそういうトラブルが多かったです。
というかそもそもその為に開発されているツールなのに、
ずっと個人でブランチ切って、マージして……
というのを繰り返していただけでしたので……
人のコードを見てレビューをするのも大変勉強になりました!
そしてチーム開発をして一番勉強になったのが、
やっぱりGithubの使い方です。
これが経験できただけでも、チーム開発を行ってよかったと思えました。

リーダーとして心掛けていたこと

偶々リーダーをやらせて頂きましたが、やはりそんなに向いてないのでリーダーシップとかは全然取れませんでした。
そこはチームのメンバーに支えられつつ、
色々と助けていただきました。
まずはMTGのスケジュール決めとか、
MTGを最後にまとめるのとか、
そう言ったことは意識していました。
最初の環境を整えたのも、
皆がスムーズに話し合いできたら、
開発ができたらいいなと考えていました。
(Notionとかはチーム開発した先輩のNotionとかを参考にしました)
また最初は皆全然話したことない関係から始まったので、
MTGの最初にアイスブレイクとして雑談をしてみたり……
(忙しくなってくるとなくなりがちでしたが)
rails newやgemのインストール、
ハッカソン運営との連絡などは私が担当しました。
こういう細々としたことは、
出来るだけリーダーとしてやりたいと思っていたため、
進んで手を挙げるようにしていました。
(役に立てていたかは不明)
後のプレゼン発表もリーダーとして、
行うことになりました。
ただ一方で技術の方はあまり役に立てていた気はしないです……。
私がやったことは簡単なことばかりでした。
モデルの作成やgemの導入、
少し苦労したのがHerokuへのデプロイぐらいで……。
結局一番実装して下さったのが一番期が若い方で。
初期に議事録やプレゼンのスライド作成を振ってしまったのを、
とても後悔しました……。
今でもタスクの振り方に関してはうまく行かなかったと思っています。
ただあの時は時間がなく、
できる人ができることをやっていくスタンスのお陰でアプリがなんとか実装できたと思われます。
(そのため結果オーライな気もします)

予想外のFirst Stage突破

私達が作成したアプリは、
地域の災害危険度を診断し、準備すべき災害グッズを提案するアプリ
「サイ適くん」になります。

お住まいの地域の危険度をグラフで表示します
さらに危険度に応じたグッズをを表示 Amazonと楽天のリンクを用意

最初に区市丁目名や町丁目名を選ぶ画面があるのですが、
そこの実装に苦労したり、楽天APIをどうやって使用するんだ……?
みたいな苦労があったり。
そこは全部前述した凄い人が数日で作成してくれました。
(本当に凄い)
そういえばアプリ名を決めるときや、
チーム名を決める時も結構苦労しましたw
東京都内限定になりますが、よければ見てみてください↓

First Stageの時は本当に最低限の機能だけを実装し、
UIとしてはわかりやすく、がコンセプトでした。
発表は前述の通り私がやることになり、
それでもスライドは最高に良いものをメンバーが作成してくださったので、
私はそれをひたすら練習しました。
実はFirst Stgaeを突破できる自信はあまりありませんでした。
アプリとしては短い期間の間に実装できましたし、
チームメンバーのお陰でここまで来られたという気持ちでいっぱいで。
正直アイデア出しの辺りでそのまま霧散してしまうんじゃないか、
といった危機があったにも関わらず、
ここまで来られたのでもうそれで良い、
Final進出は無理だと思ってしまっていました。
ちょっとその時はチーム開発と自身のPFの両立がしんどくなってきたのも率直な思いでしたw
リーダーとしてこのまま続けていける気もしていませんでした。
(別にそんなリーダーとして仕事もできていませんでしたし、
フルコミだし甘えなんですけどね……)
でも結果はまさかのファイナリスト進出、
プレゼンの動画も残り、チーム専用のページが作られ、
インタビュー動画も作成され……
急展開にビビりました。

初めてオフラインでチームメンバーに会う

東京で面談をします、インタビュー動画撮影しますと言われ、
急遽10月1日にメンバー全員が東京に集合しました。
東京に行くの予想外なんだが……?
オンラインでよかったのでは……?
と思いつつメンバー全員の日程を折角擦り合わせたので、
東京のBornrex社に向かいました。
(後に聞くとオンラインでもよかったみたいです)
そこでメンバーと初めて会い、打ち合わせをし、
一緒に一時間ほどの長いインタビューを受け、
疲れ果てながらも皆と飲みに行きました。
その時、ようやくFinal進出したんだなとか、
チームメンバーと顔を合わせたことで、
ちゃんとメンバーが実在したんだなとか感じました。
(いやRUNTEQ生はTwitterとかと違ってちゃんといる感はあるんですけど)
最初はちゃんとチーム開発を出来るか不安でしたし、
自分がチームに貢献できているかも正直わからないです。
迷惑ばかりかけてしまったと思います。
でもFinalに進出できた時点で、サービス実装支援を受け、
来年3月までにサービスを一緒にブラッシュアップし、
本格的にリリースする機会に恵まれます。
それってそう簡単に受けられることじゃないです。
そしてその機会を勝ち取ることができました。
ここまできたら最後までしか頑張るしかないと、
私はチームメンバーにオフラインで会った時、
そんなことをこっそり思っていました。

Final Stageまで

Firstが終わってからFinalまでの時間って意外になくて、かなり焦りました。
当然今からアプリを更に良くしたくても、
時間がないので出来ることは限られてますし。
でも何も進化がないのは勿体無い。
その為MVPリリースをして、
RUNTEQの方にフィードバックをいただいたり、
東京に住んでいる友達に見せて感想を貰ったりして、
少しでも改善できるポイントを探しました。
(本当に感想くださった方に感謝です)
アプリに説明をつけたり、
プレゼンのスライドをRUNTEQ運営の方に見ていただいたり、
プレゼン練習も見ていただいたり。
Firstの時にもそういうことをしていただけたので、
本当にRUNTEQの運営は手厚かったんですよね、
そこで誰かに相談できるのは一人でハッカソンに参加した際には、
得られないサポートなのでとても有難いことだと感じました。

Final Stage参加 そして……

Final Stageは本当に緊張しました。
結構な人数がいて、ZOOM配信もしている中でプレゼンをするなんて、
人生で体験したことはありませんでした。
審査員の方からどんな質疑応答が来るかもわからなくて、
色々質疑応答は準備していましたけど、本当に怖かったです。
緊張で声は震えていたし、手も足も震えを抑えるのに必死でした。
Firstだって緊張して、PCの前に座っていた時、
足はガタガタ震えていましたけど、その比じゃないほどの緊張でした。
結果的には練習した通りには出来ていたと思います。
プレゼン自体には後悔はないです。
でも質疑応答があまり来なかった時、
あんまり手応えなかったなと感じました。
周りのサービスの方がレベルが高いのはわかっていましたし、
その前のサービスなんて、
本当に技術と熱意で殴りにかかってきてるなと思いましたし……。
でも自分が出来ることはやり切ったと思っていました。
だから結果発表の時も、
多分賞は貰えないと思っていました。
仕方ない、周りの方が行政課題を解決しているし、
アプリのクオリティも高い。
自分達がファイナリストに残っただけでも凄いと。
ここに立ててる時点で自分達は頑張ったと。
賞の発表をされるまでは本気でそう思ってたんです。

結果発表を受けて

結果としてサイ適くんは賞を一つも取れませんでした。
そしてそれがとても悔しかったです。
ここまできたら何か賞を取りたかった、
本当はそう思っていたんだなという自分に驚きました。
発表前までは、ここまで来れただけ凄いと思っていたのに。
チームの他のメンバーは頑張ってくれました。
私一人だったら絶対Finalに行けなかったですし、
本当に貴重な体験ができました。
とてもとても感謝しています。
だから私は一番自分に実力がなかったことが悔しいです。
もっと私に技術力とかデザイン力とか発想力があれば。
そうすれば何か変えられたかもしれない。
行政課題として少し弱いと思われてしまったのなら、
そこはアプローチが足りなかった。
デザインも最低限しか出来なかった。
技術としてはそこまで難しいことは出来なかった。
周りのサービスが本当に素晴らしかったですし、
今回最優秀賞を取られたサービスは、
私も上京したら絶対使いたいと思うサービスでした。
勝てないと感じてしまいました。
勿論私は今出来ることは一生懸命やりましたし、
プレゼンだって私が今持てる力を出したと思います。
そこに妥協は一切なかった。
でもだからこそ私は余計に腹立たしい。
所詮自分はプログラミングスクール生で、
実力なんかないし、
優勝なんて無理だとどこかで自分のことを諦めた自分が。

最後に

とはいえサービス実装支援はここから始まりますし、
サイ適くんを良いサービスに出来るかはこれからの自分達で決まります。
私はまだまだ実力がなく、出来る事が限られてますが。
この経験を糧に、今後も頑張っていけたらと思います。
このチーム開発でリーダーを任せて貰い、
初めてのハッカソンでFinal Stageまで進出できたこと。
それ自体は本当に素晴らしい経験になりました。
チーム開発なんて無理だよと弱気なことを思っていた自分でも、
プレゼンなんてやりたくないと思っていたあの時よりも、
確実に今の私の方が成長できていると思えるからです。
だからやっぱりあの時一歩を踏み出して良かったです。
(今回の事はむしろ上手く行きすぎてしまった感はありますがw)
今回のハッカソンの経験は、
私の中でエンジニアの将来を決める大きな出来事にもなりました。
もっと素晴らしいサービスを作れるような素晴らしい人間になりたい、
もっとチームを導けるような人になりたい、
開発力もリーダー力も磨いていけるような人生にしたいと感じました。
私は弱いのでそんな風になれるかはわかりませんが。
頑張りたいなって思います。
……とはいえこれからハッカソンとか参加してみようかなと考えている方は、
そんな大きく考えなくても大丈夫です。
まずはやってみたい!
という気持ちでハッカソン参加やチーム開発をやってみて欲しいです。
そうしたらこの数ヶ月で大きく成長できるかもしれません。
きっと来年もRUNTEQで東京都知事杯ハッカソンの支援があるのではないかと思います。
その時はRUNTEQから最優秀賞を取るチームが出ることを、
私は祈っています。
そして私も何処かでまたハッカソンにリベンジできればと思います。
最後に大会関係者の方々、開催・運営本当にありがとうございました。
本当に運営の皆様方、お疲れ様でした。
来年度も楽しみにしております。
長文でしたが、ここまで読んでいただきありがとうございました。


この記事が気に入ったらサポートをしてみませんか?