読んだ本 2023年9月号 3冊

コーディングについての本を1冊、組織論を1冊、コミュニケーションについての本を1冊読んだ。


ルールズ・オブ・プログラミング ―より良いコードを書くための21のルール

★★★★★
『Ghost of Tsushima』の制作者の一人による、コーディングの方針について書かれた本。読みはじめは挑発的な文章に見えるかもしれないが、全体的に楽しめながら、かつコードの具体例も交えつつ読み進めていける構成であり、内容も実用的である。

比較対象としてリーダブルコードを挙げると、リーダブルコードではかなり具体的で細かいコーディングの方針について書かれている。一方でルールズ・オブ・プログラミングではそれぞれのルールは抽象的に表現されていて、具体例を通じてルールの理解を深めていく形式になっている。
また、リーダブルコードは「よいコード」とはなにかを示そうとするが、ルールズ・オブ・プログラミングは常に自分以外にとっての読みやすさを意識している。

リーダブルコードは個別のルールを取り出してチームの約束事とするといったことがしやすいが、ルールズ・オブ・プログラミングはより柔軟に、色々な環境に適用しやすい包括的なルールの表現になっていると感じる。

例えば、上に書いたような方向性は命名規則についての記述に表れている。

ぼくらの命名規則の細部なんぞは、重要じゃない。重要なのは、ぼくらが厳格な規則を持っていて、その規則が可能な限り機械的であり、その規則についてのドキュメントが十分存在すると同時に、強制力を持つ形でその規則が運用されていることだ。そうなっていれば、誰もが同じ物に対して同じ名前を選び、他人のコードを扱うことが自分のコードを扱うのと同じように感じられるっていう、幸せな境地に至る。

ルール3 優れた名前こそ最高のドキュメントである p.56

他にもドキッとするような表現が散りばめられている。

最終的に、プロジェクトを殺すのは、複雑性だろう。

ルール1 できるだけ単純であるべきだが、単純化してはいけない p.18

ある関数が引数を8個取るという事実があれば、ある時点で9個目の引数を足す判断を行うことになるだろうと、かなり強く確信できる。

ルール7 失敗が起こる場合をなくす p.121

何があると良いコメントになるのか?一番明白な答えは、「良いコメントとは、コードについて明白じゃない何かを読者に伝えるコメントだ」、になる。

ルール18 コードに自らの物語を語らせろ p.308

本書ではC++のサンプルコードが用いられているので、C++に慣れている読者の方が読み進めやすいのは間違いないが、巻末に付録として理解に必要な言語仕様が説明されていて、やさしい。

翻訳に癖があるが、あとがきにも書かれているように、敢えてそういった文体で書かれている。一つ二つのルールを読んだ後には文体にも慣れているだろうと思う。
9/22

GitLabに学ぶ 世界最先端のリモート組織のつくりかた

★★★☆☆
本書には GitLab のバリューの一つである透明性に従い、GitLab の会社の運用について書かれた GitLab Handbook (https://about.gitlab.com/handbook) の内容や、関連する書籍の紹介などが書かれている。

GitLab Handbook に書かれている内容を説明した文章が本書の多くを占めている。GitLab Handbook はたしかに素晴らしい内容で Handbook に触れるきっかけになる点はいいと思う一方で、Handbook 以上に分かりやすく文章が整理されている訳でもない。

また、他の企業にも適用できる考え方はもちろんあるが、全体がどの企業にも適用できるルールかというとそうではなく、実効性は低いと感じた。あくまで GitLab の思想の素晴らしさを知るための書籍である。

本書は4部13章構成になっている。

1部 リモート組織のメリットを読み解く
 1. 世界最先端のリモート組織「GitLab」
 2. リモート組織によって得られるメリット
2部 世界最先端のリモート組織へ移行するためのプロセス
 3. リモート組織を構築するためのプロセス
 4. リモートワークで発生する問題と対策
3部 GitLab が実践するリモート組織を活性化させるカルチャー醸成法
 5. カルチャーはバリューによって醸成される
 6. コミュニケーションのルール
 7. リモート組織におけるオンボーディングの重要性
 8. 心理的安全性の醸成
4部 GitLab が成果を出すために実践している人事制度や業務ルール
 9. 個人のパフォーマンスを引き出す
 10. GitLab Value に基づいた人事制度
 11. マネージャーの役割とマネジメントを支援するための仕組み
 12. コンディションを実現する
 13. L&D を活用してパフォーマンスとエンゲージメントを向上させる

全体を通じて、Handbook の内容の焼き直しが多いように感じた。読者としては、現在所属している組織を前提にして GitLab の思想を比較対象にして考えるだろうし、そのために GitLab の開発体制の解説やコミュニケーションのとり方、GitLab でのエピソードなどが欲しかった。

また、本書はかなり口語体で書かれており、プレゼンテーションの原稿を読んでいるような気持ちになった。構成も平坦な文章が続くので、それが元の文章よりも整理されていない印象を受けた要因かもしれない。

途中で参考文献として挙げられている書籍には名著が多く、併せて読む価値があると感じた。
9/30

クルーシャル・カンバセーション −−重要な対話のための説得術

★★★★★
重要な結果、反対意見、強い感情を伴う対話(クルーシャル・カンバセーション)の仕方について、具体例を提示して書かれている。重要な結果をもたらす議論を避けず、対話によって好ましい結論に導くことができる人のコンピテンシーの分析のような話でもある。

会議のファシリテーションや1on1、普段の仕事の会話にも活きる考え方であり、とくに前述のような領域に意識的に取り組んでいるようん人にはおすすめできる。

副題の訳には語弊があり、相手を説得させるための手法が書かれている訳ではない。原文では "Tools for Talking When Stakes Are High" なので、「高いハードルがあるときの会話ツール」などが内容にも即している。

本書は11の章から構成される。

  1. クルーシャル・カンバセーションとは何か?

  2. クルーシャル。カンバセーションをマスターする

  3. 本音を探る

  4. 観察する

  5. 安心させる

  6. 新しいストーリーを創る

  7. プロセスを告げる

  8. 相手のプロセスを探求する

  9. 行動に移す

  10. 確かにそうだが...

  11. これまでに学んできたことをまとめる

本書には、対話の相手に敬意を払い、お互いをいい結果に導くための対話について書かれている。難しい場面に遭遇した時に、沈黙や攻撃を選択せず、自らがストレスに晒された場合のスタイルを認識して、本当に欲しい結果にどうやって辿り着いたらいいのかが対話例と共に説明されている。

CRIB, STATE, AMPP, ABC など会話のツールも紹介されていて、これらも分かりやすいが、本文の全体を通じて敬意を持って対話するための観点が書かれていて、どこをとっても参考になる。

後続の書籍である「クルーシャル・アカウンタビリティ」も読んでみたい。
9/30

この記事が気に入ったらサポートをしてみませんか?