エンジニアチームの成長を目指した、輪読会の取り組み ~どんな形式で、どんな書籍を読んできたか?~
このエントリーは Akatsuki Games Advent Calendar 2023 の18日目の記事です。
昨日は、ろうでんさんの【Unity】PLATEAUの都市モデルとGPSログの軌跡を重ねてみるでした。ドライブという趣味と、業務で使っているUnityの技術が合わさって、アドベントカレンダー!という感じの素敵な記事でした!!
明日はNaoyaKohdaさん記事です。お楽しみに!
1. はじめに
こんにちは。株式会社アカツキゲームス クライアントエンジニアの軍曹です。私は現在、クライアントエンジニア20名程度のチームリードエンジニアとして、チームの成長に責任を持っています。
この記事では、成長のための取り組みとして、
私たちのチームが行っている「輪読会」をご紹介します!
本記事に対してご意見があれば @manpukuncarbon までご連絡ください!
2. どんな形式か?
私たちのチームの輪読会は、以下の形式で行っています。
- 書籍選定 (大体6ヶ月に1回)
- 輪読会 (1回あたり30分・週に2回)
- 振り返り (大体6ヶ月に1回)
- 1に戻る
書籍選定
書籍選定は、エンジニアチーム全員で集まって行います。今のチームに必要だと思う書籍・皆で読みたい書籍を、各々が持ち寄って意見を出し合います。個人的には、メンバー皆さんのおすすめの書籍を紹介していただけるので、この時間が大好きです(実際、選定されなかった何冊かの本は読んで、これ選んでもよかったなあと思うなどしています)。20名もメンバーがいると議論が発散しそうですが、なんだかんだ毎回「これがいいかな?」と収束していって、書籍を選定できています。誰かに決められた本を読むより、自分たちで選んだ本を読む方が、内発的に動機づけされてより成長に繋がると信じているので、この意思決定プロセスは大変好ましく思います。
輪読会
一度書籍選定が終わると、半年ほどかけてその書籍を読んでいきます。1回あたり30分ほどの輪読会を、週に2回行っています。基本的には参加推奨ですが、業務が忙しかったり、お休みだったりの場合は自由に休んで良いこととしています。各々の自由と規律を前提としたルールになっています。
1回あたりの輪読会は、以下の形式で進みます。
- 読書タイム (10min)
- 学びの共有・議論タイム (15min)
- 次回の内容決め (3min)
読書タイムは黙読です。学びの共有・議論タイムは、Miroで付箋を貼って議論を進めています。輪読会の運用は特定のチームメンバーにお任せしており、リードである私が特に行うことはありません。
Miroを使った、学びの共有・議論の様子
振り返り
書籍を読み終わる・ないし輪読会終了となったタイミングで、振り返りを行います。形式はKPT(Keep/Problem/Tryを挙げていくフレームワーク)を使っています。この振り返りを通じて、この書籍を通じての学びは何か?今のチームに適用するなら何ができるか?を考えます。また、輪読会の形式自体に対してもKPTを考え、より良い輪読会になるように改善を重ねます。振り返りが終わると、また書籍選定をします。こうして、私たちのチームでは輪読会のサイクルを繰り返しています。
3. どんな書籍を読んできたか?
私たちのチームが読んできた書籍をご紹介します。
第1回. 『「分かりやすい表現」の技術』
マニュアルはなぜ分かりにくいのか?
右か左か迷わせる交通標識。庶民には理解不能な法律条文。
初心者にはチンプンカンプンのマニュアル。
何が言いたいのか分からない上司の話……。
世の中にあふれる「分かりにくい表現」の犯人をつきとめ、すっと分かってもらえる「情報発信のルール」を考える!
なぜこの書籍を選んだか
私たちのチームではPull Requestのレビューなどで、「わかりやすいコード」「わかりやすいドキュメント」という言葉が使われていました。しかし「わかりやすい」という言葉は往々にして主観的になりがちで、意見が割れることも少なくありませんでした。そこで、意見の割れやすい「分かりやすさ」について、客観的基準で認識を揃えようと、エンジニアチーム全員で本書籍を選定しました。
振り返り
エンジニアチーム輪読会の1冊目の書籍としてはちょうど良い書籍でした。個人的には、コーディングやソフトウェアエンジニアリング関連の書籍でない本を選んだことで、全員にとって読みやすく、議論が適度に盛り上がるが白熱しすぎないという良い塩梅になったのではないかと感じました。
実際、本を一通り読み終わった後、全員で振り返りを行った中でも、「わかりやすいコードに通ずるものがあった」「自分のわかりやすさの指針がアップデートされた」など、狙った効果が得られたことを確認しました。
また、「個人で活字を読むのは辛いが、業務でみんなと読む形式だと楽に読めた」「メンバーの価値観を知る交流の場としてよかった」など、輪読会という取り組み自体に良い効果があることがわかりました。
第2回. 『Team Geek』
複数のプログラマが関わる場合、優れたコードを書くだけではプロジェクトは成功しません。
全員が最終目標に向かって協力することが重要であり、チームの協力関係はプロジェクト成功のカギとなります。
本書は、Subversionをはじめ、たくさんのフリーソフトウェア開発に関わり、その後Googleでプログラマを経てリーダーを務めるようになった著者が、「エンジニアが他人とうまくやる」コツを紹介。
「チームを作る三本柱」や「チーム文化のつくり方」から「有害な人への対処法」まで、エンジニアに求められる社会性について楽しい逸話とともに解説します。
なぜこの書籍を選んだか
私たちのチーム・ひいてはアカツキゲームスの組織では「HRT(謙虚・尊敬・信頼)」を大切にしています。HRTの原典とも呼べるこの書籍をみんなで読もう!ということで、2冊目は本書籍を選定しました。
振り返り
組織の大切にしている価値観・HRTの原典を、チームメンバー全員で読み、言葉の認識を合わせることができたことがよかったです。チームにJOINしてすぐの方にも良い効果があったようで「JOINしてすぐにチームの価値観を知ることができてよかった」「本の内容だけでなく、メンバーが議論を行う中でメンバーの価値観やキャラクターを知ることができた」と意見をもらいました。文化面の成長につながる良い本だったと思います。
第3回. 『プリンシプルオブプログラミング』
KISS、ドッグフーディング、ブルックスの法則……
古今東西の達人たちの知恵を厳選してこの一冊に凝縮!
質の高い(バグが少なく、メンテナンス性が高い)プログラミングをするための、一生使える原理原則を、「なぜそうなるのか」「どうやって使えばいいのか」やさしく解説。脱・初心者を目指す入社3年目までのプログラマーのステップアップに最適のガイドブックです。
なぜこの書籍を選んだか
2回の輪読会を経て、技術的な面も成長したいという意見が出てきました。そこで、技術的な「プリンシプル」が多く書かれており、プリンシプルごとの説明が簡潔にまとまっていて読みやすそうな本書籍を選定しました。
振り返り
この本も狙い通り、技術的知見をチームで学習する良い機会になりました。特に、議論のきっかけになるような働きがあったと思っており、「この原則はこういう場面では役に立った」「今日読んだ内容を今のチームで適用するのは難しいと思う」など、議論が多く起こりました。こうした議論を通じて、チームの技術面での価値観がすりあい、レベルアップしていったのではないかなと思っています。
第4回. 『リファクタリング』
ソフトウェア開発の名著、第2版登場!
リファクタリングは、ソフトウェアの外部的な振る舞いを保ったままで、内部の構造を改善する作業を指します。本書はリファクタリングのガイドブックであり、リファクタリングとは何か、なぜリファクタリングをすべきか、どこを改善すべきか、実際の事例で構成され、ソフトウェア開発者にとって非常に役立つものとなっています。
本第2版では、約20年前のオリジナル原稿の構成は変わらないものの、大幅に書き換えられているほか、サンプルコードがJavaからJava Scriptになるなど、現代的にアレンジされています。
なぜこの書籍を選んだか
私たちのチームで、リファクタリングを行っていこう!という動きが活発になったためです。以前より、リファクタリングは行われていたのですが、リファクタリングによってバグが発生したり、チーム内でリファクタリングに関する共通見解がない(と思われる)状態になっていました。そこで、改めて原著を読んでみようと本書籍を選定しました。今までの輪読会の取り組みの経験から、これだけ厚い書籍に挑戦しようと思えるだけの自信をチームが獲得していたのも一つの要因だと思います。
振り返り
現在、本書の輪読会を進めています。分厚い本のため、全部を読み切ることは目標とせず、全員で認識を揃えたい4章までを一緒に読もうと考えています。第2章で、リファクタリングの定義が明確にされていることが非常に良いなと個人的には感じます。また、チームメンバーも『リファクタリング』の本を読んでいるということが技術的な自信につながったのか、開発の中でのリファクタリングがやりやすくなっていそうです。
4. おわりに
本記事では、チームの成長のための輪読会の取り組みを紹介しました。形式面では、私たちのチームが「書籍選定→輪読会→振り返り→書籍選定→...」というサイクルを回していることを紹介しました。また、これまで読んできた4冊の本も、その選定経緯と振り返りを交えてご紹介しました。
手前味噌ながら、自律的で素敵なチームだと思っています。これからもこんな素敵なチームがもっと成長を続けるチームであれるよう、チームメンバーと共に、今何が必要かを考えていければと思っています。
おまけ
最後に、アカツキゲームスでは一緒に働く仲間を募集しています。
カジュアル面談もやっていますので、気軽にご応募ください。
Discussion