電電のブログ

電電生だったひとのぼやき

VOYAGE GROUPの夏インターン『Treasure』に参加してきた.

電電です.昨日インターンが無事終わってちょっと落ち着いたのでインターンで何をやったのかとその振り返りを書いていきたいと思います.

f:id:denden_seven:20190901132904j:plain:w300
こっちでも電電で呼ばれてました.

今回参加したインターンの紹介と全体の流れ

今回行ったインターンはVOYAGE GROUPの夏インターン「Treasure」です.
voyagegroup.com

Treasureとは
期間 : 三週間
前半 (7日間) : 講義、後半 (8日間) : チーム開発
参加人数 : 30人
報酬 : 12万円
遠方からの参加の場合東京までの交通費支給


※どういう経緯でこのインターンを決めたのかは以前書いたので気になる人はそっちも読んで見てください.
denden-seven.hatenablog.com


3週間のインターンで,前半は途中週末を挟んで,Go, java script, DB, security , front, infra, アイデアの出し方の授業がありました.
僕は普段Python3とかC++ほんのチョット触るくらいな人なので,
webの知識はほとんどなしだったので,出された事前課題と授業にはかなりヒイヒイ言いながら付いて行ってました.
(TAの人たちにはほんっとうにお世話になりました.ありがとうございます.)

あと,最初の週末に学んだことを生かして何か作ってくるという中間課題がでました.
正直自分の実力的にGolangで一からサーバー立てて,そっからフロントを触るのは時間的に厳しいと判断し,ほとんどフロントだけで「誰でもAR名刺」
というものをつくりました.自分の実装力のなさと制限時間を考えて,割り切ったアイデア勝負のものだったので実装自体は重くなかったはずだったんですが,いかんせんライフサイクルとかfetch周りで苦しみました.まあなんとか発表できるラインにできました.

これはそのうち誰でも使えるように整備して公開したいです.

中間課題が終わってからは二日ほど授業をやって,グループによるチーム開発が始まりました.そっからバリバリ10日くらいアイデア出しから始まって,バックエンド,インフラ,フロント,DBをみんなで作っていきました.チーム開発のところはあとでまた触れます.

こんな感じの3週間でした.正直いうとめちゃくちゃ楽しかったです.
あと,僕は京都からの参加だったので,他のインターン生とシェアハウスで暮らしてたんですが,今改めて,一人でこの記事書いててちょっと寂しいです.
(みんなみてるか??)


では一個ずつ細かく見ていきましょう

VOYAGE GROUPについて

アドテクを主にやっている会社です.アドテクを説明しようとすると広告の歴史とかそこらへんを説明しないといけないので僕はパスします.
あと業界の構造がややこしすぎて僕も途中から「ナニモワカラン」ってなってたので気になる人はGoogleさんに聞いてください.
アドテクだけかとおもいきや新卒採用に力を入れていたことから派生して,サポーターズとかエンジニアの採用や紹介もやってたり,かなり幅広いです.あと,僕は最初に訪れた時オフィスが綺麗すぎてビビりました.


f:id:denden_seven:20190901132106j:plain:w400
入り口

f:id:denden_seven:20190901132157j:plain:w400
綺麗
f:id:denden_seven:20190901132209j:plain:w400
カフェじゃないこれ?
f:id:denden_seven:20190901132539j:plain:w400
シャレオツすぎる...
f:id:denden_seven:20190901133432j:plain:w400
コーヒーショップもあります
f:id:denden_seven:20190901132253j:plain:w400
オフィスとは...?
f:id:denden_seven:20190901132238j:plain:w400
おやおや???

あとなぜか,オフィスの中にテントがはってあったり,キャンプ用のロッキンチェアがあったり,

f:id:denden_seven:20190901141124j:plain:w400
ロッキンチェアー
漫画の書庫があったりして,僕の中のオフィスの概念が崩れ去りました.オフィスって何???こんなワクワク空間をオフィスと呼んでいいんですか???

授業について

授業はそれぞれその言語であったり,システムの方々が教えてくれます.
授業というと大学の授業を連想して,板書してみたいに思いがちなんですけど実際に手を動かして,DB作ったり,セキュリティのアラート出したりとてもためになりました.あと,TAの方々が常に10人くらい後ろにいてくださるので,ちょっとググって「なんもわからん」ってなったら聞くとかいうレベルでした.
(本当にお世話になりました)
授業自体はそもそもweb触っている人が多いせいもあって,結構な速度で進んでたと思います.僕の1日目の感想がこれです.


とてつもない量をインプットするので,とてもためになる授業ばかりで中間課題や後半のチーム開発でめちゃくちゃこの知識を使いました.
ただまあ,もうちょっと前提知識をつけておけばより,理解が深まると思うので,復習します.

あと毎日お菓子の差し入れがあってとても美味しかったです.
ご馳走様でした.

