エンジニアのコーチング by Kent Beck

以下は、Kent Beckによる「Coaching Engineers」の翻訳です。本人の許可を得て掲載します。

tl;dr 有償でエンジニアのコーチをします。詳細と待ち時間についてはお問い合わせください。

物語の結末

2018年2月にFacebookを退職する直前に、トップ1%のエンジニア(現在および過去にレベルE7以上だったエンジニア)のオフサイトミーティングに参加しました。海辺のリゾートでバスを降りると、私がコーチをしていた生徒が複数いることに気づきました。そのうち何人かは昇進したことを知っていましたが、その他の生徒には驚かされました。

私にとって、胸がはちきれるほどの誇り高き瞬間でした。私は、生徒たちと関係を築き、彼らの成功のために心の底から尽力してきました。多くの生徒らが成功を収めたことを目の当たりにして、私は大いに驚き、嬉しくなりました。物語はさらに続きます。

Facebookの上位レベルのエンジニアのほとんどは、最初からそのレベルで雇用されています。社内で昇進したのは、参加者のうちわずか40人です。うち6人が私の生徒でした。彼らは5年間で4〜5回昇進していました。

彼らの成功にとって、私の貢献は一部だったかもしれません。彼らは才能があり、勤勉で、幸運でした。それでも、私は誇りに思っています。

私の物語

私が新人の23歳のエンジニアだったとき、Ward Cunningham(彼の功績のなかではWikiが最も有名)と仕事をする幸運に恵まれました。Wardは、Smalltalkを教えるコースを作っていました。それは、用意された配管シミュレーションを生徒が拡張するというものであり、彼は誰かを相手にその説明をする練習をしたいと考えていました。その後の彼との1年半が、私のキャリアを大きく変えたのです。

最初は、Wardがプログラミングして、私はそれを見ていました。数日後、彼が気づく前に、私はタイポを発見しました。数週間後、私は名前付けと設計の矛盾点を見つけました。それがシンプルにするきっかけとなりました。

プロセスが進むにつれて、私たちはキーボードとマウスを交換していることに気づきました。ゾーンに入っているときは、ひとりがキーボードを操作して、もうひとりがマウスを操作していました。最終的なコードには一貫性があり、どちらがどの部分を書いたのかわからないほどでした。どのように書くべきか意見が分かれるたびに私たちは手を止めて、問題について議論していました。

継続的な関係性、具体的な作業、抽象的な議論、これらの組み合わせにより、私の学習は加速していきました。自分がどれだけ知っているか、どれだけ学ばなければいけないかを正確に把握できました。プロがどのように問題に取り組んでいるかを間近で見ることができました。また、自分の能力と可能性に自信が持てました。

Wardは、彼が若いエンジニアだったときに、どのような指導を受けたのかという話をしてくれました。先輩エンジニアは無愛想でせっかちな人ばかりだったそうですが、仕事に熱心な可能性のある若手には喜んで目をかけてくれたそうです。

http://wiki.c2.com/?WardAndKent

次は私の番

ヤギの飼養期間は、私はほとんどリモートでコーチングしていました。週に1回、生徒と2時間のビデオ/スクリーン共有セッションを行うのです。Facebookに就職したとき、何か貢献できる方法がないかと探していました。友人のPeter Domovが「コーチングを試してみてはどうか」と提案してくれました。そして、コーチングプログラム「g2G」を開始しました。これまで数百人を超えるFacebookのエンジニアが参加しています。

最初は素朴に技術スキルを教えようと思っていました。リファクタリング、パターン、テストについて話したいと考えていました。ですが、技術スキルならば、生徒たちは独学で習得できるのです。独学で学ぶのが難しいのは、個人的なスキルと対人的なスキルです。たとえば、コミュニケーション、共感、自信、注意などです。自己認識を新たにすることで、彼らの技術スキルは実を結ぶことができるのです。

このプログラムはFacebookの通常の仕組みと相容れなかったため、私たちはその効果を実証することに苦労しました。ですが、数年後に「コーチングを受けた生徒は、コーチングを受けていない同等のエンジニアと比べて、その翌年に昇進する可能性が2倍高い」ことが判明しました。退職するまでに、私は150人以上のエンジニアをコーチしました。このプログラムの生徒は数百人を超えています。

私からの提案

退職後の活動のポートフォリオの一環として、私はコーチングを提供することにしました。理想的な対象者は、大きな可能性を秘めており、進歩がないことに不満を抱いており、阻害要因を掘り下げる時間のないマネージャーの下で働いており、何とか改善したいと思っている人たちです。私は上記に該当する1年目から20年目のエンジニアにコーチングすることに成功しています。

コーチングの内容は、約1か月で1時間のセッションが10回と、その後の月ごとのフォローアップが全5回となります。また、10回のセッションの前後に、生徒とマネージャーと話し合いを実施します。

各セッションは、ペアプログラミングと会話を組み合わせたものになります。生徒は、自分の仕事の経験について話し、私の話を聞いて、次のセッションの宿題を受け取ります。最初のセッションは常に対面で行いますが、その後のセッションについては対面またはリモートとなります(私はサンフランシスコを拠点にしています)。

--

--

角 征典 (@kdmsnr)
ワイクル株式会社:ブログ

ワイクル株式会社 代表取締役 / 東京工業大学 特任講師 / 翻訳『リーダブルコード』『Running Lean』『Team Geek』『エクストリームプログラミング』他多数