やわらかテック

興味のあること。業務を通して得られた発見。個人的に試してみたことをアウトプットしています🍵

【エンジニア教育の壁】ティーチングとコーチングの違いを教えてもらった

どこまで教えてあげれば良いのか問題

教育というのは非常に難しく、私が担当したエンジニア教育についても全く同じことが言えます。
その一例として「どこまで教えてあげれば良いのか分からない」という問題があります。自分の中では答えがあるものの、相手が分かっていない時に、「ここはこうすると....」とか「そうするとこういう問題が起きてくるから...こうしないと」というアドバイスをすることで相手の成長、やる気を奪ってしまう可能性があります。

とはいえ、答えが出てくるのをいつまでも待っている訳にはいかないので、ある程度、先導してあげねば無駄な時間を過ごすことになってしまいます。

この境界線は非常に難しく悩みの種だったのですが、外部メンターの方に非常に参考になる話を頂いたので記事にしました。

ティーチングとコーチング

人が何か分からない状況には2種類あり、それぞれ教育者は振る舞いを変える必要があります。
その2つの振る舞いがタイトルにもなっている「ティーチング」と「コーチング」です。つまりティーチングが必要な時にコーチングをしても効果は薄く、その逆も同じです。

順に紹介していきます。

ティーチング

何も分かっていない時、すなわち教育者が何か指示をしても何もできない場合に必要になるのがティーチングです。
ティーチングとは何が分かっていないのかを一緒に考える、もしくは指摘してあげるような動きです。エンジニア教育の視点でティーチングが必要になるのは以下のような状況です。

  • どういう仕様なのか分かっていない
  • 何をすれば良いのか分かっていない
  • ifforの書き方(文法)が分かっていない

このような状況では「こうした方が良い」というアドバイスの効果は薄く、相手が分かっていないことを認識してもらう必要があります。
先程の例を使って考えてみると、ifforの書き方が分かっていないのであれば「言語のドキュメントを見てみよう」というような指導が必要でしょう。また「ドキュメントのどこを見て!」と細かく指示をするのではなく、都度リアクションを見ながら、相手に何をすれば良いかと尋ねる形で誘導させるのが効果的です。

コーチング

ティーチングとは異なり何が問題で何をすれば良いのかは分かっているけど、どういうアクションをとれば良いのかが分からないという状況に必要となるのがコーチングです。コーチングが必要になるのは以下のような状況です。

  • 経験による判断が必要な時
  • よりベターな選択をしないといけない時
  • 配列を使えば良いのか連想配列を使えば良いのか分からない

先程のティーチングとは異なり「こうした方が良い」という意見が必要になります。
どのタイミングで指導するのかは難しい問題ですが、仮に2つの解法が存在するような問題の場合にはそれぞれの解法のメリットとデメリットが理解出来ている状態が教え所かなと思います。

AとBというやり方が考えられるのですが、Aでやると速度は出ますが、可読性が悪くなってしまいます。
BでやるとAに比べると速度は出ませんが、保守しやすく可読性は良くなると思います。
(...どっちが良いでしょうか?)

「どっちが良いでしょうか?」や「どれが良いでしょうか?」という言葉が出てくる、付け足せる状況はコーティングの目安です。

最後に

相手が置かれている状況において適切な振る舞いは変わってきます。
答えを教えるのが悪なのではなく、どのタイミングで教えるのかが非常に重要です。すでにお分かりの方もいるでしょうが、順序としてはティーチング -> コーチングとなります。

この2つの振る舞いを上手く使っていきたいです。