Speee 1dayインターン体験記

# はじめに
こんにちは、豊田工業高等専門学校の加藤愛斗です。先日、Speeeの1dayインターンに参加させていただき、貴重な体験をしたので、その学びを共有したいと思います。

# 選考
## 応募に至るまで
友人が逆求人イベントに参加してSpeeeさんなどと面談をしたという話を聞いて、自分も逆求人イベントに参加しました。しかし、私が参加したイベントの回にSpeeeさんは参加されていなかったため、自分で応募ページより申し込みました。

## コーディングテスト
- アルゴリズム: 2問
- 実装: 1問
- SQL: 1問

上記のような構成で、実装問題はかなり難しくすべてのテストケースをパスできませんでした。しかし、合格となりました。

## 技術面接
テクニカルな質問ではなく、今までどのようなことをやってきたのかやこれから先どのようなことをやりたいのかなどをカジュアルにお話させていただきました。
私は面接の最後にアドバイスを頂くようにしているのですが、今回は以下のような先輩エンジニアさんからの貴重な視点をいただきました。
- 過度にマネジメントに関して伸ばそうとするのはやめたほうがいい
    - マネジメントそのものでは何も生み出さない
    - 課題があって付加価値がつく
    - **いろんな課題に打ち当たっていくことが重要**
- 迷う時間がもったいない
    - 正解・不正解はない
    - **決めたとしても、方向性は変えられるためとにかく挑戦**

## 人事面接
幼少期からの出来事を振り返り、当時どのように考えており、どのような経験を経て、どういった思考に変わったのかを深ぼっていただきました。人事の方に、「何で」「どうして」をとことん質問していただいたため、自分の中での考えの解像度が高まりました。（人事の方はその質問によって、私の考え方の本質を見出そうとしていたのかと思います。このように、**本質を見出すために「なぜ」を深ぼる質問力は自分も身に着けていきたい**と感じました。）

# 事前準備
## 目標設定
今回のインターンを通して何を学びたいのかを明確にして、その目標に対してどのような行動を取るのかを定めた。Speeeさんがとても大切にしていることの1つだそうです。

### 目指すエンジニア像とその理由
自分の得意とする領域においてNo.1であるエンジニア。
親の教育などが影響し1番にこだわりがある。最近、人生について深く向き合い、何のために生きるかを考えていた。現時点での答えは、「楽しむため」である。（おそらくこの先も変わらないだろう）その楽しみの１つが私にとっては、一番になることなのである。人生を最大限に楽しむためには、仕事においても楽しさを求めることが重要であると考える。そのため、エンジニアという職を選んだ際には、自分の得意分野においてNo.1であるエンジニアを目指したい。

### 目指す像を踏まえ、この夏、得たい経験や学び
- 自分が本当にやりたいことを見つけること。
- より高いレベルのエンジニアの世界を見ること。

自分の得意領域においてNo.1であるエンジニアと一口に言ってもかなり曖昧である。まず、自分の得意領域は何なのか。次に、No.1の定義はなにか。

前者に関しては、まだ自分が本当にやりたい領域、得意な領域が定まっていないというところが現状である。
- コーディングを突き進めてスペシャリストになる
- リーダースキルを生かしてマネジメントサイドになる
- 問題をどのように解決するかの0→1を生み出す人になる
- 経営サイドも興味があるので、経営にも携わるエンジニアになる
などが考えられる。多数の選択肢から、自分に何が最もマッチしているのかを今回の経験を通して探りたい。

後者に関しては、まだあまり深く考えられていない。というのも、自分が努力してきた成果が出て、勉強やプログラミングに関して、学校では一番であるからである。そのため、レベルの高い社員さんからのお話や、レベルの高い周りの学生から刺激を得て、どのようなNo.1を目指すのかを定めていきたい。

### この1dayインターンでチャレンジしたい目標
レベルの高い環境において、一番を目指すというチャレンジをしたい。

先日、CyberAgentのインターンに参加した。参加者は平均大学3年生で、上はD1の方までいる環境だった。チームに分かれて競争するコンペ形式のインターンだった。最年少ながら、リーダーを任せていただき、チームマネジメントからサーバー構築、デプロイまで行った。最後にMVPの発表があったが、私ではなかった。チームの方にはものすごく高い評価をしていただき、「MVPは加藤さんだと考えていた」とありがたい言葉を頂いた。正直、自分の成果に対してかなり自信があったため、MVPを取れなかったときは少し悔しかった。

