はじめに
こんにちは!Sansan SUMMER INTERN 2020に参加した大久保です。
私は、Eightが提供しているダイレクト採用プラットフォームであるEight Career Design (ECD)チームのサーバーサイドエンジニアとしてジョインして「候補者検索機能の刷新」を担当しました。
ECD とは、Eight を利用されている方と、自社にマッチする人材を採用したい企業の出会いをサポートするサービスです。詳しくはこちらの記事で紹介されています。
buildersbox.corp-sansan.com
今回のブログでは、Eight事業部で何をしてどんな学びを得たのかを書いていきます!
目次
自己紹介
私は大学3年生で文系学部に所属しています。今までの経験としては、営業の長期インターンを半年と、Webエンジニアの長期インターンを2社で合計1年半程度していました。
今回参加したSansanのサマーインターンがきっかけで、現在も引き続きECDのサーバーサイドエンジニアとして長期インターンをしています!
趣味はスケボー、アニメ観賞、テトリス、麻雀、ドライブ、釣りなどです!
エンジニアとして自分の強みの活かし方を探しに
サマーインターンに応募した時の私の課題は「自分の強みの活かし方がわからない」でした。
というのも、ストレングスファインダーやエニアグラムなどの性格診断ツールでの私の強みは「ポジティブ・社交性・コミュニケーション・包含・献身家」などでした。私は場を和ませたり、人のために行動することが得意ですので、納得していましたが、その強みをエンジニアとしてどのように活かせばいいかわかりませんでした。
SansanのValuesには「強みを活かし、成果を出す」というものがあります。そのため、Sansanのサマーインターンに参加すればすれば私の課題である「エンジニアとして自分の強みの活かし方」が見つかるのではないかと思いました。
サマーインターンで行ったこと
ECDの候補者検索機能を刷新(メインタスク)
候補者検索機能とは、ECD の機能の中でも、企業の担当者が Eight 内のスカウトを希望しているユーザーを検索してスカウトメッセージを送ることができる機能です。
主な業務
- API定義
- Elasticsearchで検索する処理
- Elasticsearchで検索できるように検索リクエストを整形する処理
- それら検索に関わる処理を1つのAPIとして組み合わせる
- テストコードの作成
わからないことがたくさんでパニック
少ない開発経験と教本で得たRubyやRuby on Railsの基礎知識だけでは、候補者検索機能の開発は難しかったです。
その理由は以下です。
- 候補者検索機能の検索項目は、キーワード検索、職種、年齢など10個以上もあり、その指定方法も自由入力、単一/複数選択、範囲選択、など複雑に分かれている。
- それらのリクエストをElasticsearchで検索できるように整形し、実際にElasticsearchで検索しなくてはならない。
- 候補者検索機能におけるテストケースがたくさんある。
私の場合、Eightの設計やElasticsearchについてほとんど知識がなく、仕様の読み込みも甘かったことなどから、課題を整理できずパニックになってしまいました。そんな中でも、何とか急ピッチで情報をインプットしながら業務を進めました。
課題を「個別化」して頭をクリアに
メンターの方と情報を整理したところ、私のパニックの原因は「プロダクト関連の知識不足、技術力不足、仕様の理解不足」などの課題を個別に考えることができなかったことだとわかりました。
課題を「個別化」できればパニックにならずに丁寧に1つ1つ対処することができたので、今後は積極的に課題を「個別化」しようと思いました。
技術的なことも本当にたくさん学ぶことができました。Slackで質問した内容に素早く回答して下さったり、PRのレビューを事細かにいただいたり、ググり方などを教えていただりしました。足りない知識は技術書を貸して下さったり、ペアプロも長い時間していただいたりしました。本当にメンターの方々に感謝しています。
なお候補者検索機能の刷新の詳細については、こちらの記事で紹介されていますので、あわせてご覧ください。
buildersbox.corp-sansan.com
ECDチームに新しい機能を提案(サブタスク)
サブタスク始動
「強マッチ」でEight事業部の方々に自分の強みを発表した際、Eight Career部の部長から「PM業務をやってみたらどうだ?」という提案をいただき「ECDチームに新しい機能を提案」というサブタスクが始動しました。
※ サマーインターンでは、2週間という限られた期間の中で成果を出すために、基本的に一つの課題に取り組むので、本来サブタスクは設定されていません。
主な業務
- サービスの理解
- サービスの現状の課題を把握
- ビジネスサイドを通じたユーザーの要望のヒアリング
- ヒアリングをもとにした新機能を提案
ユーザーの課題はどこにあるのだろう?
新機能を提案するにあたって最も苦労したのは、ユーザーの真の課題を見つけることです。改めて候補者検索機能を使う目的と課題に向き合うために、ユーザーの要望を大切にしました。
キーワード検索サジェスト機能
ユーザーの要望と候補者検索機能を使う目的を比較して、私が提案した機能が「キーワード検索サジェスト機能」です。
この機能はGoogleやAmazonの検索のように、検索し始めたときに予測変換する機能です。
この予測変換される文字の並び順を、「ヒットしている件数が多い順」や「検索回数の多い文字順」などで表示することで、企業と候補者が最適なマッチングをすることができるのではないか。と思い提案しました。
ECDチームメンバーの反応
私の提案を聞いたECDチームメンバーは「作りたい!」「キーワード検索機能の先駆けとなりそう!」といった好感的な反応をしてくださいました。とてもうれしかったです。
また、ユーザーの要望を吸い上げ、機能を考えている時間はとても楽しかったです。
ユーザーに寄り添うエンジニアに
ユーザーの要望を分析することで課題が明確になり、「その課題で困っている人ためにこの機能を開発したい!」という気持ちになりました。これは「人のために行動する」という私の強みに大きく重なります。その結果、ユーザーの使用パターンなどを考えて開発することができるようになりました。
感謝の気持ちを伝える成果発表
成果発表とは
サマーインターンの最後の業務が「成果発表」でした。
成果発表はEight事業部や他の開発部門の方々に、サマーインターンで何を行い、どんな成果を上げたのかを15分間のプレゼン形式で発表します。発表が終わり次第、質疑応答を行い、最後に役員の方々からコメントをいただく流れで行います。
涙がこぼれそうになった
このサマーインターン期間中、業務の成果の裏でたくさんの方々に支えていただきました。その方々から成果発表内容にお褒めの言葉をいただいた時、感謝の気持ちと達成感で涙がこぼれそうになりました。
その上で「もっと人を巻き込んで仕事をして欲しい」や「貪欲に技術を突き詰めて欲しい」などの期待のコメントもいただきました。
成果発表を終えて
成果発表を通して、支えていただいた方々に感謝を伝えたり、成果の内容を含めその成果までのプロセスを振り返ったりすることができました。
Eightで見つけたエンジニアとしての自分
このサマーインターン期間では
- サブタスクでユーザーヒアリング
- メインタスクでヒアリング内容を噛み締めながら実装
- 成果発表で全ての業務の振り返りとアウトプット
という体験ができました。
これらの体験から「ユーザーに寄り添い開発することは、人のために行動することと近しい部分である」ということを発見し、実践することができました。
参加する前は「自分の強みをエンジニアとしてどう活かせばいいかわからない」という課題がありましたが、参加した後は「強みを活かしたユーザーに寄り添うエンジニア」という自分を見つけることができました。
おわりに
Sansanのサマーインターンに参加して本当に良かったと思いました。参加前の「エンジニアとして自分の強みの活かし方がわからない」という課題に対して「強みを活かしたユーザーに寄り添うエンジニア」という答えを見つけられたのは本当に大きかったです。また、エンジニアとして技術を学べたことはもちろん、課題を個別に考えることの重要性も学ぶことができました。この二週間は自身のエンジニアとしての成長角度を大きく上げることができた非常に価値のある時間になりました。本当にみなさまありがとうございました!