こんにちは、虎の穴ラボの山田です。
この記事は虎の穴ラボ2024 夏の連載企画24日目の記事になります。
前回はy.fさんによる「「関数型デザイン」を読んで、設計と実装の幅を広げよう!」が投稿されています。
こちらもぜひご覧ください。
はじめに
先日、「開発生産性」に関するイベントが開催されました。興味はあったのですが、予定があったためその際は参加を見送りました。 その後、書店のWebサイトで「開発生産性」のタイトルが目につき、思わず手を伸ばしたのがこちらの本になります。読んでみると有用な内容で、とても参考になりました。 今回はこちらの本の書評記事となります。
内容
感想の前に、本の内容を簡単に紹介します。
第1章 開発生産性とは何か
第1章ではまず「プロダクトのゴールとは何か?」が問われ、
開発生産性向上とはこの「プロダクトのゴール」のために取り組むべきことであり、
そのため「開発生産性」という言葉が指す範囲はとても広く、また組織によっても異なるということが語られます。
次に組織、チーム、個人での「開発生産性」向上のための指標の作成方法が、3つのレベルごとに具体的な例とともに語られ、生産性の可視化の重要性についても語られます。
(指標については、第4章でより多く具体的に説明されています。)
またここでは、DevOpsについてPuppet社の「State of DevOps Report」やGoogle社の「DORA(DevOps Research and Assessment)」についても説明があります。
第2章 開発生産性向上のためのステップを知る
第2章では開発生産性を向上させるための手順をいくつかのステップに分け、まずは指標の可視化、そこから課題と原因を見つけ出し、改善策を考え、改善に進めていく手順が説明されます。 その際、可視化のために有効なツールとしてFour Keys(DORAメトリクス)やSPACEフレームワークについても説明があります。 またここでは、メンバーのモチベーションの大切さなどについても語られています。
第3章 生産性向上の取り組みを阻害する要因とその対策
第3章では、開発生産性を向上させる過程で生じる、様々な問題がテーマです。 問題については「エンジニア個人に関するもの」「エンジニアチームに関するもの」「組織全体に関するもの」の3つにカテゴリを分け、各種要因と対策が説明されています。 阻害要因については一覧を引用して挙げておきます。
- 開発生産性向上の対象と目的の明確化ができていない
- 目標設定ができていない
- 開発生産性向上の必要性を十分に理解できていない
- 技術の進歩に伴う技術的知識、スキルの陳腐化
- 適切な技術選定とその活用ができていない
- 十分なセキュリティ対策ができていない
- テスト自動化や継続的インテグレーションが導入されていない
- 個人のタスク管理と優先順位付けができていない
- 品質の重要性が認識されていない
- ナレッジ共有とドキュメンテーションが不足している
- 技術的負債の管理と優先順位付けができていない
- 自動化が推進されていない
- 開発環境が十分に整備されていない
- インフラ環境が最適化されていない
- 品質管理が十分にできていない
- チームのモチベーションが低い
- チームのコミュニケーションと相互支援が不足している
- スキルと経験のマネジメントが適切になされていない
- 開発生産性向上に対するチームの意識が低い
- 外部との連携が不足している
- 部門間の連携が十分でない
- 長期的なビジョンが不足している
- 開発生産性の測定・評価の仕組みが十分ではない
- 組織的な取り組み、取り組むための体制が不十分である
- 他職種・役割への理解と尊重が足りない
- 開発生産性に対する経営層の理解が不足している
第4章 パフォーマンスを測るための指標
第4章は、実際に開発生産性の向上を測るための指標について説明されています。 それぞれの指標の説明、導入方法や導入後の改善方法、注意点など詳細に説明されており、具体的です。 第2章で説明のあったFour Keysの指標に始まり、著者のおすすめの指標と説明が続きます。
指標の一部を引用すると、以下のようなものがあります。
- デプロイ頻度
- 変更のリードタイム
- 変更失敗率
- 平均修復時間
- プルリクエスト作成数
- 自動テストのコードカバレッジ
- マージ時間
等
第5章以降
- 第5章 事例から学ぶ開発生産性向上の取り組み①
- 第6章 事例から学ぶ開発生産性向上の取り組み②
- 第7章 事例から学ぶ開発生産性向上の取り組み③
- 第8章 事例から学ぶ開発生産性向上の取り組み④
- 第9章 事例から学ぶ開発生産性向上の取り組み⑤
第5章から9章は、5つの会社が開発生産性向上に取り組んだ際の事例となっています。
感想
まず、各章の感想を簡単に書いていくと、
第1章では「開発生産性」とは何かが語られ、それが組織やチーム、個人ごとに異なり、「プロダクトのゴール」のために向上させるべき指標だということが語られます。
具体的に「これこそが開発生産性」と明確に語られることもなく、少し不明確なまま指標の作成方法の説明に進むため最初はモヤモヤ感があったのですが、読み進めていくと払拭されていきました。
第2章では「開発生産性向上のためのステップを知る」というタイトルで、指標を作成した後の開発生産性向上のためのサイクルについて説明がされているのですが、
急ぎすぎないこと、やりすぎないこと、メンバーのモチベーション維持の大切さについてなども書かれており、単なる説明だけには終わっていない文章になっています。
第3章は生産性向上を実際に実施し始めた時に発生する問題について、いかにも発生しそうな問題と、その要因と対策についてが丁寧に書かれており、有用だと思いました。
第4章は、実際に開発生産性の向上を測るための指標について、一つ一つ丁寧に説明されています。
読んでいると「こういった点も指標化できるのか」といったものもあり、この章も参考にできる部分は多いです。
第5章から9章は、各社が開発生産性向上に取り組んだ際の実例です。第4章で説明された指標の実際の導入事例とも言えて、読む価値のある章だと思います。
また、書籍の内容では省きましたが、最後のAppendixはどれも有用なものでした。
全体として
「開発生産性」という言葉に興味を持たれた方には、導入、ノウハウ、経験則といった情報が一通り網羅されている有用な本だと思いました。
現実的な注意や説明が多く、指標の導入に対して考えられる問題点についても多くフォローされています。
またこの本を読むことで、「開発生産性」の向上に興味を持たれたり、考えるきっかけになる方もいるのではないかと思う本でした。
終わりに
現場での開発生産性向上を考える時、一度は目を通しておきたい良書だと思います。 もし興味を持たれましたら、一読されることをお勧めします。 私は、これからこの本の類書をあたりたいと考えています。(実は、積読が多くある状態です。)
採用情報
虎の穴ラボでは一緒に働く仲間を募集中です!
この記事を読んで、興味を持っていただけた方はぜひ弊社の採用情報をご覧ください。
toranoana-lab.co.jp