(タイトル敬称略) サイバーエージェントさんのインターンシップ「プロトスプリントリーグ」に参加したのでその記録や自分の考え、反省点をここに拙い文章で記録しておきたいと思います。 将来的に自分で見直せるように解像度高めで書いてます。 # 概要&日程 このインターンシップは3日間(実質10日くらい)でお題に沿ったゲームをランダムで割り振られたチームで開発し、ゲームとしての総合的な完成度(面白さ、完成度)の高さを競うハッカソン的なインターンシップとなっています! ## 選考日程 1. 書類・ポートフォリオ審査 2. 技術面接 3. 人事面接 ## イベント前日程 1. テーマ発表・顔合わせ 2. 企画・素材集めなど(1週間くらい) ## イベント日程 1. 開発開始(ここからコードを書くことが解禁になる) 2. 中間発表 3. 期末発表 (開発中や開発後にも懇親会などのイベントがあります!) # 記録1「選考」 ## 書類・ポートフォリオ審査 このインターンシップに参加するためにはいくつかの審査を超えなければならずその一番最初の審査が書類・ポートフォリオ審査になります。 私は、就職に向けて隅々まで見たら嫌になりそうなくらいのポートフォリオを作っておいたのでそこまで困りませんでした! また、書類の方も、技術に関することを書くスペースが多かったのでとても楽しく書くことができました! ## 技術面接 最初の面接は技術面接になっていて、主に開発経験、開発思想(チーム、個人)、ポートフォリオについての技術について聞かれました。 ふつうの面接でよく聞かれる志望動機やガクチカといった定番については一切聞かれず、聞く内容の軸がしっかりしていてとても面白い面接だと思いました! また、面接官のお二方もとても良い方で、緊張をほぐして頂いたりとても楽しく面接ができました! 技術的質問についてもとても深堀をされて(私の場合はパフォーマンスチューニング)とてもうれしかったです! ## 人事面接 次の面接は人事面接でした。 こちらでは、技術的な内容よりも開発思想などを軸に面接が進みました! こちらも技術面接と同じで定番質問が聞かれないことに驚きました。 (どうでもいい裏話) 学校があったため面接スケジュールが全然合わず学校の教授に頼んで午後の授業だけ休みにさせてもらったのですが、帰りの電車が遅延しており爆速で家に帰りそのままスライドをするようにPCを用意して面接を受けるというハードな一日でした。 # 記録2「イベント前」 ## 準備・心構え 参加が決定してからインターンが始まるまで2週間ほどあり、意味があったかなかったかは置いておいていくつかの準備と心構えをしていました。 ### 技術的なこと #### 苦手技術の本を買う 私は、GitHub系とUniRx系がとても苦手というか経験が少なくチーム開発+サイバーエージェントさんということもあり、この二つの苦手を潰しておこうと思い技術書を買いました。 結局、チームメンバーに助けてもらうことになりましたが、完全無知よりはよかったと思っています。() #### 軽く使えそうなテンプレートやライブラリを作っておく 今回のインターンシップの特徴は、「短期間」+「ランダムメンバー」ということで、メンバー内のレベルが低くても高くても使えるようなテンプレートやライブラリなどを作成・準備(過去のライブラリの整理)をしました。 結局、使う機会は一切ありませんでしたがライブラリ作るの最高なのでいいです。 #### チーム内技術レベルの把握のための資料作成 チーム開発において、というか短期的かつランダムメンバーである場合の開発は、机に向かって勉強をする時間などは絶対にあるはずなくまた、チーム内のレベル感を最速で把握する必要があると考えています。そのため、すべての資料は使えませんでしたが、「プログラミング文法指標」や「プログラミングレベル別用語リスト」、などを事前に作成しておくことでチーム内の技術レベルをある程度把握することができたと思っています。また、雑談にも使えるのでとても良かったと思っています。(個人的には) #### 技術的ルール これは、よく使っているコーディングルール表みたいなのをみんなで選択しておけるような形で用意をしておきました。 #### 技術的制限 上二つに似ていますが、短期的な開発では技術の取捨選択をする必要があります。 これは、大企業の破壊的イノベーションが難しい理由に近いですが、個人的な技術力が高ければ高いほど期間内にゲームを完成させることが難しいと思っています。そのため、チーム内で技術的にどこまで追求してもよいかという制度表(GC稼働量、パフォーマンスチューニング、速度、設計方針)などを作成しどれくらいのクオリティで開発を行っていけるかというものを用意しておきました。 #### ゲームの構成・解像度を上げる 事前準備として、ゲームとは何が必要かどうかということについて考えておきました。 ### チーム的なこと #### チーム名を先に決めておく・雑談内容をある程度決めておく チームメンバーやメンターさんに見られると超恥ずかしいのでもし見ていたら飛ばしてください。 私は、コミュニケーション能力に自信がある方ではないので、それを補うための準備をいつもします。 今回の場合は、チーム名を事前に決めたり、ある程度話せそうな雑談内容を用意しておいたりしました。 チーム名は、正直採用されるかどうかが目的ではなくどれだけチーム内でのコミュニケーションが活発になるかというのを考えていたのでとてもふざけたチーム名を用意しておきました。(採用はされてませんw) **(以下余談、個人的考え)** 友達の中にもコミュ力お化けのような方が何名かいてその方たちが何故コミュ力が強いのかについてノートにまとめたことがあります。 その中でいくつかの共通点が見つかりました。 * 自己肯定感が高い コミュ力が高いから自己肯定感が高いのか、自己肯定感が高いからコミュ力が高いのかよく分かりませんが共通して自分に自信を持っている気がします。今回のインターンシップでは、どのメンターさんの話を聞いても面白かったのですが、自信がある(若しくは技術力がある)とコミュ力が高くなる(?)のかなとか思ったりしました。(雑考察) * 自分と相手を守る行動がとれる 例えば、何か誰かに課題を教えてもらうシチュエーションで、 Q.私は、課題余裕でしたが君なら余裕でしょ?なぜ私に聞くの? と聞かれたときに考えられる答えは3パターンくらい思いつくのですが A(自己保護型の解答).先生の話を聞いてなかった、課題がめんどくさい A(相手保護型の解答).全然わからないよ、私ができるわけない A(両立型の解答).正直まだやってないけど、多分できないと思う コミュ力が強いと一般的に言われそうな人は自然と両立型の解答をやっているような気がします。 * リアクションが大きい (何でもかんでもリアクションが大きいという意味ではなく、自分の感情をそのまま出すという意味) 人事(運営)の方も言ってましたが、コミュ力が高い人はフォロワーシップが上手な気がします。 * 楽しそうにしゃべる これは、一般的にオタクが急に饒舌になるのと関連してると思いますが、楽しくしゃべるとコミュ力が高く見える気がします。 また、大学の教授に「コミュニケーション」とは、人の心を開きあうことということだと散々仰っていたので今回のインターンシップはなるべくそれを意識していこうと思って挑みました。 #### 理想的なチーム 今回のインターンシップは、意思決定を高速化しながら良い作品を作らなければならないため、ティール組織のような組織モデルを目指しました。 ティール組織とは、全体と個人の目標が一致している場合に個々が独立して意思決定を行うことができる組織モデルであり、なるべくヒエラルキーが存在しない状況において発生する究極的な組織だと思っています。 なので、心構えとしては、「分からないことがあったらお互いにすぐに聞きあえる環境」というのを1人のメンバーとして作っていけたらいいなと思いながら挑みました。 ### その他 #### ゲームアイデアの用意 全くテーマが被りませんでしたが、ゲームアイデアもいくつか用意しておきました。 #### 期末勉強 私は、期末テストとインターンシップの期間が被っていました。 なるべく準備期間にメンバーに迷惑を掛けたくなかったのでほとんどの勉強をインターンシップ開始前に終わらせておきました。(めっちゃ頑張ったえらい!!) ちなみに、期末テストを再テスト週間にずらせないかと一応大学に相談しましたがダメでした。() ## テーマ発表・顔合わせ テーマの発表とチームの発表、チーム内の顔合わせがありました。 テーマは「くみあわせ」でした。 とても考え方によっていろいろできそうな自由度の高いテーマだと思いました! テーマ発表の後は顔合わせがありました! ## 事前準備期間 ### 初日(顔合わせ日) 顔合わせが終わった後、私たちの班は、上記にあげた内容(チーム内方針など)のほかに雑談や技術的な雑談を最初に行いました。 そのほかにも、アイデア出しやチーム名、すべての期間のざっくりとしたスケジュール迄を寝不足にならない程度の時間まで行っていました! アイデアは、ブレーンストーミング方式を使用しました。    など、、 初日なのに相当な数のアイデアが出ました! ### 二日目 2日目は、朝と昼が二人だけしか参加できませんでしたが、前日のアイデアやいろいろなゲームをプレイしながら方向性やゲーム内容などを確定しました。 また、クラス図もNさん主導で同時並行でスタートし始めました! ### 三日目から事前準備期間最終日 最終日の時点で * ゲーム仕様 * 面白いポイント * クラス図や流れ(メンバー内の理解も含め) * ビジュアル的な内容(素材・音楽・UIなど) * ライブラリ * できたらいいところ など、とても理想的な状態まで持っていくことができました! # 記録3「イベント中」 ## 一日目 ### メンターさん顔合わせ 初日の最初はメンターさんとの顔合わせでした! 私たちのチームのメンターさんは、お二方ともとても褒めてくださるタイプでありながら、ゲームや開発に対する的確なアドバイスや意見をくださる方でとてもつよつよな方たちでした! また、緊張していた空気の中でも話を盛り上げて頂いたり、話もとても面白かったり非の打ち所がない素晴らしいメンターさんでした! ### 役割 私たちの班は、得意領域がとても分かれてる大変運の良い班だったため、役割分担をするのは比較的簡単でした! ちなみに私の役割は雑用でした!! ### 一日目総評 チームメンバーがつよつよなおかげもあってか初日で60%程完成をしました! インゲームはくっつけたら動くくらいにはなっていて、残りの作業もUI周りや細かな演出といったところまで持っていけました。 開発終了時間も驚異の21時45分終了だったためとてもぐっすりと眠ることができました!(明日の開発に向けた睡眠()) ## 二日目 ### 中間発表 中間発表は資料を作成して、発表を行いました。 活舌がちょっと悪いので若干チームメンバーには申し訳ないですが、要点などはしっかりと抑えて発表できたと個人的には思っています。 メンターさんからのフィードバックも、「どういうところを洗練していくか」、「一通り完成してそうなのでチーム内で早めに遊んでみる」といった開発方針的なフィードバックから、「料理時間によって差異が生まれると面白そう」といったゲーム内容的なフィードバックまで様々な意見を聞くことができました。 ### 二日目総評 二日目の最後時点の完成度は90%程でした。 ゲームサイクルは一通り遊べる形にはなり後はブラッシュアップのみといった感じまで持っていけました! また、開発終了時刻も23時30分と想定よりも早く終わることができました! ## 三日目 ### 期末発表 期末発表では、事前に作っていたテンプレートをもとにチームメンバーみんなで作成した最高の資料を使い、私が発表をさせていただきました。 緊張。。。!! ### 結果 結果は、、<font color="red">「チーム優勝」+「個人賞」</font>の二つの賞をいただくことができました!!!! ### LT LTでは、若手LTと技術LTの二つのLTがありました。 若手LTは、私たちのメンターだった方からお話を頂きました。 難しい概念なども多々ありましたが、 サイバーエージェントさんに入社したときにどのようなことをやるのかなど具体的なお話を聞くことができました! 技術LTでは、実際の現場で使われている技術やライブラリ(UIToolkit,AirTestなど)についてお話を頂きました! 個人やインディーでやるのは難しい事もありましたが、すぐに実践できるようなことも教えてもらえたためさっそく実際に使ってみようと思いました! #### 三日目総評 # 記録4「振り返り」 ## 良かった点 ### 準備をしっかりとできた 上記で挙げた、インターンシップ前の準備や準備期間の準備などとにかく私の得意としている(?)「準備」という部分がしっかりと活かせたインターンシップだったと思っています。(もちろん一人の力ではありませんが) ### 技術レベルの下げれた 上記で記載したため簡潔に書かせていただきますが、個人的には技術レベルは必ずしも高ければいいものとは思っていません。もちろん、技術レベルが高ければ高いほどいい作品にはできますし、個人としても楽しいし満足します。ですが、完全な他人と短期間開発で一つの作品を作る場合においては、個人の領域を活かすという独善的(?)な取り組みは完成を遠ざけると思っています。 なので、今回のインターンではチーム内でどれくらいの技術レベルで行くのかをきちんと相談して開発をすることができたのはよかった点だと思っています。 ### モブプログラミング これも上記で似たようなことを上げましたが、「分からないことがあったらお互いにすぐに聞きあえる環境」を作ることができたと思います。 そのため、バグや難しい部分についてはすぐにモブプログラミングのような形に移行して開発をするという形がとれていたため開発を迅速に進めることができた一つの要素だと思っています。 ### スケジュール管理 スケジュールはいい意味であまり細かく作りませんでした。 というのも、期間があるのもプレッシャーですしこういう時にうまくスケジュール通りに動けたことがないのでとてもざっくりとしか決めませんでした。 これが今回は功を奏して一つの迅速な開発の要素だと思っています。 (もちろん、スケジュールを立てることは大事です。) ### 睡眠の大切さ 睡眠を普通にとれたのでかい!! ### 何より楽しみながら とにかくチームメンバーと楽しみながら開発を進めていけたのが何より一番良かった点だと思います。 ### 満足な作品ができた 今回の開発では、3日間という短い時間ではあったもののほぼ完成度100%の満足のいく作品ができました。 ## 反省点 ### 技術的な知識 クライアント側という同じ領域の中でもいろいろな領域の人が集まりました。 違う視点を持つ人が集まるといろいろな課題がたくさん見つかりましたし、自分が得意だと思っていた領域でもまだまだ未熟だなと感じる部分がありました。 ### コミュニケーション メンターさんとの会話をもっとできたらいいなと思いました。 というか、メンターさんに会話を負担させ過ぎてしまった気がしています。 他の班に会話が好きそうなOさんという方がいたのですが、メンターさんに積極的に質問したり自分の意見を言っていたりしていたので自分もそれくらい話せるように経験を積みたいと思いました。 ## 感謝 この度のインターンシップを通じて、私は多くの経験と知識を得ることができました。 その背景には、チームメンバー、メンター、そして運営の方々のお力添えがあってのことでした。 まず、拙い私と共に10日間お互いの意見を尊重しながら作品を追い求めてくれたチームメンバー。 そして、的確なアドバイスと温かい言葉で励まし私たちをサポートしてくださった経験豊富なメンターの方々。 最後に、このプログラムを運営してくださった運営の方々。 おかげさまで、楽しいインターンシップになりましたありがとうございます!! ## 驚いた点(その他) ### CyberAgentsさんの雰囲気 * とにかく自由そう * とにかくチャレンジできそうな環境 * 社員同士がめちゃくちゃ仲がいい(よさそう) # 記録5 作った作品について https://unityroom.com/games/cook-strike https://twitter.com/ca_tec_des/status/1688432443530027009 # 記録6「チームメンバー」へ 直接伝えるのは恥ずかしいのでここに思ったことをこっそりと乗せておきます。 (名前は、あだ名の方を省略しています。) ## Naさん 何より設計力の高さに驚きました。 まったりとした声から専門用語が出てくるギャップはとても面白かったです笑 問題が発生しても常に冷静でいる姿勢はチームを安心させていたと思っています。 また、開発中は残念ながら熱を出してしまいましたが、本当に熱があるのかと思うくらい仕事人でした。 ありがとうございました!! ## Ryさん 私は数学があまり得意では無いので、正確な数学的な意味でのRyさんの凄さというのをわかることはできませんが、とにかく化け物ということは伝わりました笑 また、その知能の高さを生かして、率先して難しい部分に取り組んでくださったおかげで開発をとてもスムーズ進めることができたと思います。 ありがとうございました!! ## Usさん Usさんは、とにかく開発スピードが速くお陰様でチームメンバーがぐっすりと眠ることができました! また、分からなさそうなことがあるとすぐにチーム内で共有することは意外とできないことだと思いますし、Usさんの強みだと思いました! Ryさんと同じく最年長ということもあり、とても物事を冷静に考えており、的確な情報処理能力に優れていたと思いました! ありがとうございました!! ## Syさん 何よりも、ゲーム開発数の多さとデザインのクオリティに感銘を受けました。 今回の開発でもデザイン部分を主に担当してくださり、ゲームの完成度にとても大きく貢献してくださりました。 また、コミュニケーションという意味では、とても謙虚な方でチーム内を良い雰囲気にしてくれていました。 ありがとうございました!!
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up