初めに
ありがたいことに技育展2022に登壇させていただけたので、その記念ということで感想などを報告していきたいと思います。
技育展とは、自分が開発したものを発表して他の登壇者と競う展示会で、最近少しずつ応募者が増えているらしい(?)
しかし、私は開発済みの作品などは持ち合わせていないためゼロからの開発。ほとんどハッカソンのようなモチベーションで参加しました。
実は、技育展の登壇が決まって開発を進める中で得た学びがあまりに大きく、アウトプットの場としてブログサイトを解説したという経緯もあります。
追記:2022/09/23の結果発表にて、「優秀賞」をいただくことができました!!最優秀賞には届かなかったものの、自分たちの成果が認められた実感が湧いて嬉しいです!
成果物その他
感想の前に、成果物などをのリンクを貼っておきます!
正直かなりの力作なのでぜひ!
githubリポジトリ
ダウンロードページ
動画リンク 準備中
出場した経緯
今年の4月くらいまでは、本を読んだりネットで調べたりして何かを作るということはしていたものの、チーム開発をしたり、作品を人前に出すという経験は全くありませんでした。
そんな時に自分の所属しているサークル内限定のハッカソンが開催され、興味本位で参加したところ(チームメンバーのおかげで)優勝してしまい、それに味を占めて外部のハッカソンにもエントリーをするに至りました。
それから当然ではありますが、個人で開発をしているよりも効率的に成長できるからという理由もありました。特に、チーム内に自分よりもできる人がいると、分からない箇所は相談しながら開発を進めることができるのも大きなメリットだと思っています。
ざっくり言えば、「強くなりたいけど特に目標もないし、試しに出てみるかあ」くらいのノリです。
感想
チーム結成時
私の所属しているサークルでは8人の参加希望者がいたため、4人ずつ2チームに分けての参加となる。
チーム編成としては、「部長」・「副部長」・「後輩」・私という構成で、こう役職だけ見ると、なんかすごいチームだなあと感じる。(でも、役職なくても強い人はいっぱいいる)
私以外の3人のうち、2人とは以前チームを組んだことがあり、心持ちはだいぶ楽。
応募フォーム作成(アイデア出し)
どうやら最近エントリーが増えているらしい技育展。登壇者を絞るためにエントリーの段階でプロダクトの概要・アイデアなどを提出し、どのチームを登壇させるかの審査が行われるシステムのよう。
意気揚々とチームを組んだはいいものの、ここで落ちると開発すらできずに解散となる。やばい。
数週間に渡ってdiscordのボイチャに集まり、アイデア出しを行った。
やるからには優勝が欲しい。勝てるアイデアを探そうと必死。
決定したかに思えたアイデア(今後使うかもしれないので書かないでおく)も、これじゃ勝てないと判断して練り直し。
そんな時に出た、「たまごっちみたいなのを作りたい」・「姿勢等を矯正して快適なエンジニア生活」というアイデアを掛け合わせた、「開発 x たまごっち」が刺さり、決定した。
これでプロダクトのコンセプトは、「作業をすることでたまごっちを育てる。作業中は、姿勢などのアドバイスを受けることができる」となった。プロダクト名は「こんとれ!!」である。
もちろん「たまごっち」はあくまでもイメージであり、実際にたまごっちのキャラクターを使ったりはしていない。
登壇確定時
応募フォームの締め切りからしばらくすると、代表者にメールで結果が通知される。
正直アイデア段階で手応えはあったものの、全く不安がないわけではない。
チームメンバーから転送されてきたメールには、「合格」の文字。
セーフ!これで開発できる!!
「喜びというより安堵しかない」ってセリフを聞くたび、何カッコつけてんだって思ってたけど、こういう時に使うんですね(?)
さて、無事登壇が確定すると、大量のアメニティが送られてきた。
外部のイベントが初めての私にとって、この量は衝撃である。
開発期間
技育展は展示会なので、「絶対に新しいものを開発しないといけない」などの決まりはないが、我々はあくまでも「ハッカソン」として参加しているためゼロから作る必要がある。
要件定義・技術選定・開発・デバック……やることは無限にある。
どこまで間に合うかは分からない。
とりあえず、「こんとれ!!」に必要な機能を洗い出し、技術選定を行なっていく。
最低限必要な機能は、こんな感じになった。(一部抜粋)
- キャラ関係
- 画面左下にいる
- 成長過程は?
- 卵 → 赤ちゃん → 子供 → 大人 ?
- ショップ
- 経験値
- (ここで食料を買う)
- 作業機能
- 作業開始
- モーダル画面
- 作業終了
- 結果通知モーダル
- 作業データを保存する、
- 作業中
- 経験値を溜める
- 姿勢などの検知
- 集中力がないか、眠たいか、猫背かなど判定して酷かったら通知
- 画面のどこかで待機 (非表示可能)
私が主に担当したのは、上記の機能のうち「姿勢などの検知」部分。機械学習を使って骨格を検知して、スコアへの換算が必要になる。その他、発表前日はUI/ロジック部分もお手伝い程度に頑張った。
本当はプロセス間通信を使って機械学習の部分をpythonに投げる予定だった。だから開発期間の前半はそこで格闘してたんだけど、途中で「機械学習部分もtypescriptでいけね?」ってことに気がついて、急遽路線変更。私の二週間は無駄になった。プロセス間通信の話も今度書きたい。
発表前日〜当日
本当にやばい。全然終わってない。
ハッカソン恒例。「前日の徹夜開発」の幕開けである。
お家をレンタルできるサービス「エアビー」をギリギリで取って、メンバー全員で泊まり込む。
交代で一人ずつ、一時間ほど仮眠をとりながら、全力で開発を進める。
しんどかった。
でもちょっと楽しかった。
頑張った。
多分この1ヶ月の合計よりも多く作業した気がする。
夜食に食べたセブンのラーメンサラダは今までで一番美味しかった。
夜食を食べて、monsterを飲みながらチェックアウトギリギリまで粘って、リリース目前。
一度帰ってシャワーを浴びる。
発表は15:30から。今は10時。
ここからデバックとリリース。発表の準備。
1時間程度で再び集合して、追い込みをかける。もう場所がなくなってしまったので、今度はメンバーの家だ。
発表者は私。人前で話すことが苦手なので、克服しようとつい名乗り出てしまったのだ。
この1ヶ月の成果全てがかかる発表。名乗り出てしまったことをずっと後悔していた。
…………まあ、やってしまえば大したことはないというのは世の常であって。
無事発表まで終えることができました。
えらい! 頑張った!
達成感に浸りながら入る(ほぼ)徹夜明けのベッドは最高でした。
終わりに
自分的には割と頑張った1ヶ月だったんじゃないかと思っています。
他の登壇者のレベルも高く、そんな人たちと競うことができて面白かったし、やはり実際にプロダクトを作ることによって得られる学びは大きい!
技育展含めて今後、勉強したこと・理解したことがあれば記事にしていきたいと思います。