そのため今回のインターンでも、周りの優秀な学生に負けず、MVPを目指したい。DX領域の課題解決のためのER図をチームで議論しながら設計するということなので、
- 一番意見を出す
- チームのメンバーを鑑みて、回し手、聞き手、話し手の適切な役割になり、議論を活性化させる
- 今までの経験を生かしてよいER図をつくる

を目指す。普段から、議論において積極的に意見を出すことはできているため、レベルが高い環境においてもそれを継続していきたい。議論において適切な役割をするということはあまり経験をしたことがない。というのも、高専は消極的なメンバーが多く、必然的に私が話の回し手になるからだ。しかし、今回はおそらく積極的なメンバーが多いと考えているので、チームに沿った適切な役割を行い、議論をより良くしたい。

## 面談
上記目標設定を踏まえ、面談を通して解像度をさらに高めていった。

# インターン当日
## ミッション
Speeeさんが大切にしている「事業探求」を実際に体験すること

## 課題
「家を売りたい人と不動産会社とのマッチング」を実現する新規事業立ち上げのためのデータ設計。
1. 初期リリースに必要なユーザーストーリーが与えられるので、それを満たすER図をチームで議論し作成する。
1. 事業拡大に必要なユーザーストーリーが与えられるので、それを満たすようにER図を修正する。

-> 「立ち上げ期」と「拡大準備期」のステップを体験

## チーム構成
- リードエンジニア
    - インターン参加エンジニア [4人]
- ワークサポーター
    - Speeeの先輩エンジニアさん
- ビジネスメンター
    - 事業立ち上げの責任を担うビジネスのプロ。不動産領域のドメインを有する。

## やったこと
### 自己紹介・チーム名決め
- 私
- 高専4年生 (私と同じ学年)
- 院生
- 院生

というチームで、年齢にギャップはあったものの打ち解けられた。チーム名は、全員Pythonが好き(触ったことがある)ということで、蛇から延長し、最強の蛇の名「インランドタイパン」となった。

### 立ち上げ期
まず各自でユーザーストーリーを読み込み、どのようなエンティティが必要かを考えました。その後、ユーザーストーリーの中で不鮮明な部分をメンバー間で共有し、解決しなかった部分は事業責任者の方に確認しました。事業責任者と話をしていく中で、今回はMVPで実装することが望ましいことが分かってきました。
各々の認識のギャップにより、議論がかみ合わなかったり、議論がそれ過ぎてしまうことが多く見られました。
しかし、途中で詰まるといったことはなく順調にER図が出来上がりました。

![2022_06_18 Speee 1Day 1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593838/0a4d0425-6b02-633e-6f41-35b5d5e655a6.png)


### 昼休憩
雑談をしながらお昼ごはんを食べました。

### KPT
後半のセッションに入る前にKPTを行い、この先どのように議論を進めていくかを確認しました。
- Keep
    - MVP >> グロース という軸を確立して、それに沿って議論を進められた
    - 特別リーダーなど決めずとも、メンバーそれぞれが主体的に取り組んだ
    - 質問事項とそれに対する自分たちの考えを洗い出してから事業責任者と議論ができた
    - 認識の齟齬がある際は時間を設けて議論&メンターに壁打ちができた
    - 意思決定のバックグラウンドをドキュメントに残すことができた
    - 各人が主張したいことを主張することができた
- Problem
    - 認識の齟齬があったまま議論に入ってしまい、時間をとってしまうことがあっ
    - 議題の結論が不明瞭なままとなってしまう時がある
    - 元の議題からそれてしまうことがある
    - 同じ部分を編集するときがあり、作業箇所の意思疎通が欠けていた
- Try
    - 議論の目的と最終結論を明瞭化出来るようにリーダーを置く


### 拡大準備期
昼休憩前までに、立ち上げ期のER図をほぼ完成させることが出来たため、ER図に不備がないかの確認を行った後、拡大準備期のためのER図修正を行った。KPTを受けてファシリテーターを置いて議論を進めた。
事業責任者は、「不動産会社数を増やす >> ユーザー数の増加」でサービスを拡大したいとのことだった。（ユーザーは広告などを打てば比較的簡単に集められるため） 特に、不動産会社の「参画数 >> 解約数減少」に重きを置くとのことだった。
上記を踏まえて、いくつかあるユーザーストーリーに優先順位をつけて実装を行っていった。

