立ち上げ期のSaaS事業におけるエンジニアインターンの採用について

SaaS事業 テックリードの石見です。

2023年4月からSaaS事業を立ち上げており、エンジニアインターンを採用しました。
結論、最高の結果になったため、誰かの助けになればと思い詳細に記載することにしました。

SaaS事業の立ち上げの変遷は前回の記事をご覧ください。 product.plex.co.jp

前提

当時の状況を記載します。

4月から立ち上げを行い、事業が急成長していました。
6月には新規開発、既存機能の改善、事業における技術的な意思決定を1人で進めていくのが物量として限界でした。

コード品質と仕組み化には、こだわっていたため育成環境はありましたが、事業はまだまだ不確実な状況でした。

正社員の採用活動と同時にインターンの採用活動も行うことにしました。

採用要件

要件は以下のようにしました。

必須項目

プログラムによる実装経験がある

if, for とはなんですか?からの育成はコストが大きすぎるため。

※就業・実務の経験は問わない。

週3日以上の出社(研修期間中)

初心者は「何がわからないかわからない」ので、テキストコミュニケーションが困難であるため。

また「社員の時間を奪いたくない」「できないと思われたくない」などの質問への萎縮も発生しやすいので、様子を見てメンターから声をかけたいため。

そして、ドメイン知識のキャッチアップのため。

推奨項目

事業で結果を出すことに興味関心・意識が向いている

立ち上げ期は、意思決定の前提となる条件が大きく変わることが多いです。

また、事業責任者・顧客・競合でさえも正解がわからないことも多いです。チームのひとりひとりが自身の専門性と価値観から意見をぶつけることが重要です。

技術としての成功、タスクとしての達成を超えて、事業に意識が向いていることを推奨としました。

採用フロー

募集

伝えたこと

企画、設計、実装のすべてのプロセスに関われること

立ち上げ期であり、やるべきことは大量にあります。

企画、設計、実装から、それがどう事業に影響を与えるかのすべてのプロセスに関われることが強みとなります。

成長プロセスの明記

立ち上げ期は不確実性が高いため、不安に感じる場合もあります。そのため、プロセスを明記しました。

以下のスプリントを1~2週間で1周します。

・課題と企画と仕様の把握
 ・課題に対して、企画が妥当であるか。企画に対して仕様が妥当であるかを整理します。
・設計
 ・整理した仕様を元に設計を行います。シンプルで良い設計になるまで議論します。
・実装
 ・設計通りに実装をします。シンプルな実装になるようにレビューします。
・振り返り
 ・開発が終わるごとに、学んだこと、疑問だったことなど、成長を言語化して共有します。

学生のキャリアに貢献すること

学生の時間は本当に貴重です。その時間をいただくからには責任を持ってキャリアに貢献することを明記しました。

選考

前提

最初に事業立ち上げにおいて、優秀なエンジニアを定義しました。

  • 技術力が事業の決定打になることは、ほぼない。
    • 当たり前の機能の検証が多いため、大抵は入力 -> 保存 -> 表示で十分である。
  • 性能の最適化が事業の決定打になることは、ほぼない。
    • パソコン、スマホなどデバイスの性能が上がった時代。
    • 事業がスケールしない限りは、最適化が必要な状況はほぼ起こらない。
  • 言語、フレームワークの経験値が事業の決定打になることは、ほぼない。
    • 1週間あれば入門して、アウトプットを出せる時代。
    • 当たり前の機能の検証が多いため、大抵は入力 -> 保存 -> 表示で十分である。
  • Copilot・ChatGPTの登場した現代。
    • 正しい指示ができれば8割の精度で自動生成できる。

→ 課題を特定できて、解決策を提示できて、それを仕様や設計に落とし込めるエンジニアが優秀となる。逆にこれらができれば実装はシンプルになり、自動生成も可能となる。

※もちろん技術のプロとして技術力は非常に重要です。ただ、立ち上げ期は技術力以外の比重が大きくなると考えています。

1. 面接

大きく3点を確認しました。

気持ち

  • なぜ応募したのか
    • 直近の将来像、求めているもの
  • なぜエンジニアなのか
    • 長期的な将来像、欲望、野望

