Digital Hack Day 2021に参加してきました。

https://hackday.yahoo.co.jp/

作品

作品の紹介画像

(月曜日に夜ふかししてる人の宣材写真をAIでキャラクターにしてみたのですがすごく可愛くなりました❤️ 右上)

キャラ生成結果の例

キャラ生成結果の例

上) 自分: 闇を抱えてそう(某圭一くんっぽい) | 下) 某トップユーチューバー: 個性強そう

キャラクター生成は前からやってみたかったので、面白かったです。

オンラインハッカソン

最近はオンラインのハッカソンになって、チームメンバーと一緒の場所で開発することが減りました。

自分の場合、なぜか毎回同じ人とチームを組むということが少なく、人が入れ替わったり、新規パーティ編成になることも多いです。
そうなると以心伝心での意思疎通は難しく、何かしら明示的なコミュニケーションする必要があります。 💭

自分のチームはなんとなく流れで、自分が開発方針を決めることが多いので、アイデアが決まったら、どうやって作るのかを即席の図で共有しつつ、テキスト/ボイスチャットで詳細を伝えてます。

即席アーキテクチャ

即席アーキテクチャ

※最終的にはこの図の通りではないです

図はiPadアプリのGoodNotesを使ってApple Pencilで書いています。四角や丸などをフリーハンドで書いても補正をしてパス化してくれるので便利です。✏️
テキストもiPadOS 15のスクリブルを使って手書きで日本語を入力することができます。(若干相性悪い時があるので、音声入力も使います)

自分の頭の中で描いているものと全く同じものを声や文字だけで伝えるのはかなり難しいことがだんだんと分かってきたので、図を使うようにしているのですが、結構良い気がしています。
今回は結局この図のWindowsのところを自分が全部作ることになったので意味あったかというとあれですが、作業分担などを考える上でも良いので大事です。

Web APIの仕様書の一部

Web APIの仕様書の一部

ハッカソンなのにAPIの仕様書も書きます。えらい。本業はiOSアプリエンジニアなのでSwiftで実装した際に実装コストが低いAPIを作るのが得意です。※実装速度優先のI/F 😇

作業分担はGitHubのIssueにひたすらタスクを作って、空いてる人が取るスタイルです。 ハッカソンは開発だけでなく、作品の説明などを作ったりする作業もあるのでそういう細かいIssueも最初に作っておくと、忘れなくて良いです。

オンラインでの開発だと作業で詰まっている人がいるかや、手の空いている人がいるかどうかが分かりにくいです。定期的にpingを送って状態を確認する必要があります。⚡
集中していると忘れがちなので、Slackなどでリマインダーをセットして定期的に雑談も兼ねて集合すると良いかもと思いました。

アイデア

アイデアを考えるところがハッカソンで一番大変です。

新規編成チームの場合は、アイデアの優先事項の共通認識を作ったほうが良いです。 賞を取ることを目指すのか、作りたいものを作るのかなどなど。

ハッカソン参加者にはガチ勢とエンジョイ勢がいるので、そのあたりが噛み合ってないとアイデアがまとまりにくいと色々ハッカソンに出てみて思っています。

ハッカソンは良いぞ

締め切り駆動開発になって何かしら短期間で形になるので、達成感があります。

そして普段真面目に取り組まないような技術に必死になれるので、あえてよくわからない技術に挑戦してみると、結構スキルが身につきます。💪

うまくいかなくても後々仕事に活きたりして、ハッカソンはコスパ良いのでおすすめです。