プロセスとツール上のインディビジュアルと相互作用はAgile Manifestoの一番最初に挙げられるメリットである(サイト・英語)。しかしながらツールはほとんどのAgileチームの開発において大変重要な部分になっているようだ。ツールが利点となるのはいつで、またいつAgileソフトウェア開発において妨げとなるのだろうか?
Chris Woodell氏が.NET用のAgile Tools(サイト・英語)のリストを作り、簡潔にそれぞれのツールを説明した。このリストにはNUnit(サイト・英語)、Nant(サイト・英語)とNCover(サイト・英語)のようなツールが含まれている。 Kirk Knoenschild氏はその中でもAgileの実践をサポートするツールのレビュー(source)を書き、またその他にもJUnit(サイト・英語)、Ant(サイト・英語)、CruiseControl(サイト・英語)(とその他)のようなツールのJavaバージョンについて説明している。
このレビュー両方にてAgile開発に適応するツールがあるのだが、他は良質なソフトウェアにとってだけ良いものだった。それに欠けていたものはVersionOne(サイト・英語)、Rally(サイト・英語)、 Mingle(サイト・英語)のようなプロジェクトマネジメントツールである。しかしながらこれらのツールはAgile開発チームに狙いを定めており、より問題的なものである。Ben Hughes氏はこう尋ねた。”自動化されたAgileツールの触知性は十分だろうか?(source)”そしてRyan Martens氏(Rallyの)とRon Jeffries氏はプランニングツールの価値に関してディベートを行っている(source)。
Agileコミュニティの中で私たちが使用しているツールのクラスもいくつかある。
- 開発プロセスに関係なくソフトウェア開発に適したツール。これらは必ずしもチームを多かれ少なかれ'Agile'にしないソースコントロールとバグトラッキングツールのようなツールである。
- Agile実践と直接的にサポートし、Manifestoの値と規則に一貫しているツール。それはxUnitと継続的な統合サーバのようなツールである。
- Manifestoの一つかそれ以上の規則に対するコストかその代償でAgile実践をサポートするツール。これらのツールは人間との相互作用を減らすプランニングツールであり、またテストを生成しtest-first開発に伴うソートプロセスを妨げるものである。
あなたはAgile開発に不可欠なツールは何だと思うだろうか?良い実践やコミュニケーションを妨げるツールを使ったことがあるだろうか?もしそうだったとしたらその代償として得られるものは何だろうか?