f:id:denden_seven:20190901133314j:plain:w400
冷えててうまいやつ
f:id:denden_seven:20190901133310j:plain:w400
セレクトがおしゃれ
f:id:denden_seven:20190901144215j:plain:w400
551のアイスキャンデー
f:id:denden_seven:20190901144220j:plain:w400
カニ
f:id:denden_seven:20190901133306j:plain:w400
グルテンフリー ドーナッツ
f:id:denden_seven:20190901133319j:plain:w400
わたあめ!!
f:id:denden_seven:20190901133520j:plain:w400
うまい棒(二箱あったのに気づいたら消えてた.)
f:id:denden_seven:20190901133347j:plain:w400
なんだかんだやっぱこの白い錠剤が効くのよ

中間課題について

そのうち整備して公開したいので,その時にもまた書くと思うのですが,「誰でもAR名刺」というサービスを作りました.
これは後輩のへいほぅくんが作ったAR名刺からアイデアパクってオマージュして作ったサービスです.

僕もAR名刺ずっと作りたいなあと思ってたんですが,なかなか作る機会がなかったのと,多分同じような人はいると思ったので,誰でも作れるようにしたかったです.



できたのがこんな感じで,情報を入力してQRを発行するとそれを元にAR名刺を作れるという感じですね.
もうちょっと見た目とかセキュリティ的なところを整えて公開したいです.

チーム開発について

チーム開発は5人チームでした.全体で6チームあり,その中で週末を挟んで10日弱でアイデア出し,サービス設計,実装,発表までを行うというスケジュールでした.

チーム名決めとソウルの決定.

チーム名はチームのメンバーが全員メガネだったこともあり,うちのチーム名は「メガネサワーズ」になりました.

あとはチームのソウルをきめてました.
ここでいうソウルっていうのはチームの中でこれは大切にしたい,こういう価値観でチーム開発をしていくという決まり文句みたいなものです.

5人もいると大切にしたいこと,優先したいことがたくさんあって共通認識を作るのって難しかったです.
結局みんなものを作るときの原動力的なものが技術寄りであったり,サービスの価値を生み出すことであったり,僕みたいに問題解決を第一に考えていたりして,考えが違っていました.
そんな中で共通していたことは,やって見ないとわからないし,使ってもらえなければいくら技術がすごくても意味がないということでした.

ここら辺のことが共通認識で取れてもはっきり言語化させるのは大変でした.
「プレハブにまずトイレを作れ」とか「〇〇行動」とか色々出たんですが,

