私たちは、CircleCI がエンジニア全員にとって学びと成長の場となることを願っており、入社時のレベルや目指すキャリア パスにかかわらず、当社で働くすべてのエンジニアのキャリア構築を後押ししたいと考えています。その一環として、エンジニアに期待されるスキルと成長パスを大まかにまとめた「エンジニアリング コンピテンシー マトリックス」を作成しています。このマトリックスを見れば、職務内容や採用プロセスの概要がひと目で確認できるので、とても便利です。また、学習およびスキル開発についての面談や、目標設定など、エンジニアと一緒に期待値を設定するときの基準としても役立っています。このマトリックスを作成しておくと、より客観的にパフォーマンスについて話し合うことができ、エンジニアを管理するマネージャーの先入観やスキルに影響されにくくなります。つまり、CircleCI のビジョンを明確にすると共に、人材雇用と能力開発のすべての段階で一貫性を維持することができるのです。

CircleCI で最初のコンピテンシー マトリックスが完成したのは 2015 年のことでした。2018 年の初旬には、エンジニアリング部門の成熟度が上がったのを受け、マトリックスの見直しと更新を行い、これまでの教訓を反映する必要があると考えました。

そして今回、新しいコンピテンシー マトリックスを公開することにしました。新しいマトリックスの作成に踏み切った目的はまず、コンピテンシー マトリックスは当社のエンジニアリング文化に欠かせない要素であり、当社とそのエンジニアリング部門の価値基準をきわめてよく表しているため、CircleCI の求人への応募を検討している皆さんにご覧いただき、当社が何に価値を置いているか、CircleCI でエンジニアとして働くことでどのようにキャリアを伸ばせるかをご理解いただくことです。また、コンピテンシー マトリックスの作成方法に関するCircleCI のノウハウを他社の皆さんにも共有するねらいもあります。ぜひ CircleCI のマトリックスを土台として、皆さんのチームの価値基準を反映した独自のマトリックスを作成してみてください。ここからは、新しいマトリックス作成の経緯についてお話ししていきます。

背景

初めてエンジニアリング コンピテンシー マトリックスを作成した 2015 年当時、CircleCI は小規模なスタートアップ企業で、オーバーヘッドをあまり気にせずに、できるだけ短時間で製品を開発することだけにひたすら打ち込んでいました。開発者の数は現在の 3 分の 1 に満たず、各自の経験値にもそれほど差はありませんでした。

最初のマトリックスを作成してから時が経ち、エンジニアリング部門も組織全体も成長を遂げました。優れたエンジニアを育てるには広範な対人スキルも必要であるという認識が深まり、そうした人材を求めるようになりました。多くのチームでペア プログラミングが行われているため、コラボレーションが技術面の主要スキルとなっています。また、個人の成長にはフィードバックが欠かせないという認識から、フィードバック文化を社内に根付かせました。CircleCI に新たなチームや部門が増えるにつれ、コミュニケーション スキルの重要性は、今後ますます高まっていく一方でしょう。

マトリックスを刷新するにあたっては、キャリア面で業界内からどれほどの期待を集めているのか、エンジニアリング文化において何に価値を置くのか、今後どういった文化を大切に育んでいきたいのかなど、さまざまな点から自社を評価し、必要に応じて再定義したうえで、その答えをマトリックスに反映する必要がありました。

基盤の整備

このプロジェクトに取り掛かる前に、まずマトリックスの作成プロセスについて検討しました。チームとしての価値基準をきちんと反映しつつ、各チーム メンバーのキャリア アップに役立つ、意義のあるマトリックスを作成するにはどうしたらよいのでしょうか?

理想的なマトリックスを完成させるために、エンジニアリングのマネージメント チームはプロジェクト全体を通じて、常に当社のエンジニアたちと緊密にコミュニケーションを取り続けました。また、マトリックス作成の各段階でエンジニアのフィードバックを集めるために、エンジニアリングの全関係者を集めたフィードバック ワークショップや、パフォーマンス評価の試験導入に加え、エンジニア、エンジニアリング マネージャー、人事チームのメンバーから成るフォーカス グループへの聞き取り調査に取り組みました。フィードバックをコンスタントに反映し、あらゆる要素を含んだ包括的で安定したシステムを確実に作り上げるうえで、このアプローチは非常に有効でした。

さらに、マトリックス作成において達成すべき主な目標も設定しました。具体的には、次のような特性を持ったマトリックスが完成すれば、プロジェクトが成功したと見なすことにしました。

  • 一貫性: コンピテンシーの定義とコンピテンシーの実証方法に対する期待値は、同一レベル内および全レベル間で一貫していなくてはなりません。
  • 手軽さ: 各レベルについて細部まで完璧には理解できなくても、エンジニアにとって特に重要な仕事や、影響のある事柄を簡単に把握できることが大切です。
  • シンプルさ: マトリックスは十分に練り上げたうえで、キャリアの成功にかかわる多くの要素が盛り込まれなくてはなりませんが、キャリア開発に関する有意義な対話の基礎として活用できるよう、シンプルに作成されていることも重要になります。
  • 明快な文言: 正確かつ慎重に言葉を選ぶ必要があります。あいまいな表現を避け、各レベルのエンジニアが対応すべきスキルの範囲や目的の変化について明確に記述しなければなりません。コンピテンシーの定義には能動的な言葉 (「~できる」ではなく「~する」) を使用し、能力ではなく実際の行動に焦点を当てるようにします。
  • わかりやすい構造: ひと目で概要を把握できると同時に、必要に応じて詳細を確認できるような構造を目指しました。

重要な価値基準

