TiDDを実践して気付いたことpart6~TiDDでAgile開発を実践して分かってきたこと
Redmineによるチケット駆動開発(TiDD)を実践して気付いたことをもう一度まとめてみる。
TiDDをAgile開発として運用するには、下記の運用ルールが最低限必要だと思う。
1・チケットをXPのタスクカードのように扱う
2・チケット集計結果をXPのタスクボードのように扱う
3・ロードマップをリリース計画のように扱い、小規模リリースを運用する
1によって、XPのタスクカードをTiDD上で実現できる。
更に、XPのストーリーカード、ScrumのバックログもBTSチケットで表現可能だから、Agile開発のタスクや要望は全て、TiDD上で実現できるはず。
また、チケットに構成管理情報を付与できるから、成果物の変更もチケットで追跡できる。
2によって、PFのかんばんをTiDD上で表現できる。
つまり、タスクの作業状態、イテレーションの進捗管理は全て、TiDD上でリアルタイムにモニタリングできる。
これを実現できるのも、チケットに進捗情報を付与できて、チケット集計を自動化できるおかげだ。
3によって、XPの小規模リリースを実現できる。
つまり、2~4週間のイテレーションで、小刻みに機能拡張してリリースを繰り返すことを制御できるようになる。
XPの計画ゲームは、どのバージョンにどの機能をリリースしていくか、というリリース計画の作業に落とし込める。
3の性質によって、TiDDはAgile開発プロセスを実装できるだけでなく、自然に繰り返し開発にもなる。
そして、Agile開発の最大の特徴である繰り返し開発の運用が難しい理由は、下記でまとめられると思う。
1・繰り返し開発はイテレーション管理が難しい
2・繰り返し開発において、インクリメンタル型開発と反復型開発を混同してる
3・繰り返し開発は並行開発でもあるため、並行開発の制御が難しい
1は、短いサイクルで頻繁にリリースを繰り返すために、各イテレーションのタスク管理が煩雑になるから。
本番リリースのタイミングはWF型開発よりも頻繁だから、たとえ小規模の改善であっても、開発チームに対するプレッシャーも大きい。
更に、リファクタリングや度重なる機能改善のため、ソース管理も難しくなる。
2は、繰り返し開発を使い分ける戦略を開発チームが持っていないことに尽きる。
Agile開発の基本は、リリースを最優先にするインクリメンタル型開発。
だからこそ、リリースする機能(スコープ)を制御することを重視する。
しかし、システム全体を少しずつ作り上げる反復型開発では、リリースのタイミングは随分後のため、度重なる仕様変更や手戻り作業を制御できず、スコープをどんどん膨らましてしまいがち。
むしろ、反復型開発は、テスト工程のように品質を作りこむ状況の方が扱いやすい。
3は、インクリメンタル型開発が実は並行開発でもあるという事実を理解していないことに尽きる。
一度リリースしたシステムはそれで終わりではなく、運用保守モードとして生き続ける。
更に、裏では次の新規開発を進めているから、2系統のコードラインを常時保守し続けている。
組込製品やパッケージ製品ファミリーの開発では、更にたくさんのコードラインを同時に保守し続けるため、品質管理が難しく、そのコストも大きい。
本番ブランチの障害修正は、裏で開発中のtrunkにも影響し、マージ作業が発生する。
そのタイミングを忘れずに管理していくのは、ツールによるサポートがなければ非常に煩雑になる。
それらを、TiDDはタスク管理でサポートするし、GitやMercurialはPullやPushでサポートする。
上記がTiDDでAgile開発を実践して分かってきたことだが、まだまだノウハウがあると思うので探っていきたい。
| 固定リンク
「Redmine」カテゴリの記事
- Redmineのバージョン設定でプロジェクトの設定方法が違う(2024.06.23)
- ウクライナのRedmine開発者が作ったRedmineテーマやプラグイン(2024.06.18)
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)
- Redmineで持ち株管理する事例(2024.04.21)
- チケットはデータでとプロセスの二面性を持つ #redmine(2023.12.24)
「チケット駆動開発」カテゴリの記事
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)
- チケットはデータでとプロセスの二面性を持つ #redmine(2023.12.24)
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- プロジェクト管理の基本はテーラリング、Redmineはプロセスをテーラリングするツール(2022.04.21)
「Agile」カテゴリの記事
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- 「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の感想(2023.12.10)
- 概念モデリングや設計原則は進化しているのか(2023.10.21)
コメント