Agile開発の肝はイテレーションにあり
Redmineでチケット駆動開発を運用するまで、Agile開発を体で理解できていなかった。
XPを実践したいと思っていても、本当のAgile開発は何か違うのでは?と思っていた。
何故、僕はTracではなくRedmineを使ってAgile開発を発見できたのだろうか?
RedmineがAgile開発と相性が良いのは、Redmineの「バージョン」の概念がAgile開発の「イテレーション」「スプリント」と自然に一致するからだ。
Redmineでは、バージョンに紐づくチケットが全て完了ステータスになって、進捗率が全て100%になれば、いつでもそのバージョンをリリースできる仕掛けが入っている。
つまり、バージョンをイテレーションと見なせば、各バージョンを次々にリリースしていけば、自然に小規模リリースを実現できる。
小規模リリースこそが漸進型開発、つまりインクリメンタル型開発の最大の特徴なのだ。
Agile開発は運用しにくい、と思っている人達の原因の殆どは、イテレーションという概念を自分たちのプロジェクトで見つけられてないのだろうと思っている。
僕がTracを初めて運用した時にうまく使いこなせなかったのは、イテレーションをTracの機能で見つけられなかったのが最大の理由だと思う。
だから、Redmineでチケット駆動開発を実践してAgile開発の運用に成功した後、Tracを再び使う事になった時、Tracの機能をもう一度精査し直した。
Tracには、マイルストーンとバージョンという概念がある。
Agile開発のイテレーションと一致するTracの機能は「マイルストーン」だ。
理由は、Tracのロードマップ画面に表示されるのはTracのマイルストーン単位の完了チケット率であり、TracのマイルストーンのライフサイクルはAgile開発のイテレーションと一致するからだ。
実際、Tracでは、マイルストーンの「完了」ステータスを選択すれば、そのマイルストーンはロードマップ画面から消える仕掛けになっている。
つまり、リリースされたので、Tracのマイルストーンは見せる必要がなくなったということ。
Tracの「バージョン」はSVNのタグのような機能に過ぎない。
だから、Tracの「バージョン」はイテレーションにはなりえない。
だから、Tracのマイルストーン単位にタスクをチケットで分類して、小刻みにリリースする開発スタイルになってから、自然にテンポよくプロジェクトの作業が流れるようになった。
Mantisでもイテレーションの概念はある。
Agile開発のイテレーションの概念は、Mantisの「修正済みバージョン」に相当する。
更に、Mantisにも「ロードマップ」「変更履歴」の機能があり、それらはRedmineと同等の機能だ。
実際、Mantisのロードマップは、修正済みバージョン(リリース済み・リリース予定バージョン)ごとにチケットがまとめられていて、変更履歴はリリース済みバージョンのチケットの履歴になっている。
僕は、Redmine、Trac、Mantisを使ってみて、いずれのツールでもチケット駆動開発は可能であり、Agile開発のタスク管理を行うことは可能だと経験したし、確信している。
そして、イテレーションの概念や小規模リリースの利点は、開発チームにリズムが生まれること、そして、そのリズムがプロセス改善を生んでくれることだ。
イテレーション単位にリリースするから、ユーザもいち早くシステムに触ることができるし、開発チーム自身も実際のシステムに触れて、設計漏れや要件漏れにいち早く気づくことができる。
何よりも、定期的にリリースするリズムがあるから、メンバーもそのリズムに合わせるようにタスクを調整するようになる。
そして、リリース後にKPTでふりかえりミーティングを開けば、今回のリリースの良かった点だけでなく反省点を洗い出せるから、次のリリースに向けて、自分たちのプロセスを改善していく雰囲気が生まれる。
定期的なふりかえりによって、自分たちのチームの特徴にあった運用ルールを作りこんでいけばいい。
チケット駆動開発はツールに依存しすぎだ、と言われることもあったが、今は気にしていない。
Agile開発を確実に運用するには、従来のやり方とは違った手法が必要であり、高度なツールを必要とすることを体験できたからだ。
更に、ソフトウェア開発プロセスの基本は結局バグ管理であり、BTSをいかに使いこなすかにかかっているのではないか、と直感している。
| 固定リンク
「プロジェクトマネジメント」カテゴリの記事
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart2~プロセスのレイヤと達成目標のレイヤが異なる(2023.02.18)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart1~CSFはWBSみたいなものと捉える(2023.02.14)
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 現代日本人の弱点はリーダーシップ不足と生産性が著しく低いこと、そしてリスク許容度が著しく低いことだ(2022.12.23)
- プロセス設計はどの範囲を指すのか?~プロマネの仕事はテーラリングにある(2022.06.19)
「Redmine」カテゴリの記事
- 「Redmineハンドブック」は良い本です(2022.12.17)
- 第23回東京Redmine勉強会の感想~コミュニティは仲間から生まれて続く #redmineT(2022.11.06)
- 第22回東京Redmine勉強会の感想 #redmineT(2022.05.29)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- オープンソースERPパッケージiDempiereに対する派生開発手法の提案の資料が興味深かった(2022.04.24)
「ソフトウェア工学」カテゴリの記事
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart2~プロセスのレイヤと達成目標のレイヤが異なる(2023.02.18)
- プロジェクト管理やソフトウェアアーキテクチャの問題の背後にはトレードオフが隠れているのではないか(2023.02.18)
- デブサミ2023の感想(2023.02.11)
- ChatGPTにEclipseでEclEmmaとJaCoCoからカバレッジを出力する方法を聞いた(2023.02.01)
- DDPは品質管理に役立つのか(2022.12.13)
「チケット駆動開発」カテゴリの記事
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- プロジェクト管理の基本はテーラリング、Redmineはプロセスをテーラリングするツール(2022.04.21)
- タスク分割は親子チケットにすべきか、それともチェックリストにすべきか #redmine(2022.03.04)
- Redmineにメンション機能が入るらしい(2022.01.15)
「Agile」カテゴリの記事
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 現代日本人の弱点はリーダーシップ不足と生産性が著しく低いこと、そしてリスク許容度が著しく低いことだ(2022.12.23)
- DDPは品質管理に役立つのか(2022.12.13)
- UMTPモデリングフォーラムのパネル討論の感想(2022.11.29)
- XPエクストリームプログラミングは偉大だ~時代がその設計思想に追いついた(2022.11.16)
この記事へのコメントは終了しました。
コメント