アジャイル
masuyama13.icon
アジャイル開発で大事なのは、お客さんにとっての価値・満足を最優先して、動くソフトウェアを早く継続的に届けることだ。
現実から目を背けず、顧客に誠実に向き合い、顧客を巻き込んでプロジェクトを進める。
アジャイルチームのメンバーは、肩書きや役割分担にとらわれず、チームの役に立つことなら何でもやる。工程ごとに担当を分けたりせず、チーム一丸となって責任を果たす。
自己組織的なチームにするために、アジャイルプロジェクトを始める前にゴールやビジョンについてチームでよく話し合ったほうがよい。インセプションデッキは、プロジェクトについての考え方を共有するのに役立つ。 プロジェクト開始前の見積もりは、当てずっぽうに過ぎない。顧客にも説明し、理解してもらう必要がある。計画と現実が離れていったときは、計画のほうを変更する。タスクの大きさは、相対的な「ポイント」で見積もる。
「要件」を信用せず、プロジェクト後期に変更があっても歓迎する。ただし、期日や費用が変わらない限りにおいて、やることをひとつ増やしたら、ひとつ削除する。
プロジェクトが実際に始まってしばらくしたら、チームのベロシティ(1イテレーションでこなせる仕事量)がわかるので、バーンダウンチャートなどを用いてプロジェクト完了の見通しが立てられる。
アジャイル開発では、ユニットテスト、リファクタリング、テスト駆動開発、継続的インテグレーションが欠かせない。技術的負債を減らし、シンプルで変更しやすいコードをいつでもリリース可能な状態にしておく。 アジャイルは、ソフトウェア開発の進め方のひとつであり、チームの力を最大限引き出すことでプロジェクトを成功に導く有用な手法である。ただし、実際に現場で実践するときには「アジャイルになっているかどうか」は重要ではない。やり方はひとつではなく、チームやプロジェクトによって異なるものだ。
大事なことは、顧客と誠実に話し、みんなで同じ方向を向いて協力すること、そして、毎週成果として動くソフトウェアを届けること。「やり方」の部分に Must はないので、日々のミーティングなどで率直に意見を出し合って試行錯誤しながら、チームに合ったやり方を見つけることが大切。