#スタートアップで活躍できるエンジニア
本日のAncar社のアドベントカレンダー9日目を担当するKenです。早速ですが、本日はAncar社のケースを交えつつスタートアップで活躍できるエンジニアというテーマで書いていきたいと思います。
Ancar社の開発チームで活躍するエンジニアのバックグラウンドは様々です。メガベンチャー出身の腕利きのエンジニアから新卒駆け出しエンジニアまで幅広い人材がいます。スクラムマスターとプロダクトオーナーの下に26歳のエンジニアを筆頭に4人の若手が日々互いに切磋琢磨しながら開発しています。若手エンジニアは伸び伸び開発できる環境にあり、要所はベテランエンジニアがヘルプするような若手にとっては理想の環境と言えます。さらに、ビジネスサイドを繋ぐPMやデザイナーも在籍しており、小規模ながら円滑にプロダクトが発信できる、これぞスタートアップの良さという開発環境です。
しかし、創業してもうすぐ丸5年が経ちますが、直ぐにこの環境を作れた訳ではなく、スタートアップに起こるハードシングを何度も経験した末に行き着いた結果です。失敗に関して、在籍していたエンジニアや他のメンバーを批判する意図は全くないので、詳細は記載せずに、どのように方針を変更してチームがワークし出したかを記載します。スタートアップで採用を含めた開発チームの組織作りの参考になれば幸いです。
※ここでいうスタートアップとは開発チームの人数が10人以下程度を想定して記載しております。また、AIやブロックチェーンなどの専門的なスキルで深掘るようなスタートアップは想定していません。
若手エンジニアが中心となって開発した中古車検索サービス「Ancar Search」
#専門的スキル・経験<推進力<ビジョンの共有
『専門的スキル・経験<推進力<ビジョンの共有』私の考えるスタートアップで活躍できる必要なエンジニアの要素です。まさに、Ancar社がこちらの優先順位の方針に切り替え開発チームが活性化できたと思います。元々、「車」、「CtoC」という特徴があるサービスで、興味を持つエンジニアは一定数おり、技術レベルの高いエンジニアも多く関わるチームでしたが、ある時期を境に技術レベルに焦点をあてた採用から技術レベルの許容範囲を広げ、会社にフィットするような人材を採用する方向に転換しました。
専門的なスキルや経験は一旦、優先順位を落とし、カルチャーフィットを重点的にみる採用方針です。次に、推進力に注目し人材をスクリーニングしました。これは、アウトプットを出す能力、何でも取り組もうとするソフトスキルです。スタートアップではこだわるところはこだわって、ある程度で前へ出していくバランスが求められます。問題を指摘するだけでは、何も前へ進みません。とにかく、進める、アプトプットをだす推進力が重要です。
そして、最終的にこれらのソフトスキルに専門的スキルや経験があれば最高ですが、まずここまでの人材にスタートアップが巡り会うことはないと思います。もし出会えれば、共同創業者CTOになっていると思います。一方で、ビジョンも共有でき、推進力があって実務能力も高く、さらに専門的スキルや経験もあるエンジニアを多くのスタートアップが求めています。これはほぼ不可能な希望です。Ancar社は市場環境を冷静に捉え、ハードスキルからソフトスキルを重視する採用方針に大きく転換を社長が意思決定したことが開発チームの転機となりました。
大手はスキルと経験重視でもチームがワークする可能性がありますが、スタートアップでは採用の優先要素を専門的スキル/経験<推進力<ビジョンの共有の様に逆にするのが良いと思います。
#専門的スキルをどう補うか
スタートアップで、上記の通り、ソフトスキルのフィットに採用の優先要素にした場合にどうしても、技術的な問題が出ることも多く、技術を補う何らかの施策が必要になります。ここで、外部委託の存在が必要になります。いくら、ビジョンに共感して、何でも前向きに取り組んでくれるエンジニアが採用できたとしても、スキルがなければ開発もままなりません。ここで、外部委託で技術サポートをしてくれるメンターのような存在をうまく組み合わせることが大切になります。Ancar社にはネイティブアプリのエンジニアは在籍していませんでしたが、うまく内部人材と外部人材を組み合わせて下記のアプリを開発しました。
外部委託をうまく活用して開発したカメラアプリ
#どのスキルエリアの人材を採用すれば良いか?これはスタートアップには無意味な質問
よく、採用募集する時にバックエンドかフロンドエンドの人材が良いですか?現在開発中の言語はなんですか?というような会話をエンジニアを探すスタートアップとすることがあります。勿論、基本情報としては必要なのですが、もっと大切なのはスタートアップなんで足りないところや、やりたいことにどんどん開発のプロジェクトが移るので、どのスキルエリアでも取り組むことになることが多く何でもやってみたい!というような人が最適でこの質問はほぼ意味がないことです。複数のスタートアップのCTOもエンジニア採用をする際に、バックエンドもフロンドエンドもどちらでも良い、結果的は両方やることになる可能性が高いし、ネイティブアプリも将来開発する可能性もあるので何でもやる意欲がある人でないと厳しいと証言しています。
大企業からスタートアップに転向するエンジニアも増えてきておりますが、実際は自分の得意なスキルエリアで仕事ができていないことが散見され、ストレスを抱えるエンジニアも少なくありません。スタートアップで一つの分野を深く掘るのは一部のテクノロジードリブンで動いているスタートアップのみで大半のスタートアップではフルスタックにならざるえないと思います。実際、私の周りのフルスタックと呼ばれる凄腕エンジニア達もスタートアップでの人足りない問題の経験を通して、その流れでフルスタックになっていった方も少なくありません。
#スタートアップの若手が取り組んだら良い方向性
1.自走力
2.オーナーシップ
3.実用的
上記であげた推進力というワードを更にブレイクダウンしていくと、自走力、オーナーシップ、実用的な取り組みが大切になってきます。
スタートアップはおそらく、自ら課題を見つけて、解決していかないと何もできずに、「俺は一体何をしているんだ...?必要でない人では?」という思考に陥りやすいです。一方で、自分で手を動かすことが前提で積極的に案をだせばやりやすい環境ともいえます。
オーナーシップは、言い換えれば自己責任という意味合いが強いです。全ては自分の責任と考えて取り組むような姿勢があれば、周りも必ず応援してくれます。「これは自分と関係ない」という思考があれば、ないもの尽くしのスタートアップの開発チームではかなり苦労するはずです。全員がオーナーシップを持って、全て自己完結するぐらいの気迫で取り組むのが良いと思います。
最後に実用的というのは、ビジネスとしての観点を常にバランスよく持って開発にあたらなければなりません。スタートアップはお金というガソリンもいつまでもあるわけではありませんので、どこかで取捨選択をしてリリースをしながら改善することになる場面が多いです。ここではよく、ビジネスサイドと開発サイドで議論が紛糾します。1秒でも早くリリースして、マーケットにあてたいビジネスサイドと、妥協したプロダクトを世に出すのを躊躇う開発サイドという構図です。どちらが正しいということはありません。時には、どちらかにバランスを傾ける必要があり、その判断が日々変わることに慣れないといけないことが面白くもあり、難しいところです。
ブレイクダウンしたところで、かなり抽象度の高い概念とお感じの方もいるかもしれませんが、実はこれくらいまで言語化して、採用の際に質問項目をブラッシュアップしておけば、これらの要素を持った人材がスクリーニングできる可能性が高いです(これはまた別の機会に...)。
プログラミングスキルという観点とは少し違う、ソフト面の話で恐縮ですが、スタートアップで活躍できるエンジニアというテーマはいかがでしたか。スタートアップで活躍できるエンジニアは大手企業とは別物と考えておりますが、意外と言語化されるていることが少ないと感じております。本日はお付き合い頂きありがとうございました!