『アジャイルサムライ』を読んだ

アジャイル宣言の背後にある原則に沿う形で、実践的なアジャイル開発を学ぶことができる。

所感

まず、軽妙でユーモアたっぷりの語り口が読みやすかった。イラストも多く、ページ数の割にはさらっと読めた。

具体的な手法もたくさん紹介されているが、アジャイルで一番大事なことは、お客さんにとっての価値・満足を最優先し、チーム一丸となって動くソフトウェアを早く継続的に届けることだと思った。

わかったこと

アジャイルとは

アジャイルは、ソフトウェア開発の進め方のひとつであり、チームの力を最大限引き出すことでプロジェクトを成功に導く有用な手法である。ただし、実際に現場で実践するときには「アジャイルになっているかどうか」は重要ではない。

やり方はひとつではなく、チームやプロジェクトによって異なるものだ。大事なことは、顧客と誠実に話し、みんなで同じ方向を向いて協力すること。そして、毎週成果として動くソフトウェアを届けること。「やり方」の部分に Must はないので、日々のミーティングなどで率直に意見を出し合って試行錯誤しながら、チームに合ったやり方を見つけることが大切。

現実から目を背けず、顧客に誠実に向き合い、顧客を巻き込んでプロジェクトを進める。

アジャイルチーム

アジャイルチームのメンバーは、肩書きや役割分担にとらわれず、チームの役に立つことなら何でもやる。工程ごとに担当を分けたりせず、チーム一丸となって責任を果たす。

自己組織的なチームにするために、アジャイルプロジェクトを始める前にゴールやビジョンについてチームでよく話し合ったほうがよい。インセプションデッキは、プロジェクトについての考え方を共有するのに役立つ。

アジャイルな計画

プロジェクト開始前の見積もりは、当てずっぽうに過ぎない。顧客にも説明し、理解してもらう必要がある。計画と現実が離れていったときは、計画のほうを変更する。

タスクの大きさは、相対的な「ポイント」で見積もる。

「要件」を信用せず、プロジェクト後期に変更があっても歓迎する。ただし、期日や費用が変わらない限りにおいて、やることをひとつ増やしたら、ひとつ削除する。

プロジェクトが実際に始まってしばらくしたら、チームのベロシティ(1イテレーションでこなせる仕事量)がわかるので、バーンダウンチャートなどを用いてプロジェクト完了の見通しが立てられる。

アジャイルに不可欠なプラクティス

アジャイル開発では、ユニットテストリファクタリングテスト駆動開発継続的インテグレーションが欠かせない。技術的負債を減らし、シンプルで変更しやすいコードをいつでもリリース可能な状態にしておく。