我がメガネサワーズのソウルは結局「行動driven」に決まりました.行動することに価値,意味を置いておき,
迷うくらいなら実際にやってみて,早めに評価してもらったり,フィードバックをもらって方向を決めようというものになりました.
(「行動driven」を日本語に直してはいけません.Don't think just feel.
ソウルってそんなに大事かなって最初思ってたんですけど,チームが同じ方向を向いてサービスを作っていく中で実はめちゃくちゃ大事でした.
迷った時とか,意見が対立した時とかに「今やっているこれは僕らのソウルを満たしているのか?」と立戻ったり,実装の順序も動くものをさっと作ってちょっとずつ進んでいこうという共通認識ができたことはとても効いてきました.10日とかの開発でこれだけ大事になってくるものなので,1年とかかけてサービスを作る際にはとてつもなく効いてくると思います.

個人的にもこのソウルは好きです.正直僕は自分が天才の類ではないとわかってしまっているので,理論だけでわちゃわちゃやってもうまくいかないことは知ってるんですよね.恥なんて捨てて,やってみて,飛び込んでみて,そこからやれること,できることを考える方が僕にはあってます.

サービスのアイデア出し

これは本当に大変でした.
現代において思いつくようなサービスって誰かがすでにやってるんですよね.もしくは解決したいけどそのための技術がまだ存在しないとかなんですよね.
そこそこいいのができたと思ったら,誰かがやってたり,そのサービスが提供するソリューションって本当に顧客がもとめてたものなのか?っていう疑問に答えられなかったりして,ものすごく時間をかけたアイデアがリセットしたりしました.

f:id:denden_seven:20190901142039j:plain:w400
イデア出しの一部

このとき使ってたアイデア出しの方法があるんですけどこれについて書くと多分量がやばいのでまたどこかで書きたいと思います.

結局,僕たちが作ることにしたのは
「うまくなりたいゲームプレイヤーと自分よりうまいプレイヤーを繋げるマッチングサービス」でした.

設計

僕たちの作るサービスのユーザーとその課題,そしてそれに対するソリューションが決まったところで,サービスの具体的な仕様を決めていきました.
作りたい機能を上げていくといくらでも出てくるんですが,タイムリミットがとても短いので,本当に必要なサービスのコアの部分をまず作っていきました.最初作ることにしたのは本当に簡単な部分でした.(まあそれでも1日余裕で溶けたんですけど.)
とりあえずフェーズ1,2,3と分けて順に進めていくという手順をとりました.アジャイル開発とはいろいろあるんですけど,それを導入する時間もなければ,求められているスピード感を考えるとそれもそれもきつそうでした.

実装

サービスの内容を決めて,仕様を決めて,DB設計して,実装に入りました.
僕は中間課題をフロントメインで作ってたこともあり,わがままを行ってバックエンド側を担当させてもらいました.

いやー最初全然わからなくて大変でしたね.API自分で生やして,curl投げて,思った通りのjsonが帰ってきた時は感動してました.
あとぼくは,ダミーデータ入れたりするのに結構時間かけてました.マイグレーションファイル30個ぐらい書いた気がします.(おかげでDBはだいぶわかった気がする)
実装は実質4日間でやってたんですけど,毎日,ここまで作ろうみたいなフェーズを決めて作れたのはチームのソウルがあったからだと思います.

最後の方バックの仕事がなくなって,みんなでフロント触ってもりもりサービスがサービスらしくなっていくのは爽快でした.
フロントももうちょっと触れるようになりたいなあ.

最終日にかけてはほぼ徹夜して,テスト書いたり,発表資料書いたりしてました.
(まあ僕が書いた発表資料の文字が多すぎて気づいたら差し替えられておしゃれになってた)(プレゼンの作り方もちょっとわかったのでまとめたい)
作ってた時はもちろん眠かったですけど,クッソ楽しかったです.メンターの人たちも深夜まで付き合ってくださりました.本当にありがとうございました.f:id:denden_seven:20190901141833j:plain:w400

発表

発表資料はギリギリで出来上がりました.僕が経験したゲームのことをプレゼンの掴みとして使うことになってたので,前半の掴みの部分は僕が発表しました.

f:id:denden_seven:20190901141152j:plain:w400
発表
徹夜明けからのプレゼンは初めてで直前はマジで体調悪くなってました.発表始まったらいい感じに発表してたらしいです(ほんまか??)
(←発表中の記憶が全然ない人)

結果

最後に各チームの総評を行なって,最優秀のチームが発表されましたが,残念ながら僕たちのチームは優勝することができませんでした.
まあでも最優秀のチームのサービスは僕も使いたいと思ったし,見た目,中身ともにかなりレベルの高いものだったので納得できました.
(実際僕もそこに投票した),まあそこのチームが何作ったのかについてはそこのチームの誰かがブログでも書くでしょう.




余談(シェアハウスについて)

インターン中ずっと遠方からきた人たちを集めたシェアハウスに住んでいました.
いやこれがめっちゃ楽しかった.僕実は8年くらい寮に住んでたことがあって,こういうみんなで住むみたいな共同体には慣れてるんですけど,「技術」っていう同じ興味.関心をもってる友達と同じ屋根の下で暮らすのはめちゃくちゃ楽しかったです.みんなちょっとずつ違うスキルを持ってて,わからないことがあったら互いに聞きあえたり,自作キーボードのこととか,エディターのこととか,作ったサービスのこととかをリビングで話したりするのはサイコーの体験でした.
授業終わってみんなヘトヘトのはずなのに,ハウスに帰ったら誰かがリビングでコード書いてて,勝手にもくもく会が始まるのおもろかったです.
(まあ睡眠時間も消えるので諸刃の剣感ありましたけど)

たまの週末に料理作ったり,鍋囲んで映画見たりするのも楽しかったです.


f:id:denden_seven:20190901144756j:plain:w400f:id:denden_seven:20190901144749j:plain:w400
もくもく会

f:id:denden_seven:20190901144354j:plain:w400
主婦やん
f:id:denden_seven:20190901144124j:plain:w400
マトリックス全部みたかったな〜.

全体を通しての感想

サイコーでした.

前半の授業もありがたかったですし,中間課題もコードレベルでレビューがもらえて,一人一人面談してもらえる.
チーム開発もアイデア出しもなかなかできない経験なのにみんなで一丸となって開発できる.

最初treasureっていうインターン正直言うとちょっと胡散臭いと思ってました.だって授業してくれるのにインターンとしてお金もらえるの冷静に考えておかしい.まあ今もおかしいと思ってます(いい意味で).

けど実際に参加してみて,本当に人を大切にしてくれているし,一人のエンジニアとして対応してくれて,成長を促してくれるインターンでした.

もっと言えば,チーム開発だってもっとドライなものだと思ってました.
けど,いくらでも手を抜けるし,楽できるのに,みんなサービスのこと,ユーザーのことを第一に考えて,本当にこれでいいのか,もっといい方法があるんじゃないかって考えて,意見をぶつけ合って,そこから互いに納得できるものを作っていく体験は心のそこから楽しかったです.
圧倒的成長ができるように補助してくれて,これからwebで働きたいと思わせてくれるようなインターンでした.

チーム「メガネサワーズ」のメンバーも僕と仲良くしてくれた他のみんなも本当にありがとう.

f:id:denden_seven:20190901143123j:plain:w400
最後にメガネで集合写真

f:id:denden_seven:20190901204744j:plain:w400
本当に3週間お世話になりました.
                     電電

PS.
次のインターンも頑張ります.