この記事は『カオナビ Advent Calendar 2023(シリーズ2)の 5日目』です。
はじめに
今年のアドカレ投稿も3本目になります
カオナビVPoEのKeeeenです。
さて今回は前回のギャップ編の続編である実践編です。
ギャップ編をまだ見ていない人はよければその投稿も貼っておくので御覧ください。
目標設定って本当にやる意味あるのか?
結論からいうと…
目標設定なんて意味がないです!!
こんなことを書くとこの記事が出る頃にはCTOに裏の方に連れて行かれてシバかれているかもしれませんw
嘘です。わたしたちのCTOはとても優しい方です、はい。
冗談はさておき、なんで『目標設定なんて意味がない!』などと暴論を書いたかと言うと、大体の場合が目標設定を正しく行われていないからです。なので正しい目標設定にはもちろん意味があります!!
では、
- 正しい目標設定とは何なのか?
- どのようにすれば正しい目標設定ができるのか?
についてこのあとに書いていきます。
正しい目標設定とは
専門職の目標設定は結果と密に関連するものではなく、他の一般職と呼ばれる職種に比べて評価がとても難しいのは事実です。基本的にエンジニアは真面目な人が多いですし、一生懸命やってくれていることは評価者も理解しています(くれているはず)。
では専門職、ことエンジニアにとって目標設定はどうあるべきかというと、それは
『専門職としての価値を如何に高められたか』
に、尽きます。
つまり言い換えると、目標設定は掲げた目標を達成することで専門職としてその専門性をどれだけ成長させられるかという書き方でなければならないのです。これが難しく、多くの人が正しい目標設定をできていない理由にもなっています。
繰り返しになりますが、エンジニアにおける目標設定はその市場価値をあげるマイルストーンになっているべきというのがこのセクションでの言いたいことです。
閑話休題
さて、カオナビ社では目標を以下の4つに分解して設定します。
ミッション
その期のアウトプットを純粋に評価するもので、成長とは関係なくどれだけがんばって貢献してくれたかを表すものです。
基本的には期初から普遍でこれだけはやってくれという会社側のオーダー的なものが設定されます。
能力(テクニカルスキル)
ここでは専門職の人の成長性に関する目標が設定されます。
エンジニアであればエンジニアとしてどれだけ市場価値をあげられるか、といった感じです。
能力(ポータブルスキル)
これは職種問わず、どの会社でも当然必要になるベースの能力に関する目標が設定されます。
バリュー
この項目に関しては特段目標は設定されませんが、会社が求める人物像や文化とのフィッティングに関することが評価期に評価されます。
このようにカオナビ社では目標設定が要素ごとに分解されており、『正しい目標設定とは』の項で書いた目標設定とはここでいうテクニカルスキルの書き方のことを指しています。
エンジニアを正しく評価しようとする会社であれば、たいていテクニカルスキルだけは分離されていると思いますが、もしこれらがごちゃまぜで1つの目標設定がされているとなると冗談ではなくそれはおそらく設定する人にとっても評価する人にとってもほとんど意味がない目標設定になっているのではないでしょうか。
どのようにすれば正しい目標設定ができるのか?
さて、やっと本題に来ました。
ここまで読んで頂いた方であれば、テクニカルスキルはエンジニアとしての成長を宣言するもので、ある程度市場と連動していることが必要だと気づいた方もいるかもしれません。
では、どうすればその市場感を意識しながら目標を設定できるかのかというと、ここで私の『上位10%に入るくらいには職務経歴書を見てきた経験』が生きてきます。
多くの職務経歴書を見ていると、いつからか自然と市場価値で分類していることに気づきました。そこでのその分類を抽象化したのが、以下の通りです。
1.その分野について触れたこともない、まったくの素人。
2.その分野に触れたことはあるけれど、まだまだ調べながらしかできない人
3.その分野ではある程度一通りできて、調べなくても割りとスラスラ進められる人
4.その分野で様々な知見や経験を有しており、伸びしろは経験の幅だけの人
これら1〜4をそれぞれ、初心者、中級者、一流、達人と定義しましょう。
これから紹介する目標設定フレームワークは端的に言うとこの初心者〜達人に自分を分類し、業務の中でどうすればクラスアップできるかを定義するものです。
では具体的に見ていきましょう。
ステップ1.まず伸ばしたい分野を決め、自分がその分野で今どのクラスなのかを考えます。
例えば、私であればScalaの知識は乏しくほぼ初心者のようなものです。なのでScala初心者となります。
ステップ2.次にその一つ先のクラスに行くために必要なことを定義します。
私がScala初心者であれば、次に目指すのは中級者でベースの知識を手に入れることが目標となります。
ステップ3.最後に2で洗い出したことを定量の課題に落とし込み、その合意形成を取る。
ここでScala中級者になる、すなわち調べればできるレベルになる、ということを定量化していきます。
ここは少しむずかしいのですが、コツとしてはこれまで覚えた言語との比較したり社内でできる人との差分の列挙などをすると良いかもしれません。例えば、PHPで書けると言えばだいたい
『ループ文がかける』
『DB接続ができる』
『if文がかける』
『継承などを使える』
などでしょうか?
最近だとアーキテクチャやアンチパターン、タイプヒンティングなどなど、もう少し加えるべき条件があるかもしれません。ここではできるだけ具体的にピックします。
そして次にそれを業務の中でどうやればわかったと言えるかについて掘り下げます。例えば、
『ループ文をコード中で10個書く』
『継承するclassを5個書いてみる』
などです。
この個数はその人がこれで大体わかったと言えるものでかまいません。
これが定義できて達成された時に、なんとなくこれまでは自分が初心者なのか中級者なのか不明瞭だったものがスッキリ納得感のあるものに変わっていることでしょう。
またこのフレームワークを使うこと以下のようなことも体感出来るでしょう。
・定性的なふんわりした目標設定にならない
・合意形成を取るので、評価者との認識齟齬ができづらくなる
・定量とこれまでの経験の相対で測れるので、自身も成長を体感できる
これは実際社内の目標設定で相談される際もおすすめしている話です。
まとめ
いかがでしたでしょうか?
専門職の目標は営業職のように定量で表しづらいものであり、よく定性的なふんわりした目標設定になりがちです。
しかしこのFWを使いさえすればそんなふんわりした目標を定量に課題を落とし込めるので、評価者との目線が合い、かつマーケットで求められている価値を把握しやすくなります。
伸び悩んでいる達人の人も経験値がキーになるのでそこに論点を絞ればさらなる成長ができるかもしれません。
是非皆さんの目標設定にもお役立ていただけると幸いです。
それではシリーズ2の6日目の記事もお楽しみください!!