yigarashiのブログ

学んだことや考えていることを書きます

毎日メンティーと一緒にコードを読むと良いことがたくさんある

最近、毎朝30分メンティーと一緒にコードを読む活動を始めました。早朝に集まって稽古をつける感じが道場っぽいと思って「コードリーディング道場」と名付けました。

やり方

  • 会話して画面共有できる環境に集まる
  • メンティーに調査したい内容を決めてもらう
    • サービスの機能の軸でも技術の軸でもなんでも良い
    • 「いまの仕事で触ることになりそうだから」といった感じで選んでも良い
    • とにかく内発的な動機が強いほど良いと思う
  • メンティーに画面を共有して調査してもらう
    • ここが1番のポイント
    • メンターは指示に徹してメンティーに調査の仕方を体で覚えてもらう
    • 1日の枠では終わらないことの方が多いので何日か続けて調べる
  • 以上をメンティーがもういいと思うまで繰り返す

良いポイント1: 業務知識を高速にインストールできる

機能の調査の仕方やドメイン知識、基礎技術といった業務にクリティカルな情報を、インタラクティブに伝えることができます。実際の挙動の見方や、社内ドキュメントの検索の仕方など、身につくと一気に仕事が楽になる情報が自然に伝わるのが良いです。また、単にドキュメントを読んでもらうのではなく、実際のコードを見てもらって「なんでこんなふうになっているんですか?」という疑問から出発できるので、学習効果が非常に高いです。そしてそういう切り口になっていると、文書化しきれない色々な情報がメンターの口をついて出てくることになります。「そこは本当はこうしたいんだけど、今は時間がなくてできなくて……」といった感じですね。こうした生の情報の積み重ねによってシステムが体に馴染んでいくと思うのでバカにできません。

良いポイント2: 単純接触効果を得られる

こうした活動をする場合メンティーのチーム歴は浅いことが多いでしょう。そのような状況では、毎日30分ネタの尽きない会話をできること自体にも価値があります。一緒にコードを読んでいると、「ここちょっと読んだけど全然わからなかった……」「前職ではこういう書き方してたんですよね」といった感じで、相互理解につながる発話が自然と引き出されます。リモートワークに軸足が移りつつある世の中で、こうした何気ない会話はとても貴重だと思います。この点の効果を強く狙うなら、人の組み合わせをローテーションしたり、ペアでなくモブでやったりするのも良いかもしれません。

良いポイント3: メンターの知識が整理される

これは言わずもがなですね。「ALBってなんですか?」「Webのキャッシュってどうなってるんですか?」といった、メンターの地力が試される質問が次々飛んできます。感覚ではわかっていて、仕事で使えたとしても、他人に分かるように整理して言語化できるのは全くレベルの違う話です。その場で説明できるに越したことはないですが、もしできなかったとしても、一緒にWeb上の資料や実装を眺めながら、自分の脳内にバラバラに置かれている知識をつなげて説明を試みるのはエキサイティングな活動です。この活動を始めてから自分の知識もどんどん整理されていて、メンティーはまだピンときていないのに、自分は点と点が線でつながって大満足しているといった場面が何度も見られます。もっとうまく説明できるようになりたいですね……。

なぜこの活動に至ったか

もともとは、当時のメンターである id:Sixeight さんとメンティーである自分が話して発足した活動でした。もう2年も前のことです。当時の僕は、もっと自在にパフォーマンスを発揮したいのになかなか軌道に乗れず困っていました。それを相談したところ、毎日一緒にコードを読んでみることになったのでした。その効果は著しく、3ヶ月ほどでなんでも自分で調べられる自信がつき、仕事の成果もうなぎ登りとなりました。成長曲線の立ち上がりを一気に早めることができとても感謝しています。

そして時が過ぎ、今度は自分がメンティーを持つことになりました。1on1で会話していると、当時の自分と全く同じ課題を相談されました。ペアコードリーディングが効果てきめんという思い出がすぐに蘇ったので、今度は僕がメンター側になってコードリーディング道場を始めることにしました。受け取ったバトンをしっかり次につなげられているような思いがして、充実感を持って取り組めています。

ただ、そうしてコードリーディング道場によって成長を加速させている一方で、新しく入った人に課題が共通していることが気になってきます。プロダクトの認知負荷や、オンボーディングのコンテンツに改善の余地があるのかもしれません。流行りのチームトポロジー本を読んだりして視野を広げようとしています。コードリーディング道場は効果の高い施策ではあるものの、やはり毎日30分ガッツリ頭を使って会話するのはコストが高いです。そこまでせずともスムーズに成果を発揮できるならそれに越したことはないと思います。現状を生き抜きつつ根本的な改善も進めたいですね。