データを活用した目標設計と運用にトライした1年間を振り返ってみた
こんにちは、Findy CTO の @ma3tk です。 FindyではFindy Teamsを活用したエンジニアの目標設定に取り組み始めましたので、具体的な活用方法にも触れつつ、お話したいと思います。
目次
前提: 営業ほど簡単に決められない、測りにくい
営業の目標設定ってわりと「売上:XX万円達成」で計測しやすいですよね。
一方で管理部門やデザイナー、そしてエンジニアは目標設定がなかなか難しい職種ではあります。
エンジニアですと、「1行のコードを書いた=売上XX円」が分かるのであれば簡単なのですが、世の中そんなうまくいきません。
だからこそエンジニアの成長度合いを、目標設定と振り返りを常に実施することで可視化し、「過去の自分と比べてどのくらい成長できたか?」を確認することが大事だと思っています。
今回はプロダクト開発において、Findy Teamsを活用してどのように目標設計をして、どんな振り返りをやっているのかについてまとめてみました。
※Findy Teamsサービスの詳細は以下よりご覧いただけます。 https://findy-teams.com/service_introduction
※Findy Teamsのサービス画面は以下よりご覧いただけます。 https://findy-teams.com/dashboard
やったこと① Findy Teamsで可能な限り計測できる指標を追う
例えば、「バックエンド開発を頑張る」という一言だけでは、何をどう頑張ったらリーダー・メンバーの双方が納得のいく「頑張り」になるのかが分かりません。
特に良いコードを書いたり、チーム開発ができてる場合に、Findy Teamsで追うと良さそうな指標としては以下が挙げられます。
アクティビティ量
- プルリク作成数
- どれだけ変更提案したか?の数
- 変更提案数が多ければ多いほど進化している、という前提
- 1日1プルリクを追うであったり、定常的に毎日コード書けてるかを確認
- 自分がレビューしたプルリク数
- 人のコードをどれくらい読んだか?の数
- 読めば読むほど時間はかかるが学びにつながる、という前提
- 1プルリクに対する平均コメント数
- 他の人からどれだけツッコミが入るか?の数
- 提案に対して意見がなければ、コメント数も少なくなりやすい
- 逆にジュニアなメンバーだとコメント数が多くなりやすい
リードタイム
- 1プルリクあたりの平均マージ・クローズ時間
- 変更提案してから提案が受け入れられるまでの時間
- 変更提案したものに物議を醸す場合や修正に手間取る場合、この時間が遅くなる事が多い
- 優秀な人ほど端的に狭い範囲で良いコードを書くため、この時間が短い傾向にある
- 最初のコミットからプルリク作成までの平均時間
- コードを書き始めてから変更提案するまでの時間
- 変更提案したいものを作るまでにどれくらいの時間を要しているかが分かるので、力量が把握しやすい
- 同様に優秀な人はこの時間が短い傾向にある
- プルリク作成からレビューまでの平均時間
- 他人のレビューをすっぽかして他人の待ち時間を増やしていないか?かが分かる
- この数値が遅い要因は、①レビュー依頼をできていないか、②依頼はしたがレビュワーが気づいていないのか、③レビュワーは気づいているものの手元のタスク消化等を優先して着手してくれていないのか、のいずれか
- 爆速でレビューする体制になっているチームほど健全
もっとありますが、ベーシックなところはこんな感じです。
メンバーは、この指標のいずれかで課題がありそうなものや定点観測すべきものをリーダーと相談して選び、自分の目標を作ります。(=メンバーとリーダーの期待値の目線合わせ)
目標設計のサンプル
-
目標の方向性:高速開発を実現し、顧客への価値提供スピードを上げる
-
観測する指標: 一ヶ月あたりのプルリク作成数
-
目標値: 半期終了時点で現状の2倍が最大目標。最低でも1.5倍
-
月別の目標(最小-最大、一ヶ月あたりのプルリク作成数)
- 1月(前期初): 40 - 50
- 2月: 50 - 65
- 3月: 55 - 70
- 4月: 65 - 80
- 5月(前期末): 70 - 85
-
※昨年参考
- 9月: 40(リリース込45)
- 10月: 35(リリース込40)
- 11月: 45(リリース込50)
- 12月: 60(リリース込90)
-
評価点(評価分類は各社によって異なりますが、、、)
- 7:120プルリク以上
- 6:90プルリク〜120プルリク未満
- 5:72プルリク〜90プルリク未満
- 4:60プルリク〜72プルリク未満
- 3:42プルリク〜60プルリク未満
- 2:30プルリク〜42プルリク未満
- 1:30プルリク未満
※数値化しやすいものは定量評価にて数値化し、定性的なもの(新技術提案や外部発信の影響力を上げる、計測が難しいマインド等)は定性評価にするなど、評価方法を分けていました。
※Findy Teamsサービスの詳細は以下よりご覧いただけます。 https://findy-teams.com/service_introduction
※Findy Teamsのサービス画面は以下よりご覧いただけます。 https://findy-teams.com/dashboard
やったこと② 毎月の1on1で定点観測してメンバー自身に振り返ってもらう
メンバーとの1on1は毎週行っていましたが、月初の1on1だけは目標の振り返りを行っていました。
【4月時点での振り返りイメージ】
- 1月: 47 →お問い合わせ対応が多く想定よりプルリク作成数を増やせなかったので、△
- 2月: 62 →細かい改修が多く対応した数が多かったので、◯
- 3月: 59 →差し込みの調査が多い中で、ギリギリ◯
- 4月: 54 →チャレンジしたことないタスクを実施したため、下がった△
- 5月:
- 6月:
【考察】
-
2月の増加要因
- 確認や調整などが少なかったため
- 企画A → マーケ/フロントエンドとの調整を先に実施できたため
- メールの改修 → 想定より簡単に切り出して開発できたため
-
3-4月の減少傾向の要因
- 新規のタスクや差し込みが多く開発時間の確保が難しかった
- チャレンジタスクが多かったので難易度が上がった
- 一方で不具合対応などによる修正対応PRの増加もあり、極端に減少はしなかった
上記のようにまとめておくと、最後に総括がしやすくなります。
※Findy Teamsサービスの詳細は以下よりご覧いただけます。 https://findy-teams.com/service_introduction
※Findy Teamsのサービス画面は以下よりご覧いただけます。 https://findy-teams.com/dashboard
やったこと③ 振り返って目標を変更・追加する
目標設定から何ヶ月か経過すると、「 目標が無謀すぎる 」「 一瞬であのタスクやらなくなった 」等が発生し、目標が意味を成さなくなる事もあるかと思います。
なので、最初に2つか3つくらいの目標にしておきながら、
- 既存の目標の100%達成の目標値を上方・下方修正する(下方したら新しい目標を置くことをセットにしていました)
- やらなくなったタスクの代わりに、3つ目や4つ目の目標として新しく目標を作る
等の運用にすることで、目標を常にアップデートできるようになります。
例えば、「1月にプルリク作成数の目標を60と設定したにもかかわらず、3月にはお問い合わせがチームで課題になり、対応を率先してやっていきたいと思う」となった時に、
- お問い合わせにかかる工数は毎日1時間〜2時間程度
- 現状のプルリク作成1つに対して2時間程度かかるものが多いので、1日1つ減らす
- 期中の4月以降以降は平均40プルリク作成に落とす
と目標をアップデートして、1on1でメンバー・リーダーで目線合わせをすると良いのかなと思っています。
すると期末には以下の様な状況になります。
- 目標は実態に応じて毎月すり合わせてるので、目標と実態のブレとしては最大1ヶ月程度
- メンバーは結果を毎月振り返って記載しているので、半年前の状況を思い出す必要がない(思い出すのは結構大変)
- メンバーは自分の推移がわかるので、次期に向けて目標を定量的に考えやすい
- リーダーは過程を見ているので直近のパフォーマンスだけを見て評価することを回避できる(評価は、往々にして直近のパフォーマンスに引っ張られがちかなと思います)
- リーダーは他の部署とのすり合わせ時に、メンバーの評価結果の妥当性を伝えやすくなる(チームによって、タスク難易度や繁閑度合いは変化するものの、Findy Teamsの指標を統一指標として用いることができるため)
など。
逆にこのすり合わせを適当に行っているとコミュニケーションに差が出て「リーダーは分かってくれない」「メンバーが頑張ってくれない」という、認識ギャップが減るのではないかなと思います。
※Findy Teamsサービスの詳細は以下よりご覧いただけます。 https://findy-teams.com/service_introduction
※Findy Teamsのサービス画面は以下よりご覧いただけます。 https://findy-teams.com/dashboard
まとめ
過去に様々なCTOの方と話してきましたが、この目標設定と振り返りの過程でいちばん大事なのは「 お互いの納得感 」ということであるのがわかったのが2020年で、そこから2021年はどう納得感を作るかにトライしてきました。
これはエンジニアであってもなくても変わらなくて、お互いの期待値を何度もすり合わせ続ける(=期待値合わせ)ことが大事なのではないかと思っています。 この期待値合わせのための定量的な指標としてFindy Teamsをお使いいただくと、客観的な視点で議論してすり合わせができるため、良いのではないかと思います。
- リーダーはどんなことを期待するのかを明確にして伝える
- ex. まずはこの半年でバックエンド開発においてどんなタスクがきても一定こなせる状況を期待する、等
- メンバーは
- 半年後、一年後どうなりたいのかを考える
- ex. テックリード?新しい領域としてフロントエンド?EM?…
- 半年後、一年後になりたい自分になるためにクリアしなきゃいけない課題は何かを考え続ける
- ex. 簡単な改修含めてレビューの件数を減らしていく
- ex. アウトプット量(プルリク作成数等)を増やしていく
- ex. 安定して高パフォーマンスを発揮できるようになる
- 半年後、一年後どうなりたいのかを考える
これをやり続けることで、期末にリーダーから「全然やれてないよね?」vsメンバーの「やってって言われたことやったんだけど全然認識違う」という認識ギャップが発生しにくくなります。
常に自分のなりたい像をリーダーに伝え続けて、どうすべきかを真剣に考えて、それをアップデートし続ける状態がいいなと思っています。
人間だし、特にスタートアップに来てる人なんてやりたいことが変わったりしやすいと思います。
変わった瞬間や変わりそうな瞬間や悩んだ瞬間にリーダーと話したり、周りの信頼できるメンバーと話して常に悩みを解決できる状態を作っていきたいですし、そのための定量的な指標としてFindy Teamsを使ってみてはいかがでしょうか!
※Findy Teamsに関するお問合せはこちら https://findy-teams.com/contact_teams
※Findy Teamsサービスの詳細は以下よりご覧いただけます。 https://findy-teams.com/service_introduction
※Findy Teamsのサービス画面は以下よりご覧いただけます。 https://findy-teams.com/dashboard