Konifar's ZATSU

私はのび太の味方じゃないわ、悪の敵よ

社内に詳しい人がいない領域のコードを触る時

自分も含めて社内に詳しい人がいない領域のコードをいじることってあるよね。特に歴史の長いサービスだと当時触っていた人が誰もいないとか。仮にいたとしても1年くらい触ってないとほとんど忘れてしまって知らないのと同じような状態になっていたりする。

自分もそういうことが何度もあって、雑にスタンスややってることをまとめておこうと思う。

前提のスタンス

  • 「これを倒したら俺がこの領域で一番詳しい最強になるんや」という気持ちを持ってる
  • 詳しい人がいない状態で属人化とか気にしても仕方ない。まずは自分が詳しくなってから考えるでよい

自分用メモを作る

  • キャッチアップしたことを書き残していく。ドキュメントじゃなくてSlackに垂れ流すでもいい

過去のドキュメント・やりとりを探す

  • 全体像を把握できるドキュメントがないかを探すのを最初にやってる
    • ここは近道はない。とにかく全部集めて全部読む気持ちで臨む
  • Google Drive、ドキュメントサービスを漁りながら、登場人物やキーワードを見つけていく
    • 社内でちょっと知ってそうな人、外部の問い合わせ先などの情報もここで集める
  • Slack を検索するのもめちゃくちゃやる
    • ドキュメントのURLやキーワードで検索する
    • 登場人物で from: @hogehoge のように検索することもある
  • 世に公開されている参考記事やスライドも読み漁る

GitHub のコードを読む

  • キーワードで検索して PR、Issue、コードをとにかく読んでいく
  • 関連するリポジトリをすべてcloneしておくと検索しやすくてよい
  • ドキュメントはあくまで全体像を素早く確認するもので、細かいところはコードを読むしかないしその方が早い
  • コードコメントが少ない場合は、理解したことをコメントに書いてcommitしていくこともある

READMEを書く

  • ここまでくるとだいたい自分が一番詳しくなったという自負が持てるくらいになってる
    • 規模にもよるけれど、これだけに集中できるなら1週間以内を目処としている
    • 実際にちゃんと理解できるにはもっとかかることが多いんだけれど、とりあえずの区切りみたいな感じ
  • 過去の自分が欲しかった内容を GitHub の README やドキュメントにまとめる
    • 自分の理解も深まり、ここで実は認識が間違っていたと気づけることも多い

ざっと書き出すとこんなところだろうか。

もちろん組織的な課題として解決すべきこともあるんだけれど、自分の場合はこういうところを触るときはちょっと美味しいと感じるというかワクワクする。

他の人のやり方も聞いてみたい。