###### tags: `ソフトバンク` # インターンまとめ ## 概要 ここでは、ソフトバンクのインターンシップで体験したことをまとめています。 個人的なメモ程度に残しているので参考までに。 ## 大まかなスケジュールとやった内容 ### 1日目:人事主催のオリエンテーション #### ソフトバンク内でどのような事業をしているのか、どのような部署が存在しているのかを説明される。また、グループワークを行い、自分についての深掘りをし、どんなことに興味があるのか、モチベーションは何かを発見する。グループワークでは、各自自己紹介をしたりと、雑談を交えて交流する機会があった。グループワークは普通に楽しい。最後には、現役社員が自身の仕事について紹介し、実際にどのような業務をしているのかを知ることができた。 ### 2日目:午前は人事主催のオリエンテーション・午後から配属先と顔合わせ #### オリエンテーションでは、情報セキュリティに関する連絡や諸注意を受ける。さながら新人研修のような印象で、実際に起こった例を挙げながら、リスクマネジメントについて話を受ける。午後からは、配属先との顔合わせ。インターン期間中に面倒を見てくれるエルダーさんと上長、一緒になったインターン生に自己紹介を行う。また、受け入れ先で行っている業務や開発しているシステムについての概要を説明される。さらに、受入期間中に行う業務内容について説明され、期間中のスケジュールなどを共有。その後、業務に必要なJavascriptについてスキルチェックを行った。具体的には、odd-even問題やfizzbuzz問題を課題として実装した。これができれば、ある程度わかってるって想定だったらしい。 ### 3日目:Vue.jsやNuxt.jsについての学習 #### 1日を通してインプットを行った。VueもNuxtも触ったことがなかったので、インターン期間中で一番しんどかった日という印象。Vue.jsの学習については、受入先の社員が資料を作成しており、それに沿ってハンズオン形式で行った(資料はUdemyの教材を参考に作成されていた気がする)。JSFiddleというウェブサービスを使って、簡単なコードを書き、テストすることで、理解を深めた。その後、Nuxt.jsについての学習を行なった。これは、実際にウェブアプリを作成しながら学習するという形で行われた。ここで、APIの使用方法やライフサイクルに関しての知識を得て、実際にこれから行う業務に必要な最低限の知識を学んだ。 ### 4日目:業務(課題)の説明と設計 #### 午前中は、インターン期間中に行う業務(課題)の説明と、設計を行った。今回の課題は、受入先で開発しているシステムの管理画面の作成で、表示する情報や登録、編集、削除機能に加えて、検索機能が必要である。説明の後、実際に課題を進めていくが、課題はインターン生同士のペアワークで実施。まず画面設計を行った。実際に管理画面ではどのような情報が必要で、それらをどのように表示するのか、また、編集、削除などの画面の構図などもここで決定する。画面設計を終えると、要件定義を行った。ユーザーが使用する際に必要な機能を洗い出し、ある程度の粒度に細分化する(バックログを作る)。要件定義を終えたら、実際に細分化したタスクに優先順位をつけ、実装に移る。 ### 5〜7日目:実装 #### 実装はペアプログラミングで行い、ドライバーとナビゲーターは1時間おきに交代する。リモートでの作業のため、google meetを使って、ドライバーの画面を共有する形でのペアプロを行った。 ### 8日目:テスト #### 実装をスケジュールに間に合わせた後、実際に作った画面が正常に動作するかをテストした。まず、テスト項目の洗い出しを行った。画面上での操作において異常がないか、アラート機能やポップアップの表示が正常に動作するかなど、最低限必要な項目を設定した。今回は時間の都合上、手動でのテストを行ったが、本来であれば、テストコードを書いて、自動でテストする。テスト後、いくつかのバグが見つかったのでそれらを対処し、再テストを実施。全項目合格し、テストが終了した。 ### 9日目:資料作成 ### 10日目:配属先での成果報告・人事主催の終了オリエンテーション ## 色々学んだこととかメモ #### 開発はスクラム開発にて実施した。デイリースクラム(朝会)にて、その日にやることを確認し、デイリーレトロスペクティブにて、進捗の共有や発生した問題をメンバーに共有する。また、時間の都合上、スプリントは1日1スプリントとした。スクラムマスターは今回は設けていない。実際にスクラム開発を体験した感想としては、結構やりやすかった印象。毎日のタスクを明確にして、それを実施、レトロでメンバーに共有することで、各メンバーの進捗を知ることができるのが良い。また、自分の作業が遅れていないかなどを明確に判断できるので、研究でも活かせそう。 #### ペアプログラミングに関しては、不慣れなところも多く、リモートでの実施もあって、なかなかうまく行かないことも多かったが、結果としてやってよかったと思う。今回の場合は、もう一人のインターン生と技術力が似たり寄ったりなのもあって、話のレベルが同程度だったので、そこまでプログラミングにおいては問題なかったようにも思う。ただ、どちらかの技術力が高いor低い場合には、ナビゲーターが手持ち無沙汰になるので、有効かどうかは悩ましいところではある。サポートを目的としたものならば問題ないかと。 #### タスク管理はASANAというサービスを使用する予定だったが、インターン生の環境では使用できなかった。社員の開発にはASANAを使っていたため、ミーティング時に使用例を見る機会があったが、なかなか便利そうではあるので、自分でも使ってみるとよいかも。 #### 他のインターン生と話したが、ここまでガッツリ手を動かすのは珍しいみたい。個人的には、普段触らないフロントエンドの開発を体験できて楽しく感じた上、スクラム開発の体験もでき、フレームワークの使用方法大まかには知ることができたので、非常に有意義な2週間だった。他の部署も普通に見に行きたいなぁと思うし、2週間は短い... #### ここから選考に関してのメモになる 今年から長期(2週間以上)のインターンはJob-Matchと題して、インターン生と会社のマッチング度合いを重視しているらしい。インターン終了後は、早期選考に進めるが、インターンでの配属先を就職時に希望するならば3次面接のみという形。インターンでの配属先以外を希望する場合は2パターンある。まず、職種を指定しないOPEN選考の場合、配属先がどの職種になるかは不明だが、2次面接からのスタートになる。次に、職種を指定する場合は、書類選考からのスタートになる。なので、インターンでの配属先が結構ガチャ要素ある気がする。 入社後は、結構転属願を出せば移動できるみたいだし、一度インターンでの配属先を希望→3次面接のみを受けて入社、入社後に転属って感じでもいいのかなぁと思う。