![2022_06_18 Speee 1Day 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593838/2f5d3ec3-91e8-055d-97d3-46e2fffb5a2a.png)

### 最終発表
#### 工夫したこと ( ER 図 )
- **最初に「MVP を重視する」という軸を決め、チーム内での共通の判断基準とした**
    - テーブルを切る必要がなければ切らない 等
- 拡張性を考慮した設計をした
    - 不動産会社への紹介一件あたりの単価を、不動産会社ごと、あるいは不動産会社の査定対応エリアごとに変更できるようにした
    - 各不動産会社が査定対応エリアごとに受け入れる物件種別を指定できるようにした
- 論理設計に落とし込むフィールドの基準を設けた
    - 作成日時や更新日時などは検討のみにとどめ、議論を前に進めた
- **不動産会社側の事情などを事業責任者と議論して細かな要件を決めた**
    - 追加要件に対して検討事項の優先度を決め、事業責任者の意見を根拠に設計した
    - ユーザーストーリーと画面で解釈が異なる場合は事業者の判断を仰いだ
- **意思決定の前提や過程や結論を原則全てドキュメント化した**
    - 事業責任者と認識のすり合わせをする際に、両者が持っている前提を明示的に言語化することができた

#### 課題として残ったこと
- セキュリティ面の検討
    - 不動産店舗の各社員にID / PW を設定する仕様ではなく、不動産店舗に対して1つのID / PWを設定し社員で使い回すという仕様にしたため、退職時やインシデント発生時の調査などが厳しい
- MVP を重視したので、あまり 共通化 / 抽象化 がなされていない 
    - 管理者ユーザー / 店舗ユーザーが共通のエンティティでない 等

#### 学んだこと ( 組織や進行 )
- 振り返り ( KPT ) の重要さ
    - ファシリテーターの設置 等 を通して、より生産性の高いチームになることができた
- メンバー間での認識の違いを埋めながら議論をすすめることの重要さ
    - ユーザーストーリーの一部曖昧なところの認識違いによって、議論がかみ合わなかったので、前提となる認識などを事前共有したり、議論途中に話を戻したりすることの有用さを学んだ
    - 現在の議題とその結論を明確に周知し、メンバー全員の認識を統一させた
- エンジニアだけでプロダクトをつくるのではなく、事業責任者やビジネス職の方と一緒になって作り上げることの大切さ
- 思いのほか事業責任者とのやりとりが多かった
- 事業責任者の意見を大事にしつつも、鵜呑みにせずに自分達の頭で最適解を検討した方が良い
- ユーザーストーリーの解釈などそれぞれの意見を列挙するときはドキュメントに言語化・視覚化することで共有を簡潔にできた


# 反省
目標設定で、

> レベルの高い周りの学生から刺激を得て、どのようなNo.1を目指すのかを定めていきたい。

と考えていたが、**いざレベルの高い学生からの刺激を受けると、自分とのギャップに心を折られそうになった**。私のグループの学生さんは全員優秀で、話についていくことで精一杯だった。また、自分のレベルとのギャップにやられ、自分の強みであるリーダーシップを活かすことが出来なかった。

# 学び
上記反省点を振り返り時にメンターさんにお話したところ、「**リーダーじゃなくてもリーダーシップは発揮できる**」というお言葉を頂いた。ものすごく胸に刺さった。自分は今までリーダーとしてリーダーシップを発揮したことしかなかった。リーダーでない立場としての議論の参加には慣れていなかった。しかし、この言葉を受けて今まで経験をあまりしてこなかったリーダーでない立場としての議論の参加方法が少し明確化した。


# 感想
今まで、経験をあまりしてこなかったリーダーでない立場での議論参加方法や、事業探求などの新鮮な経験ができてものすごく成長につながった。特に、事業責任者(ビジネスサイド)の方と一緒にプロダクトを開発していくという流れはとても楽しく良い経験となりました。

# 最後に
後半雑になりましたが以上で体験記とします。

私から皆さんに伝えたいことは、「価値観や視野が広がるのでインターンには積極的に参加すると良い」ということです！！（私はこの夏5社のインターンに参加しました。）