見出し画像

【エンジニアリングとビジネス】:エンジニアチームの総合力を要素分解し、分かりやすく解説してみる

こんにちは。
PharmaXエンジニアリング責任者の上野(@ueeeeniki)です!

今回は、【エンジニアリングとビジネス】シリーズの第2段です。

CTOの仕事を「エンジニアチームを強くすることを通じて、その企業が最大限ビジネス価値を生み出せる状態を作ること」と定義し、「エンジニアリングとビジネスをどのように紐付けて考えるべきか?」ということを話題にしていきたいと思います。

前回、下図をもとに『【エンジニアリングとビジネス】:エンジニアチームの力とビジネス価値の関係性を紐解く〜『CTOの頭の中:技術を財務で表現する』から考える』と題して、エンジニアチームの力からビジネス価値が生み出されるまでの流れを整理しました。

エンジニア総生産力からビジネス価値が生み出されるまでの流れ


前回は、エンジニアチームの総生産力(=「エンジニア総生産力」)をすべての議論のスタートとして、そこからソースコードなどの「エンジニア生産物」が生み出されると説明しました。
今回は「エンジニア総生産力」をもう少し要素分解してみたいと思います。

改めてエンジニア総生産力とはなにか?

エンジニア総生産力とは、エンジニア総生産力とは、エンジニアチームとして生産物を生み出す力の合計です。
前回の記事でもお話したように、実体は、人、金、ツールでしかありません。
使えるお金やツールの話をしても仕方がないので、ここでは人の部分にのみ注目してエンジニア総生産力を要素分解していきましょう。

では、人の生産力とは何でしょうか。
人の生産力とは一言でいえば、生産物を生産し得る力であり、スキル・能力の概念と、仕事にかけられる工数・労働量の概念を両方含みます。

すごく簡単に言えば、チームを構成する下記2つをかけて、全員分を足し合わせたものがチームの総生産力となるようなイメージです。

  1.  個々人がもっているスキル・能力

  2. 個々人の労働量

そのため、チームメンバーの増加や無理やり長時間働くことができれば、労働量が高まるためチームの生産力が大きくなるのは当たり前です。
そのために採用活動を通じてチームメンバーを増やそうとするのです。

では、エンジニア総生産力を高めるためにエンジニアチームとしてのスキルを伸ばすにはどうすればいいのかを考えましょう。

いい呼び方が思いついておらずややこしくて申しわけないのですが、エンジニア総生産力のうち、スキル・能力の部分のみをエンジニア総合力と呼ぶこととします。

重要なのは、エンジニア総合力を要素分解して誰もが理解できるように言語化することです。
スキルを言語化することができれば、スキルを伸ばす道筋が見えてきます。

エンジニア総合力を要素分解する

エンジニア総合力を要素分解すると下図のようになります。


エンジニア総合力は、どのようなスキルなのか?という軸(図の縦軸)で下記のような3つのスキルに大きく分けられると思っています。

・プロダクトエンジニアリング力:なぜ作るのか?何を作るのか?技術的にどのように作るのか?
・(アジャイル)プロジェクトエンジニアリング力:いつまでにどのような管理をして作るのか?
・組織マネジメント力:どんなチームでどのようなコミュニケーションで作るのか?

そして、それぞれのスキルが何のために使われるのか?という軸(図の横軸)でも以下の3つに分けられます。

・プロダクト系:対顧客市場のスキル
・育成系:対社内ですが、労働力の定着に向き合っていると思えば、対労働力市場とも言えます
・採用系:ダイレクトに対労働市場のスキル

次に、それぞれの能力をより詳しく説明しましょう。
すべてを詳しく説明しているときりがないので、なんとなく感じていただくとして、いくつかピックアップして取り上げます。

それぞれのスキルをより詳しく取り上げる

例えば、「プロダクトエンジニアリング力」はプロダクトマネジメト力とエンジニアリング力に分かれます。
このエンジニアリング力には、コーディング力やインフラなど(サーバー・ネットワーク)を設定力する手を動かす系のスキルだけではなく、インフラを含むアプリケーション全体設計力、コーディングアーキテクチャ設計力なども含みます。また、セキュリティ対策をする力なども含みます。
 DevOps・SREのプラクティスの設計・実践力として、例えばチームやプロダクトに必要なメトリクスを定義して可視化する技術力・スキルやそのメトリクスを運用するためのルールなどを設計する力などが含まれます。

プロジェクトエンジニアリング力」もエンジニアリング力とプロジェクトマネジメント力に分解できます。
プロジェクトマネジメント力には、スケジュール管理、コスト管理、リスク管理などの力に分けることが可能です。

組織マネジメント力」としては、チーム運用力とチーム強化力を含みます。
ここでいうチーム強化力には、育成や発信力などのようなすぐにはプロダクトには活きないようなスキルも含まれます。
前回の記事「【エンジニアリングとビジネス】:エンジニアチームの力とビジネス価値の関係性を紐解く〜『CTOの頭の中:技術を財務で表現する』から考える」でも解説しましたが、発信力も記事発信などを通じて自社を対労働市場にマーケティングして最終的には新たなエンジニアを獲得するための重要なスキルです。

エンジニア総生産力からエンジニア生産物が生み出される


エンジニア総合力についての注意

注意すべきは、エンジニア総合力として存在しているからといって、必ずしもすべてがエンジニア生産物に使えるわけではないということです。

例えば、モバイルアプリを作る技術力があったとしてもモバイルアプリを作っていなければ、エンジニア総合力としてはカウントされるけれどもその技術力はアウトプットには使うことができません。
無駄というのは言い過ぎにしても、技術選定やチームの状態などによっては、必ずしもエンジニア総合力が高い=エンジニア生産物が多くなるということにはならないことに注意してください。

このあたりは、エンジニアとしての生産性の概念にかかわる議論なので、また別の機会にお話したいと思います。

最後に

今回は、エンジニア総生産力とは結局何なのか?という話をしてきました。エンジニア総生産力は、スキル=エンジニア総合力と労働量の掛け算であり、エンジニアチームとしてのエンジニア総合力を要素分解するとどのようになるのか?ということを解説しました。

ただ、エンジニアチームとしてスキル分解の仕方は企業や人によってまた理解が異なるかもしれません。
まずは、エンジニア総合力を分解して言語化することで、エンジニアチームを強くする道筋が見えてくるということを理解いただければと思います。

いつでもご連絡ください

本日はあまりにも細かく分解しすぎると、記事が長くなってしまうため、かなり大雑把に分解してみました。
より詳細について知りたいという方がいらっしゃれば、YOUTRUSTまたはTwitter DMからお気軽にご連絡ください!


DMも大歓迎です!

この記事が気に入ったらサポートをしてみませんか?