Portfolio of
Kaito Horiuchi
ブログ記事『VOYAGE GROUPのTreasure 2021が最高だった』のサムネイル

VOYAGE GROUPのTreasure 2021が最高だった

はじめに

8月9日~8月27日にかけての3週間、VOYAGEのTreasure 2021に参加してきました。非常に濃い3週間だったので、参加するまでの経緯もあわせてこのエントリで振り返っていきたいと思います。

参加するまでの話

一緒に参加したぴしこくんもレポートに書いていたのですが、僕も彼と同じ早期選考枠で3月に応募・面接し、4月に参加が決まっていました。参加する前の想いとしては、

  • どちらかというとフロントエンドが得意で、サーバサイド・インフラに苦手意識があったので克服したい!
  • 普段出会えない方々と出会って交流したい!
  • 学生でのチーム開発をしてみたい!

を目的としていました。
1つ目を具体的に言うと、サーバサイド・インフラをやるときもなぜこのようなコードを書いたのか、なんとなくではなく明確な理由をもって説明できるようになりたいということです。またGoを書けるようになりたいと思っていたので、ちょうどいい機会でした。
2つ目に関しては、僕は経済学部に所属しており周りにエンジニア志望の学生がほとんどいなかったので、全国から集まってくる学生と交流できるいい機会だと思っていました。
3つ目に関しては、大学1年の後半からずっと長期インターンをしているのでチームでサービス開発をすることには慣れているものの、全員学生のチームでアイデア出しから行って短期間で開発をする、というのはやったことがなかったので経験してみたいなと思っていました。

講義期間

Treasureの前半では、各技術領域に関する講義が行われます。1日目はバックエンド(Go)講義、2日目はフロントエンド講義、3日目はインフラ講義でした。どの講義も聞くだけではなく、じゃあ今聞いた内容を実践してみよう!という感じで課題が与えられます。
実装する前に4、5人のグループに分かれてどのように実装するかを話し合うのですが、これが新鮮でした。はじめに実装したい機能の理想形を考えつつも、講義課題の制限時間はとても短いので制限時間内で実装しきれるようにコアな部分だけにそぎ落としていく過程で様々な意見が飛び交い、面白かったです。また課題が終わった後は講師の方々にPRをレビューしていただけます。同じ課題でも実装方法やコードの書き方が人それぞれだったので学びが多く良かったです。

中間課題

講義終了後、学んだ内容をもとにしてベースアプリに機能を追加する、という中間課題が与えられました。僕は苦手なバックエンドを後回しにしてそのままやらない危険性があったので、いいね機能だけは絶対実装する!と決めてAPI(Go側)から書き始めました。(いいね機能の実装が完了した後はreact-markdown入れたり、UI整えたりなど案の定フロントに寄っちゃっていました笑)
中間課題期間終了後、クルーの方からフィードバックをいただけたり、みんなのPRを覗くことができたりして勉強になりました。

講義期間②

Treasure2週目はDB講義とアイデア講義からはじまりました。
DB講義はあのt-wadaさんからデータモデリングについて講義していただきました。これまで何度かDB設計はしたことがあるのですが、なんとなくでやってしまっていたなぁと反省しました。これも聞くだけではなく、実際にグループに分かれてデータモデリングを実践していったのですが、前の講義のとき以上に議論が白熱していい経験でした。
アイデア講義では、時流をもとにUNS(User, Needs, Solution)を考えていくという手法を学んだあと、これまで同様グループに分かれてそれを実際に体験することができました。

チーム開発

すべての講義が終了した後はいよいよチームに分かれての開発がはじまります。テーマはほぼなにも決められていないに等しいので、アイデア講義の内容をもとにそれぞれのチームで1から開発するプロダクトのアイデアを考えなければなりません。僕たちのチーム「energy-drinkは一日2本まで」では、まずはじめに開発期間から逆算し、どの日にどこまで進んでいる必要があるかを考え全体の開発計画を立てました。実際にこの計画通り順調に開発を進めることは難しく、なかなか思うようにいかないところもありましたが、この計画があったからこそ現在の状況や今何をいつまでにしなければならないのかが明確化され、とても良かったです。
その後さっそくアイデア出しを行ったのですが、アイデアはどんどん出てくるけどそれをまとめる(収束)ことがなかなかできなかったり、考えが思うようにメンバーに伝わっていなかったり、僕だけですが大学にワクチン接種に行って半日ダウンしてしまったりと、様々な困難がありました。僕たちのチームはとことん話し合っていたので、アイデア提出期限までに決まるのかなとちょっと不安でしたが、何とか間に合わせることができました。
いざ、設計・開発のフェーズに移ります。DBやAPIは全員で設計し、その後各々で実装という流れを取りました。この設計フェーズでもかなり細かいところまで議論してしまうというシーンがちょくちょくあり、そのたびにサポーターさん(クルー)から助けられていたなぁと感じます。しかし、この設計の段階で最低限プロダクトとして成り立つためのコア機能のみにそぎ落とすことができたため、それ以降は比較的余裕をもって開発できたように思います。コードフリーズの2、30分前には開発が完了できていたのも良かったです。
結果的に、僕たちのチームが開発した「俺でも自炊できるくん」はグランプリ・UI/UX賞をいただくことができました。


実装が終わってやり切った感に満ち溢れていたのと、オンラインということもあって最初はあまり実感が湧いていませんでしたが、チームに分かれてから何度かあったサポーターさんたちとの面談で「やるからにはグランプリを獲りたい」と言っていたのでとてもうれしかったです。

Ajiting

今回のTreasureは講義から開発まですべて定時(10時~6時)内で行われたのですが、VOYAGEには定時後に雑談したい人が集まりわいわいする「Ajiting」という文化があります。僕はオンラインでのコミュニケーションが苦手なところがあり、Treasureの序盤は講義の中でもAjitingでもあまり積極的に話せていなかったのですが、だんだん慣れてきた&みんなのことがわかってきたころからこのAjitingでかなりみんなとの仲を深めることができました。他チームがどのように開発を進めているのか聞いてみたり、クルーの方に普段どんなことをしているのか聞いてみたり、たすくくんのエントリにもありましたが深夜にゴリゴリの技術トークをしてみたりと、開発の時間が制限されていたからこそしっかりとコミュニケーションを取れる時間が生まれてとても良かったです。なんならTreasure終了後でも時々集まることがあるので、このようなコミュニケーションの機会を作っていただけて感謝しかないです。

さいごに

様々なことがありとても密度の濃い3週間でした。一言でまとめると「めっちゃ楽しかった!」です。先輩からTreasureを勧められたことがきっかけだったのですが、参加して本当によかったなと思っています。3週間の間に起こったことをこのエントリに全然書き切れていない!という感じですが、すべてをまとめていてはとんでもない文章量になってしまうのでこのくらいにしておきます。
途中ちょくちょく出てきましたが、一緒に参加したTreasure生たちも記事を書いているのでよかったら見てみてください!