【新卒エンジニア就活】Speeeサマーインターンに参加した話

# 自己紹介
ソフトウェア開発者のぐりです！　専門学校を休学しながら、Web系を中心に24卒で就活をしてきました。
先日投稿した以下の記事が思ったより多くの人に読んでもらえたようなので、その中でも成長を特に実感したサマーインターンの記事を書くこととしました。

[【新卒エンジニア就活】専門学校生がメガベンチャーの内定をもらった話　](https://qiita.com/mono_glyceride/items/90483cd0f51e79fc470c)

エンジニアとしての学びが多かったのはもちろん、就活にもいきる貴重な経験となりました。
そろそろ募集も始まるかなと思います。参加を検討している人、サマーインターンに興味がある人の参考になればと思います。

# Speeeのサマーインターン概要
1dayインターンと12daysインターンの2種類がありました。私はどちらも参加しました。
※2022年度時の概要です
- ６月に行われる1dayインターン
    - ユーザーストーリーが与えられる
    - DB設計を行う
- ８月、９月に行われる12daysインターン
    - ユーザーストーリーと解決したい課題が説明される
    - チームは学生エンジニア（5人ほど）、ビジネスメンター、エンジニアメンター
    - 作るWebサービスの機能・届けたい価値を分析
    - 上流から下流まで自分たちで開発を行う
        - 技術選定、DB設計、必要な機能の洗い出し、スケジュール管理、タスク管理、ワーキングアグリーメントの設定、ビジネス側との相談、機能の開発、テストなど
    - 中間発表と最終発表があり、役員の方の前で作ったサービスについてプレゼンする

# 参加までの流れ

Q：サマーインターンにはあまり興味がなかったのに、なぜSpeeeのものには参加したのか
A：体験するのは「アプリケーションの開発」ではなく **「本気のサービスの立ち上げ」** だったから。

**参加したいと思ったポイント**
- ハッカソンではなく、事業探求を経験できる
- 新規事業の成功率５０パーセントを誇るSpeeeで事業探求を学べる
- 指示されたものをただ作るのではなく、ビジネスサイドのメンバーと相談しながら「どんなアプリケーションを作るべきか」という課題と向き合うことができる
- 異業種のメンバーで構成されたチームに参加できる

**参加までの準備とスケジュール**
※私の場合。参加者によってかなり異なりました。
- 4月
    - 逆求人ナビのサマーインターン逆求人で面談
    - コーディングテストと面接を通過し、サマーインターン参加が決定
- 5月
    - 課題（DB設計に関するUdemyの講座）を受講
- 6月
    - 1dayインターンに参加
- 8月
    - 課題(Rails チュートリアル)を受講
    - 12daysインターンのチームメンバーとオンラインで顔合わせ
- 9月
    - 12daysインターンに参加


# 12daysインターン

**チーム構成**
- 学生エンジニア5人（フロントエンドとバックエンドが半々くらい）
- エンジニアメンター
- ビジネスメンター

## 開発スケジュール

**毎日行ったこと**
- 朝会
    - 1日で行うことの確認
- 昼会・夕会
    - problemとtry（あれば）
- おやつ・コーヒー
    - 合間に食べてました、おいしい
- 日報
    - 「目標・目標に対してとった行動・problem・try・目標に対し学んだこと」など

**【立ち上げ期】 1日目ー3日目**
**開発を行うための準備をするフェーズ**
- ユーザーストーリーを読み、目指すプロダクトの共通のイメージを持つ
- 開発を行う上での懸念点と、それに対する打ち手を考える
- 必要な機能一覧の洗い出し
    - どこを運用でカバーし、逆にどの機能は絶対に開発が必要なのか
- 行うべきタスクの洗い出し
- スプリント計画の作成（どのタスクをどのスプリントで完了させるか）
- ER図の作成
- 技術選定
- ワーキングアグリーメントの作成
- スライド（プロダクト名・チーム名・チーム目標・難所と打ち手）の作成と発表

以降のスプリント計画は自分たちで練るため、チームごとに行うタスクは変わりました。

**【スプリント1】 4日目ー6日目**
- 立ち上げ期に定義した「コア機能」を満たすための開発
- モブプロ・ペアプロなどを積極的に行う

**【スプリント2】 7日目ー9日目**
- ユーザストーリー全体を行うことができるようにするための開発
- 中間発表
- 超すごいスペシャルゲストの登場・講話

**【スプリント3】10日目ー12日目**
- ユーザ体験をより向上させるための開発
- 最終発表

## 目標を達成に寄与したもの・行動
- 必要に応じてワーキングアグリーメントを更新する
    - 改善点に気づき次第、すぐに行動に反映できる
    - 開発のフェーズによって「より良いチームの立ち回り」が変わるため、変更する必要がある
- スプリントごとにチームでGKPTを見直す
    - Good 良かったこと
    - Keep Goodを次も再現するために必要なこと
    - Problem 課題点
    - Try 課題を解決するための打ち手
- 積極的なコミュニケーション
    - 「ナイス」「いいじゃん！」とか、すごいと思ったことをちゃんと口に出す
    - 課題を抱えずに共有する
    - 進捗や話し合いをこまめに行う
- 意見が異なる場合でも相手の意見を尊重し、建設的な議論を行う

## もう一度やり直すなら
- 「個人の判断で行えること」を明確にする
    - 話し合って決めること、ペアプロで行うことなどは決まっていたが、個人でどこまで行うか明確にしていなかった
    - 上記の結果、開発が進みチーム内でプロダクトや進め方について考え方がまとまってきても、タスクの優先順位付けや割り振りについて話し合いで決めており、多くの時間が割かれていた
    - スプリント３では、特定の個人がタスクの優先順位付けや割り振りを担当することで、開発速度が大きく向上した
- やらないことを明確にする
    - やりたいこと、価値を大きくするためにできることはいくらでも湧いてくる
    - 本当に重要（＝価値を届けるために必須なタスク）を行うためにも、「行わないこと」を決める必要があった

## 個人的に得られたもの
- 自分の強み・弱みの把握
    - 長期インターンでは実務に携われるが、その分教えを受ける立場になることが多かった
    - 全員対等な立場でチームの立ち回りについて議論したり、教え合いながら開発することで、自分の強みと弱みを知ることができた
- 弱みへの対策
    - １日おきに1on1が設定されていて、自分の行動や成果について客観的な意見やアドバイスを頂くことができる
    - 弱みを分析したうえで、その弱みをどう克服していくか、ということについても相談に乗って頂けた
- MVP（Minimum Viable Product)という考え方
    - ユーザに実用最小限の価値を提供するプロダクトのこと
    - MVPを短期間でリリースすることでプロダクトの価値検証を行うことができる
    - 個人開発を行う上で大変参考になった
- 超優秀な学生エンジニアとのつながり
    - 同じ学生エンジニアの、技術との向き合い方、これからのキャリアについての考え方などを知る機会になった
    - コードや開発について話をすることで刺激を貰えた
        - 具体的に言うと、自分にない視点や技術力を感じて、悔しいからもっと頑張ろう！という気持ちになった
    - 他の学生エンジニアの行動や考え方を見たからこそ、自分の特徴や性質を把握することができた
- GKPTの習慣
    - 日報やワーキングアグリーメントの作成を通し、GKPTの行い方、自身の成長への繋げ方を知った
    - 他の学生が使っているのを見てnotionの存在を知った
    - 今では毎週GKPTをnotionで行ってます
- Speeeの早期選考

# 終わりに
「事業を通して価値を提供する」ということについて、（もちろんまだまだですが）学ぶことができたと思っています。実際、このサマーインターンの前と後では個人開発の進め方が変わりました。また、成長するための習慣（GKPT）をつけることもできました。
今後にいきるインターンであり、本当に参加できてよかったです！