速攻でエキスパートに頼る!
私がメンタルモデルを構築するにあたっては、ジョンのアドバイスどおり、わからないことをエキスパートに聞くのがもっとも速くて合理的だった。
あるとき、自分が未経験の部分に関してのコード変更の必要性が生じた。いつもだったら、ある程度リポジトリ(プログラムの保管場所)を自分なりに読んでみて、ドキュメントを探すところだが、速攻でエキスパートに聞いてみた。
「この部分をこう変えたいんだけど、Pull Request とかない?」
Pull Request とは、自分が書いたコードを誰かがレビューして、それが承認されたらその変更分が統合される仕組みのことだが、私は回答を待っている間、全く別のタスクを進めていた。自分のマネージャのプラグナから「知らないことで時間を2時間以上使ったりブロックされた場合は、それをボックスに入れて、また後で取り出すようにしたらいいよ」と言われていたから。
つまり、一つのことで2時間以上ブロックされたなら、質問するなり相談するなりして寝かせておいて、他の仕事をやっておく方が断然生産性が高い。
今までだったら、回答を待つ間、その作業のためのコード調査などをしていたところだが、自分でやっても無駄と考え、エキスパートの助言が来るまで他の作業をやっていた。
数時間後に、エキスパートのグレナが回答をくれた。過去の似たPull Request を送ってくれただけではなく、この変更をする場合は、こういう場面に注意してというパーフェクトなアドバイスまでつけて。
もし、これを自分で試行錯誤していたらどうだっただろう? そのコードにたどり着くまで相当時間がかかるし、最初から適切な変更ができたかわからない。
「ググれ、カス」は効率が悪い
結局私は、非常に有効なアドバイスのおかげで、全く知らない部分だったが2~3時間でPull Request をつくることができた。きちんと理解しながらやっているので、この種の変更に対する「メンタルモデル」も形成された。
とくに既存システムがある場合は、あれこれ考えて調べる前に、まず「エキスパートに頼る」というのはベストプラクティスだと思う。
日本は、「ググれ、カス」という言葉があるぐらい、自分で調べてから人に聞くべきという文化だが、少なくとも私のやっているクラウドの中身をつくるような複雑なシステムの場合、どう考えても全体的効率が悪い。
仕事のパフォーマンスを上げるには、いかに「無駄なこと」をしないかに尽きる。エキスパートから情報がシェアされ、そのレベルから理解するフェーズに入れば、しっかりと肝心なことにフォーカスができる。