行動

  • (気持ちの回答に対して)そのために何をやったか、やっているか
    • 具体的な行動内容と意図
  • 上手くいったこと、上手くいかなかったこと、その理由
    • 課題と要因
    • 自責と他責の認識
  • アウトプット
    • インプットだけでなく、アウトプットしているか
  • 毎日3時間以上技術に触れているか、触れることを習慣にできるか
    • 量を積めるか、失敗をできるか

対話

  • 抽象的な表現が出てきた際に質問する
    • 具体と抽象の思考と、その場で定義ができるか
  • トレードオフな質問をする
    • 状況と情報の整理と、意思決定ができるか

2. 技術課題

アウトプットを出していただければ、フィードバックをして育成はできると考えたため、今の本人の最大限をアウトプットする能力を確認できる内容にしました。

また、Copilot・ChatGPTでは回答が難しく、事業で結果を出すことに興味関心・意識が向いているかを確認できる内容にしました。

結果として「シナリオとヒントを伝えて自由にシステムを実装をしてもらう」という非常に抽象的な課題となりました。

シナリオ

ダミー社は、企業の経営情報を元にシステムの営業をする会社です。

今までは、スプレッドシートやエクセルやテキストなど、部署や個人で管理していた企業情報ですが、DXの流れもあり、社内の企業情報を1つにまとめた検索システムを構築することになりました。

あなたは、現状と課題を整理して、仕様と企画を定め、素敵なシステムの実装と運用をする必要があります。

レギュレーション

  • Rails + Next.jsで実装してください。
  • 質問は3回までOKです。
    • 複数の質問を1度に送ったら1回としてカウントします。
    • 課題の特定、実装方針の決定、成果の確認で利用するのがおすすめです。
  • 2週間以内にGithubで提出してください。
    • 合否にかかわらず必ずフィードバックをします。

3. フィードバック面談

学生の貴重な時間をいただくからには、合否にかかわらず「参加して良かった」と思っていただけるくらいのフィードバックをしたいと考えていました。

評価点

  • 情報整理
    • 課題を捉えているか
    • 質問をしたか
    • 質問の視点がエンジニアを超えて事業へ向かっているか
  • 実装力
    • 実装方法の妥当性
    • 実装内容の妥当性
    • 実装順序の妥当性
  • システム
    • 不具合がないか
    • UI / UX
    • データの正規化
  • その他

Githubを一緒に見ながらフィードバックをしました。 「ここはできている」「ここはもう少し」「この視点があると良い」「こう実装すると良い」と背景と意図を具体的に伝えることを意識しました。

また、学生の貴重な時間をいただくからには、必ずキャリアに貢献したいと考えていたため、インターン期間が中途半端に終わらないようにフィードバックの後に「Nヶ月いただければ成長にコミットできる」と伝えて、インターン期間の合意を得ました。

4. CTO面接

ここまでは私1人で行うため、独断と偏見にならないようにCTO面接を最終面接として行いました。

結果

実務未経験者を対象としたため、2週間という短い期間でしたが非常に多くの応募をいただきました。

  • 応募: 62
  • 書類選考合格: 34
  • 面接合格: 19
  • 技術課題提出: 9
  • 技術課題システム動作: 5
  • 最終合格: 3

最終合格となった3名は、システムの提案資料と技術資料を作ってプレゼンをした方や、「この会社の営業方式はオフラインですか?オンラインですか?」といった非常に具体的な業務プロセスを質問して課題を特定した方や、非常にミニマムな実装のみでシステムを実現した方など、本当に素晴らしい方々でした。

感想

まず、選考に関わってくださった学生の方々、本当にありがとうございました。

若い方から学ぶことは多かったです。

合否に関係なく、学生の夢や思考を聞いて一緒に議論して課題を進めた時間は本当に楽しく眩しかったです。

ほぼ1人で採用活動を行いましたが「事業の成長と学生への貢献」の両立を実現する結果となり、嬉しかったです。

次回は、採用後の育成について執筆をできたらと考えています。

... 最後に

「事業で勝てるエンジニア」「事業と技術の両軸」を志している方は、ぜひ連絡をください。

一緒に闘いましょう。