プロジェクト開始当初からはっきりしていたのは、今回のマトリックスにも組織の成功とキャリアの充実に関する CircleCI の信念をそのまま反映させたいということでした。その 1 つとして、チーム メンバーが 100 人いれば 100 とおりのキャリア パスが存在するという信念の下、各自の成長過程を最大限にサポートしたいと考えています。そのため、期待値の設定方法やエンジニアの成長をサポートする方法を標準化するべく、このマトリックスに以下の基本的な前提条件を組み込むことにしました。

すべてのエンジニアがマネージャーになる (またはマネージャーになりたがっている) ことを前提としない。 CircleCI のエンジニアリング コンピテンシー マトリックスでは、アソシエイト エンジニアに相当するレベル E1 から、プリンシパル エンジニアに相当するレベル E6 までを定義しています。当社はエンジニアのキャリア パスの「最終目標」を「管理職になること」と決めつけてはならないと考えています。多くのエンジニアはエンジニアとして成長することに集中したいと思っていますが、管理職を目指すならまったく異なるスキルセットが要求されるからです。そのため現在は、エンジニアリング チームのリーダー、マネージャー、ディレクター用のコンピテンシー マトリックスもそれぞれ作成しています。各マトリックスは個別のシステムとして運用し、マトリックス間の移行パスも用意する予定です。

若手エンジニアでもリーダーになれる。「リーダーシップはだれでも発揮できる」 というのが当社の信念であり、社内のすべてのエンジニアには、積極的にリーダーシップのスキルを養ってほしいと願っています。そのため、コンピテンシー マトリックスのスキル項目として、特にリーダーシップを重視し、すべてのレベルのエンジニアに対して身に着けることを求めています (若手エンジニアの場合、リーダーシップ セクションの割合はスキル全体の 17% を占めていますが、このセクションはフィードバックやコミュニケーション、コラボレーションといった他のセクションのリーダーシップ スキルとは別に設けられています)。たとえば、当社のマトリックスのテスト スキルの項を見てみましょう。レベル E2 ではテストを記述するスキルが求められているのに対し、レベル E6 になると、戦略を推進してチームによるテストの改善を後押しするスキルが求められています。すべての分野において、エンジニアの中心的な業務は徐々に変化し、単なる作業の実施から、ファシリテーションや他のメンバーへのアドバイスおよびメンタリングへとシフトしていきます。この法則は、管理職であるかどうかに関係なく、エンジニアの全員に共通です。

成長は常にまっすぐ合理的に進むわけではないため、エンジニアはさまざまなコンピテンシーを、さまざまなレベルで開花させるものだととらえています。CircleCI のコンピテンシー マトリックスはあくまでもガイドラインであり、チェックリストではないので、多少の差異があることは想定内です。当社はマトリックスとの差異を成長の機会に関する会話の糸口とし、どうすれば各エンジニアの成長を、会社として支えることができるかを考える材料としています。また、特定の強みを生かして、エンジニアのさらなる成長につなげたり、メンターとして同僚をサポートしたりする方法についても話し合っています。

エンジニアは時間と共に成長するものであり、チームのメンバーやビジネスのステークホルダーとかかわるうちに、与えられた作業をこなすことから、より規模の大きなチーム レベルの業務へと少しずつ影響の範囲を拡大していきます。やがて、複数のチームにわたる仕事に携わり、最終的には組織全体に影響力を持つようになります。成長には、スキルアップ以外にもう 1 つの重要な側面があります。それは、スキルを発揮する頻度を高めることです。日ごろからたびたびスキルを発揮し、ついにはそれが常態化するのが目標となります。

優れたエンジニアの資質とは、コーディング スキルをはるかに超えた部分にある。 これは、経験値の異なる、当社のさまざまなエンジニアと話をすることで確認された経験則です。経験を積んだエンジニアほど、コーディングに割く時間が短いというケースも珍しくありません。そのため、現在当社がエンジニアに求めるコンピテンシーのうち、技術的なスキルは全体の 20% にすぎません。そして、フィードバックやコミュニケーション、コラボレーションに関するスキルも同じ割合で要求しています。こうしたスキルは優れたエンジニアに欠かせない資質であり、当社が目指すエンジニアリングの文化とも合致しているからです。当社は良質なエンジニアリングを何よりも重視し、チームワークや学び合う姿勢、互いにフィードバックを与えることこそが、すべてのエンジニアの成長につながると考えています。

コンピテンシー マトリックス

CircleCI のエンジニアリング コンピテンシー マトリックスはこちらからご覧いただけます。また、このマトリックスの簡単なガイドラインと使用方法についてまとめたドキュメント併せて公開していますもし CircleCI でのキャリア アップにご興味をお持ちでしたら、CircleCI 採用情報ページから奮ってご応募ください。

今後の予定

この新しいコンピテンシー マトリックスが完成してから 4 か月が経ち、CircleCI では既に OKR (Objectives and Key Results) メソッドに基づく目標設定や、パフォーマンスの評価に活用しています。この新しい体系が馴染んでくるにつれ、コンピテンシー マトリックスおよびそのガイドラインや運用プロセスに対するフィードバックも集まってきているため、必要な変更点を検討するうえで参考にしていくつもりです。予定としては 6 か月使用した後で改めてチーム全体でマトリックスの見直しを行い、必要に応じて改訂します。おそらく 2019 年の初旬になるでしょう。

CircleCI では新しいメンバーを募集しています。エンジニアリング職の求人状況については、こちらでご確認ください。また、今回公開したマトリックスへのご意見もお待ちしています。lena@circleci.com まで、E メールをお送りください。

皆さんも独自のコンピテンシー マトリックスを作成してみませんか? 私たち自身が、プロジェクト開始前に知っておきたかったことを記事にまとめました。詳しくは「エンジニアリング コンピテンシー マトリックスを作成するための 7 ステップ」を参照してください。