コドモン Product Team Blog

株式会社コドモンの開発チームで運営しているブログです。エンジニアやPdMメンバーが、プロダクトや技術やチームについて発信します!

輪読会でチームの共通言語を作ったら開発しやすくなりました

こちらの記事は「コドモン Advent Calendar 2023」の 5日目の記事です🎅

こんにちは、業務改善エンジニアの本田です。

業務改善エンジニアは、プロダクトの開発ではなく、コドモンの社員が利用する社内システムの開発に携わっています。最近はシステムの刷新を進めており、社員の業務をさらに効率よく進められるよう、日々改善を行っています!

今回は、私たちのチームがシステムの刷新に着手する前に、技術書の輪読会を実施することで、開発をスムーズに行うための共通言語を作り上げたことについてお伝えします。

輪読会を始めた目的

昨年、現行の社内システムを新しいシステムへ作り替えようという話が持ち上がりました。 私たちのチームは、既存システム改修は問題なく行えていましたが、新しいシステムを一から作り上げるとなると求められるスキルが変わってきます。

経験してきたプロジェクトや持っているスキルセットが異なるメンバーが、無策で一からシステムを作り上げるのは難しいと思ったので、開発の際にみんなのよりどころとなるような知識・共通言語を輪読会を通して作っていきたいというのが目的でした。 私たちの場合は、ドメイン駆動設計を開発の際のよりどころとしていけるように、輪読会で学んでいくことにしました。

輪読会のやり方

本の選定

チームメンバー全員で、テーマに沿った本を出し合い、その中から決めていきました。

1冊目は、ドメイン駆動設計に馴染みのないメンバーもドメイン駆動設計の全体像を掴めるようになることを目的に、増田亨さんの「現場で役立つシステム設計の原則〜変更を楽で安全にするオブジェクト指向の実践技法」を読みました。この本は概念的な説明が多かったので、次はもっと具体例が書いてある本を読んでみたいという意見が挙がりました。そこで、2冊目は成瀬允宣さんの「ドメイン駆動設計入門 ボトムアップでわかる! ドメイン駆動設計の基本」を読むことで、コードの実装例を見ながらドメイン駆動設計に関する理解をさらに深めていきました。

Slackで輪読会で読む本を決める様子
輪読会で読む本を決める様子

開催頻度

毎週1時間、決まった曜日・時間に開催していました。

進め方

1時間を、前半と後半に分けて実施していました。

前半30分

各自本を読みます。 本を読みながら気づいたことや感想などを、ホワイトボードツールのMiroにメモしていきます。

気づきや感想を記載したホワイトボード
Miroに書き出した気づきや感想

後半30分

ファシリテーターが主導し、Miroに記載されたみんなの気づきや感想について議論していきます。 本を読んだだけでは理解できなかった部分について相談したり、みんなで図を書き出して理解を深めたりということも行っていました。

ドメイン駆動設計の文脈で使われる言葉を図を書きながら認識合わせした

輪読会を実施してみて

よかったこと

同じ知識をチーム内で共有できる

チームメンバー全員で読むことで、同じ知識を共有でき、開発時のやりとりがスムーズにできるようになりました。 これまでは同じことを考えながら話しているはずなのに、会話で使う言葉が揃わず、意思疎通に時間がかかることがありました。しかし、同じ本を読むことで言葉に対するイメージが揃い、「本に出てきたあれをイメージして話してるんだな」と考えられるようになり、話を理解しやすくなりました。

私たちの場合は、ドメイン駆動設計について共通の知識を持つことができたので、開発時の会話がスムーズに進められて、開発しやすかったです。 実装方針を相談した際に、「〜〜の本に出てきた〜〜のやり方はどう?」というような会話ができたのは、まさにメリットを感じられた瞬間でした。

実装方針の相談時に輪読会で得た知識を使って解決できた様子
実装方針の相談時に輪読会で得た知識が役立った

自分たちの業務やコードに置き換えて議論できる

「本の中に記載されているアンチパターンをあのコードで踏んじゃってるよね」など、本で紹介されている内容と自分たちのコードを照らし合わせて議論ができたのは、同じシステムを開発しているチーム内で輪読会を実施したからこそ得られるメリットだと思います。本を読みながら、現行システムのコードをどうやったらよくしていけるかを考えるきっかけにもなりました。

事前準備なしで気軽に参加できる

本を読む時間も輪読会の中に含めていたため、事前準備が不要で気軽に参加できるのもよかったです。人によって30分の中で読み進められる量が異なるので、読み進められた量が一番少ない人に合わせて議論の範囲を決めていました。

難しかったこと

チーム全員が参加できる時間を確保するのが大変

突発的な急ぎの作業が発生すると欠席者がでてしまったり、スキップになってしまうことがありました。1時間というまとまった時間を、チーム全員分確保するのは意外と難しかったです。 読書の時間を各自で確保してもらえれば、輪読会自体は議論タイムの30分間で実施できるので、時間の確保が難しいメンバーがいる場合は工夫も必要だなと感じました。

おわりに

チーム内輪読会を行うことで全員が同じ知識を習得し、共通言語で会話できるようになりました。 共通言語がなかったときと比べると、格段に開発しやすくなったので輪読会を実施してよかったです。

みなさんも知識や認識に差があってコミュニケーションがうまくいかないときは、是非チームでの輪読会を開催してみてください。 メンバー間で知識差のある分野の本で実施すると、知識の平準化ができておすすめです。