開発グループ2(通称:kobitoチーム)のチームリーダーをしている前川です。今回は、チームメンバーを中心に『ルールズ・オブ・プログラミング』という本の読書会を行いました。
『ルールズ・オブ・プログラミング』
全世界で1,000万本に迫る実売数を誇り、日本でも累計実売数100万本を突破(2023年5月時点)した大ヒットゲーム『Ghost of Tsushima(ゴースト・オブ・ツシマ)』をはじめ、『怪盗スライ・クーパー』などで著名なゲーム制作スタジオ、Sucker Punch Productions(サッカーパンチプロダクションズ)の共同創設者であるChris Zimmermanによる、プログラミングのベストプラクティス集。
きっかけは「リファラジ」
読書会を開くきっかけは、チームメンバーlacolacoが行っているPodcast「リファクタリングとともに生きるラジオ」の#19 雑談回 『ルールズ・オブ・プログラミング』を紹介したい!を聴いたことです。自分たちのチームのルールを考えるたたき台として機能するということや、そこで解説されている「ルール1 できるだけ単純であるべきだが、単純化してはいけない」の話など、とても興味深い紹介だったので、読書会を提案し実施しました。
読書会の進め方
全体的な方針
- 最初から最後まで全部読む必要はない
- 各回に1つのルールを取り上げ、担当者がざっくりとまとめて紹介し、その後ディスカッションを行う
- 参加人数に応じて開催回数を決める(最大21回だが、全てのルールを扱う必要はない)
- 最終的に12回開催しました
会の進行
各回60分で進行しました。1つのルールにフォーカスし、担当者が15〜30分でそのルールの要約を発表し(本を読んでいなくても内容が伝わる程度)、その後全員でディスカッションを行います。ポイントは、ルールを単に理解するだけでなく、実務にどう適用するかを話し合うことです。
例えば、 「一般化には3つの例が必要」 というルールでは、一般化を急ぐことでコードが複雑化するリスクを議論し、シンプルで読みやすいコードの重要性について深く考えました。
印象的だったルールと成果
読書会を通じて、いくつかのルールがチームに大きな影響を与えました。振り返り会で特に印象に残ったルールを一部抜粋して紹介します。
ルール4「一般化には3つの例が必要」
読書会で最も名前が挙がったルールの1つです。チーム全体で、過剰な一般化を避け、シンプルで用途を限定したコードを書く方針が確立され、実際のプロジェクトでもその考え方が浸透しました。
ルール8「実行されていないコードは動作しない」
デッドコードに対する意識が向上し、不要なコードを見つけ次第削除するという行動が定着しました。
ルール15「雑草は抜け」
小さなリファクタリングや不要なコードの削除に対する心理的ハードルが下がり、スムーズにコードを整理する動機が共有されました。
チームでの読書会のメリット
読書会の最大のメリットは、1人で読むよりもチーム全員で議論することで、さまざまな視点が共有されることです。この読書会を通じて得た知識が、チームのコーディングスタイルに良い影響を与え、日常の開発に活かされつつあると感じています。例えば、不要な一般化を避けるという考え方は、チームの議論のなかで頻繁に出るようになりました。
振り返り会での感想(抜粋)
メンバーの感想を一部紹介します。
- 1人で読むより、チームで読書会を行う価値が大きかったと感じる
- 議論が中心で進められた読書会だったので楽しかったし、Classiの文脈で議論できたことにも大きな価値があった
- 皆さんの議論を聞くのが非常に楽しい読書会でした。今後は経験を積んで、聞く側から議論する側になっていきたいです
今後の展望
今回の読書会では、全てのルールを取り上げたわけではありませんが、最初から全てのルールを扱う予定はなかったので、残りを取り上げる回は予定していません。むしろ、チームでこの本を読書会として取り上げることの有効性が実感できたので、今後は社内外を問わず、同様の読書会が広がってほしいと願っています。このエントリーがそのきっかけになれば嬉しいです。
まとめ
『ルールズ・オブ・プログラミング』 を題材にした読書会は、チーム全体でコーディングのベストプラクティスを共有し、実務に活かすための素晴らしい機会です。興味があれば、ぜひ他のチームやプロジェクトでも試してみてください。チーム全体のコーディング文化の向上に役立つこと間違いなしです!