$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

ゴールを決め目標を決める・解決案ではなく質問する - コーチングの学習で学んだこと

半年前から会社でシニアエンジニアという役職で、エンジニアのメンターの役割を担っている。その役割を出来るだけうまく演じられるように、半年間はコーチングの学習を進めてきた。

また、半年間、目標・1on1・評価と一通りの業務をこなし、コーチングの実践が出来た。

そこで今回はコーチングの学習と一通りの実践を通して学んだことで、特に役に立ったと思うことについて一旦まとめてみる。特に役に立ったと思った知識は以下の二つである。

  • ゴールを決め、現在位置とのギャップを考え、目標を決める
  • 解決案を与えるのではなく質問する

ゴールを決め、現在位置とのギャップを考え、目標を決める

初めて自分がメンターしている人(メンティー)の目標設定をするにあたり、どのように目標設定をすればよいか悩んでいた。その答えとして、僕は「ザ・コーチ」に書かれていた内容がしっくり来ている。それは、「ゴールを決め、現在位置とのギャップを考え、目標を決める」ということだ。


目標設定する時、まずはメンティーが思うゴールを決めることから始める。ゴールとは、今目指したい場所だ。ゴールは非常に長い目線で考えても良いし、長い目線が難しかったら短くとっても良い。例えばエンジニアであれば、

  • 5年後にこのエンジニアのようになりたい
  • 3年後にチームのエンジニアをまとめる役割につきたい
  • 1年後に機械学習を使った仕事をしていたい

などと言ったことが考えられる。

次にメンティーの現在位置とのギャップを考える。例えば「1年後に機械学習を使った仕事をしていたい」を例にギャップを考えてみると

  • 自身の機械学習の知識を発揮するための最低限のアプリケーション構築能力がない
  • 課題を解決するための一つの手段に機械学習を使えることを上司にうまくアピール出来ていない
  • 機械学習の基礎知識はあるが、今担当しているサービスに適応できそうな応用技術の学習が進んでいない

などといったことが考えられるかもしれない。

最後に目標を決める。目標は、現在位置からゴールに向かうための1ステップと考える。そうすると、先程のギャップからピックアップして、それを目標にしたら良い。例えば先程の例で、今年は「自身の機械学習の知識を発揮するための最低限のアプリケーション構築能力がない」「課題を解決するための一つの手段に機械学習を使えることを上司にうまくアピール出来ていない」をなんとかしたいと思ったら

  • 1つの機能を上から下まで(裏側よりからフロントエンドまで)自分一人で作れるようにする
  • 機械学習というエンジニアリング分野を、それを知らない人にも分かるよう説明できる能力を付ける

などといったことが考えられる。

「ゴールを決め、現在位置とのギャップを考え、目標を決める」のイメージは以下の通り。

f:id:shiba_yu36:20161023134206j:plain


このように、「ゴールを決め、現在位置とのギャップを考え、目標を決める」としていくことで、目標は何のためのものかを意識しながら立てることができる。目標がなんのためかはっきりしていれば、それを達成しようというモチベーションも保てる。これにより、実現可能であり、納得できて、ゴールに向かって効率的である良い目標を立てることができると考えている。

この内容は 目標設定の仕方を学ぶ - 「ザ・コーチ」読んだ - $shibayu36->blog; にも詳しく書いているので、こちらも参考に。

解決案を与えるのではなく質問する

もう一つ1on1に役に立ったと思うことは、「解決案を与えるのではなく質問する」というコーチングの考え方だ。1on1でメンティーから相談を受けた時などに効果的に利用できる。

どういうことかというと、メンティーから相談された時に、自分の経験からすぐに答えを教えてあげるのではなく、その相談について質問をしていき、メンティー自身に解決案を思いついてもらうという方法を取ったほうが良いということだ。

例えば、チームでコミュニケーションがうまくいっていないと相談されたとする。この時、こうやってコミュニケーションしたら良いよとすぐに教えるのではなく、質問をして掘り下げていく。質問としては以下のようなものがありうるだろう。

  • コミュニケーションがうまくいっていないことで、どういう問題が起きているのか
  • 何が原因で、コミュニケーションがうまくいっていないと感じるか
  • 自分の思う理想的なチームコミュニケーションの状態はどういうものか
  • 現在でもうまくいっているコミュニケーションはあるか
  • 理想的なチームコミュニケーションにするためにどうしたら良いか

このような質問を繰り返していくと、メンティーの頭の中が整理されていって、メンティー自身が「こうしたらいいんですね」と気づいてくれるということが多い。


個人的にこのやり方は非常に効果的であったと感じる。なぜなら

  • 1. メンティー自身が自分よりその問題について詳しく、精度の高い解決策を思いつくため
  • 2. 自分の専門外のことでも解決案を得られるため
  • 3. 自分で気づくと実行するモチベーションが上がるため

まず1つ目について。1on1をしていると、自分の昔の状況と、メンティーの今の状況は違うことが多い。そのため、自分でアドバイスしても、それが効果的でないこともある。それよりメンティーに今の状況を鑑みて、自分で解決案を思いついてもらったほうが今の課題に対する解決案の精度が高い。

2つ目について。アドバイスをするということは、自分がそのことについて知っていなければいけない。しかし、知識の幅は膨大であり、全ての相談について自分が知識を持っているとは限らない。特にエンジニアにとって、裏側よりのエンジニアがフロントエンドのことを聞かれても答えられないということが多い。しかし、その場合でも、質問してメンティーに考えてもらうことで、解決案を得られることがある。

3つ目について。誰かに指摘されても、特に実行するモチベーションが湧かないということはよくあると思う。これは指摘されたことが自分の中で納得できていない時によく起こる。しかし、自分で解決案を思いついたときは、その段階で自分は納得できている。そのため、その解決案を実行するモチベーションを持てるようになる。

以上3点において、1on1では「解決案を与えるのではなく質問する」ということが効果的であると思った。

まとめ

今回はこれまでのコーチングの学習と、半年間の目標設定・1on1・評価の経験から、自分自身が特に役に立った二つのことについてまとめてみた。メンターを始める時に、まず手始めにコーチングを勉強したことは非常に良かったと感じる。

まだまだ自分自身がシニアエンジニアとしては未熟なところが多い。これからもどんどん学習していきたいと思う。エンジニアリングとマネジメント両方の勉強をしようとすると時間が足りないという課題を最近感じるけど、まあこれは頑張っていくしかないと思っている。

他にコーチングの話は過去のブログにも書いたので、こちらも参考に。