More Effective Agile を読みました。CODE COMPLETE の著者であるスティーブマコネル氏が実践的なアジャイルについてまとめた良書です。
どんな本?
目次
Part1 はじめに:より効果的なアジャイル
Part2 より効果的なチーム
Part3 より効果的な作業
Part4 より効果的な組織
Part5 おわりに
概要
Part1ではアジャイルが有効である点についてまとめられています。アジャイルとシーケンシャル開発を対比させ、相違点と共通点について記述し、その優位性を明らかにしています。さらに、Cynefinフレームワークを用いて、アジャイルが活躍するプロジェクトの領域について学べます。どういうときにアジャイルが役立つのか?(多くの場合に役立つのですが)、アジャイルが役立つのはなぜなのか?という疑問が解けるPartです。
Part2〜はチーム、開発、組織でアジャイルを実践するためのプラクティス活用方法が紹介されています。それぞれのプラクティスの説明に当てはまるのですが、「アジャイルはこうあるべき」ではなく、実践するために「アジャイルをどう使うか」という観点で書かれています。それは以下の引用の一文でも感じてもらえると思います。
アジャイルに熱心な人は、このアプローチを「アジャイルとは言えない」と訴えるだろう。だがこの場合も、アジャイルであることが目的ではない。ここでの目的は、ビジネスを最も効率的に支援するために、利用できるソフトウェア開発プラクティスは利用する。ということにある。
アジャイルやスクラムを実践すると、教科書どおりにできないことが出てきます。そんなとき、現場の状況を無視して無理矢理アジャイルの型の当てはめていくことは得策でないと考えています。そのため、上記の引用は共感できます。とは言え、守破離の守ができないうちからアジャイルの型を崩すことも得策でないと考えています。自分の中で矛盾した考えがあります。
そのような、矛盾を抱えつつ、学び、チャレンジし、ベストを探し続ける姿こそがアジャイルな道だと思います。そして、本書はその道を進むために背中を押してくれたり、進む道を示してくれるのです。
本書を読んで、特に共感したり新しい発見があった個所についてピックアップしていきます。
フィードバックループをタイトにしていく
アジャイルのメリットの一つはフィードバックループが早いことだと複数の章で書かれています。良くなることを端的にまとめると以下の通りです。
- 不具合の検出が早くなり、修正コストも下がり、コード品質向上につながる
- ビジネス価値を早く提供でき、判断できる
スクラムはフィードバックの仕組みが整っていますね。1スプリントごとにレビューを実施し、フィードバックを得ます。また、同じペースでふりかえりも用意されています。スプリントレビュー、デイリースクラムもフィードバックの場です。仕組みとしてフィードバックの場が用意されているため、効果が出やすく、多くの企業で使われているんだと思います。
フィードバックと聞いて思い出すことはシステム思考です。変化を起こすためにはフィードバックを設計することが大切です。目標と現状のギャップを把握できる仕組みを整えることが変化を起こす第一歩です。
持続可能な開発の多様性
アジャイルソフトウェアの12の原則に以下の原則があります。
アジャイル・プロセスは持続可能な開発を促進します。
XPには「週40時間労働」という原則もあり、「持続可能な開発」については働く時間について言及されることが多いと思います。働き過ぎは制御すべきですが、「持続可能な開発」はペースだけなのか?開発に取り組むモチベーションも大きな要素ではないのか?と考えていました。開発している機能が「なぜ必要なのか」という「Why」の部分に納得・共感できるかどうかも影響すると思っていました。
本書の「6.1 基本原則:自律、熟達、目的によるチームの動機付け」に以下のような記述があり、「やっぱり!」と思いました。
生産性に関するほとんどの調査では、生産性を他の何よりも大きく左右するのはモティベーションであることが確認されている。
内発的モチベーションを高める要因は自律、熟達、目的、があげられていました。それぞれを簡単に紹介しましょう。
- 自律は自分の仕事を自分で管理する能力
- 熟達は学習と改善を強く願うこと
- 目的は取り組んでいる問題の重要性を理解すること
本書ではそれぞれの要因を良くする方法、阻害する方法についてまとめられていました。アジャイルというか、良いプロダクトを作り続けようとすると、個人やチームの成長は不可欠です。本書の内容をもとに仕組みや振る舞いを見直そうと思いました。
また、本書の「9.6 バーンアウトを回避する作業構造」という項目で「人によって働くペースは違う。週50時間を超える週と週30時間に抑える週を組み合わせる働き方が良い人もいる」と言及されていました。
同じように私も(働き過ぎはコントロールすべきですが)人によって働きやすいペースがあると思っていました。
予測可能性を必要とするアジャイル
プロジェクトの課題や失敗の主要な原因は要求のまずさにあったと書かれています。アジャイルプロジェクトとシーケンシャルプロジェクトの要求の違いは要求作業のタイミングです。前半に要求作業をほぼ終わらせて、後半に要求作業をしないのがシーケンシャルです。前半も後半も同じペースで要求作業をするのがアジャイルです。シーケンシャルとアジャイルの違いを表す大きな要素ですね。
さらに、予測可能性を必要とするアジャイルの進め方について説明がありました。従来のアジャイルよりも前半に要求作業の大きな山を作ってから後半も要求作業を続けるということです。
この点について、個人的に驚きがありました。アジャイルといえば従来のアジャイルのイメージしか持ってなくて、「予測可能性の必要のあるプロジェクト」もアジャイルなのだと驚いたのです。狭い範囲をアジャイルと考えていたと気づきました。
また、他の章でも「アジャイルの境界」がどこにあるのかを理解しておく必要があると書かれており、アジャイルかシーケンシャルかというゼロかイチでは、プロジェクトの中でもアジャイルが有効な場所を見定めて柔軟に考えたいと思いました。
本書を使ってふりかえる
本書は各章に推奨リーダーシップアクションと言う項目があり、自身を振り返るためのチェックリストがあります。ひとつひとつ向き合ってみようと思います。
また、28の基本原則のまとめに関しても今のチームと照らし合わせて変化を起こせる部分から変わっていこうと思います。