Agile2.0時代のAgile開発が目指す方向を示唆する書籍
Agile2.0時代のAgile開発が目指す方向を示唆する書籍を2冊あげておく。
「アジャイル開発の本質とスケールアップ 変化に強い大規模開発を成功させる14のベストプラクティス」と「実践アジャイルテスト テスターとアジャイルチームのための実践ガイド」の2冊は、今後Agile開発を実践しようとする開発者にとって必須の書籍だと思う。
初期のAgile開発は、XPのように少人数のチームが小規模案件でAgilityを活かして開発するスタイルが主流だった。
それらの開発スタイルから、XPの優れたプラクティスであるテスト駆動開発、継続的インテグレーション、小規模リリースなどが発見された。
しかし、初期のAgile開発では、その事例の規模が小さいために、「アジャイル開発はスケールアップが難しい」「アーキテクチャや品質の作り込みの考慮が足りない」などの弱点を指摘され続けてきた。
Agile2.0時代のAgile開発は、初期のAgile開発の弱点であったスケールアップやテスト工程にフォーカスを当てているように思う。
「アジャイル開発の本質とスケールアップ 変化に強い大規模開発を成功させる14のベストプラクティス」では、スケールアップのための14のプラクティスが提示されている。
僕がそれらのプラクティスの中で最も重要と思うものは、アジャイルリリーストレインとスクラムオブスクラム。
この2種類のプラクティスを自分たちのプロジェクトで運用できなければ、大規模プロジェクトを制御できるわけがないと思う。
更に、大規模プロジェクトの難易度が更に高いのは、開発チームが物理的にも心理的にも分散しているからだと思う。オフショア開発の例だけでなく、同じビルでもフロアが違えば物理的には廊下だけしか離れていなくても分散している。その分、開発チームのコミュニケーションのコストは急激に上がり、それがリスクになる。
その点に関しては、単にコミュニケーション重視、人間重視と叫んでも何も解決できたわけではないと思う。
何らかの抜本的な解決方法が必要だろう。
「実践アジャイルテスト テスターとアジャイルチームのための実践ガイド」では、アジャイルテストの4象限が素晴らしい。
XPは確かにテスト駆動開発、継続的インテグレーションなどの優れたプラクティスを提唱したが、それだけでソフトウェア開発のテストをカバーするわけではない。
受入テストや負荷テストなど、テストの自動化の恩恵が受けにくい範囲のテストもある。
僕はその部分のテストは、TestLinkを有効に使えば解決できると思っている。
更に、Hudsonによる並行ビルドやVMWareによるテスト環境の仮想化という技術も必要だろうと思う。
というのも、受入テストや負荷テストは本番環境に近いテスト環境のために、テスト環境の構築コストやテストの実施工数があまりにも大きすぎるために、初期のAgile開発の技術だけでは不足しているからだ。
例えば、テスト環境をいくらでも複製して、受入テストのテスト実行やビルド作業を並行作業で高速化して初めて解決できると思っている。
すなわち、初期のアジャイル開発は開発工程では確かにAgileだが、本番リリース作業のように本番環境のリリース管理やビルド管理にはそれほど恩恵がないという弱点を持っていたのだ。
その弱点に対する解決の考え方を「実践アジャイルテスト テスターとアジャイルチームのための実践ガイド」は示唆しているように思う。
| 固定リンク
「Agile」カテゴリの記事
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- 「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の感想(2023.12.10)
- 概念モデリングや設計原則は進化しているのか(2023.10.21)
コメント