無料ブログはココログ

« [#TiDD] プロジェクトを成功に導くチケット駆動開発のビジョン | トップページ | [#TiDD] プロセスモデリングにおけるチケット駆動開発の可能性 »

[#TiDD] チケット駆動開発はプラクティス?プロセス?それともアジャイル?

チケット駆動開発はプラクティスですか?プロセスですか?アジャイル開発ですか?

そういった疑問を抱かれる方もおられるでしょう。この答えは人によって違います。これをテスト駆動開発(TDD)の例を使って説明してみましょう。

テスト駆動開発はJUnitを用いて開発する方法(プラクティス)です。実行コードを書く前にテストコードを書くことで、テストが実行された実行可能なコードを徐々に増やしていく方法です。テスト駆動開発は従来型の開発においても有効で、多くの開発現場で利用されています。

ここで、JUnitがCIツールの機能が追加されたことをイメージしてください。JeninsのようなCIツールは、TDDの単体レベルのテストを常に実行できるほか、結合テストや静的解析、デプロイまでできます。もちろん、従来型の開発においても有効ですが、アジャイル開発の様に繰り返して開発やリリースを行うことで、より効果を実感することができるでしょう。このようにツールが多機能になればなるほど、プラクティスというよりもプロセスに近くなります。

これと同じ混乱がチケット駆動開発にもあります。チケット駆動開発はBTSのチケットを利用してタスクを管理する方法です。このチケットは構成管理ツールと関連付けられています。

ここまでの説明は比較的単純です。しかし、実践してみると、チケットの利用だけを捉えても、WBSとして利用も可能ですし、それをガントチャートで示すこともできます。

個人の忘備録としても使えますし、本来の機能であるプロジェクトの課題や不具合を管理することもできます。また、一覧はタスクボードですし、バーンダウンチャートを示すプラグインもあります。

さらに便利なことに、BTSには複数回のリリースを想定したマイルストーンやバージョンと呼ばれる属性があります。

このように、チケット駆動開発は従来法からアジャイル開発に至るまで、様々な利用が可能です。このため、プロセスを補完するプラクティスでもありますし、プロセスの根幹をなす仕組みとしても利用可能なのです。

さらに、アジャイルの定義は人それぞれです。もちろんアジャイル宣言がアジャイルの定義であることは誰もが認められるところです。しかし、アジャイル宣言の背景にあるものを満たしていれば、必ずしもすべてを満たしていなくてもアジャイル開発と呼ばれているのが現実でしょう。

そこにもまた幅があり、ユーザへの価値の提供、ビジネスモデル、オフェンシブな開発、さらにはソウル、ロック、パッションという言葉でアジャイルを語る方もおられます。このような幅がアジャイルの議論を混乱させる要因ではありますが、この幅こそがアジャイルのすそ野を広げることになっているとも思います。

チケット駆動開発をどう定義するか、それは難しい問題ですが、必ずしも解決しなくてよい問題だと思います。できればそのままに広く情報交換して、それぞれのプロジェクトにふさわしい形でチケット駆動開発が実践できるようになればと思っています。

« [#TiDD] プロジェクトを成功に導くチケット駆動開発のビジョン | トップページ | [#TiDD] プロセスモデリングにおけるチケット駆動開発の可能性 »

私のアジャイル」カテゴリの記事

チケット駆動開発」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック

« [#TiDD] プロジェクトを成功に導くチケット駆動開発のビジョン | トップページ | [#TiDD] プロセスモデリングにおけるチケット駆動開発の可能性 »