TiDDを実践して気づいたことpart2~これがアジャイルだ!と気付いた瞬間
TiDD(チケット駆動開発)が何故、アジャイル開発と密接に関係するのか、経験を思い出して考えてみたことをメモ。
#下記はロジカルでないので注意。
【元ネタ】
裏プロセスは並行プロセス: プログラマの思索
【1】Redmineでチケット駆動開発を実践して、これがアジャイルだ!と気付いた瞬間は、イテレーションと言うリズムに気付いた時だ。
Redmineのロードマップ画面で、バージョン毎にチケットをアサインした後、バージョンの進捗率が100%になり次第、随時リリースしていった。
すると、開発メンバーはリリース予定のバージョンを直近のゴールと見なして、自然に頑張るようになった。
そして、リリース後にKPTによるふりかえりMTを開いて、リリースしたバージョンについて、KPTの観点でヒアリングして議論したら、自然にプロセス改善になっていた。
僕は、チケットの運用ルール改善や作業の品質改善を狙っていたのだが、メンバーからは、設計書のこういう部分が分かりにくいからバグが出た、このワークフローはやりにくい、チケットでタスクの見通しがよくなった、など、色んな意見が出て、紛糾した。
そして、次のバージョンへの対策も決まり、ちょっとずつ、開発チームの作業効率も上がった。
SW開発で最も嫌なのは、ゴールが見えず、残業や休日出勤が延々と続く状況。
いわゆるデスマーチ。
リリース前のシステムテスト、リリース直後の膨大な問合せや障害報告で起きる。
特に、ウォーターフォール開発で、ドカンと一発リリースした直後が大変。
ウォーターフォール開発では、イテレーションと言うリズムが無いのが一番嫌だ。
【2】アジャイル開発では、スコープをコントロールしながら、小刻みに機能拡張しながらリリースしていく。
だから、リリース後の障害報告や問合せもそれほど多くないし、開発チームがコントロールできる範囲内に抑えられる。
何よりも、スコープをイテレーションに閉じ込めて、イテレーションというリズムが生まれるのが気持ちいい。
XPやScrumならば、必ず2~4週間後にリリースというゴールがあるので、作業が見えやすい。
チケット駆動開発では、ロードマップ画面でリリース計画やチケットの取捨選択を行う。
つまり、ロードマップ画面で、スコープを制御しながら計画ゲームを行っている感覚だ。
イテレーションは通常2~4週間という小さいタイムボックスのため、納期やコストが固定だから機能というスコープで調整するしかない。
つまり、リリース計画を立てて、複数のバージョンを随時リリースしながら機能拡張するという小規模リリースを自然に行っていた。
小規模リリースという繰り返し型開発に気付いた瞬間が、これがアジャイルだ!と思った2番目の瞬間。
このロードマップは、チケット駆動開発で最も重要な機能だと思う。
ロードマップは、平鍋さんが提唱するプロジェクトファシリテーションの「見える化」の例で出てくる野球のスコアボードと同じだ。
ロードマップには、「最新の正しい情報」がバージョンの進捗率とチケット一覧が表示されていいる。
Webなので、「メンバーも現場リーダーも(できれば顧客も)」ロードマップを見れる環境にある。
そして、ロードマップにあるバージョンの予定や進捗から、直近のゴールはこれだ、と「次の行動」が誘発される。
チケット駆動開発はプロジェクトファシリテーションともすごく相性がいいと思う。
【3】Redmineは1プロジェクト=1リポジトリという設計思想で、Subversionと連携できる。
更に、Redmineには複数プロジェクト機能がある。
だから、ブランチを別プロジェクトで管理してみたら、自然に並行開発になっているのに気付いた瞬間が、これがアジャイルだ!と思った3番目の瞬間。
Subversionをまともに使いこなすまで、ずっとtrunk1本だけのコードラインだったから、並行開発を意識する事はなかった。
しかし、小規模リリースしていくと、本番環境のソースはブランチ、裏で機能拡張中のソースはtrunkというソース管理に自然になる。
すると、マージ作業という面倒な作業が発生するので、Redmine導入前はSVNのタグを乱発してコントロールしにくかった。
Redmineでは、本番運用と開発中のチケットは別々に作り、マージ作業のチケットは発生源の障害修正のチケットとリンクすることで、開発者はすごく作業しやすくなったみたい。
管理者としても、マージ作業のタイミングを忘れる事がなくなったので、ありがたい。
上記の経験を通じて、繰り返し開発が難しい理由は並行開発という開発プロセスが隠れているからだ、と思うようになった。
一度リリースしたソースはそれで終わりではなく、ブランチとして次のリリースまで生き続ける。
開発チームは、次の開発をやりながら、本番運用のソースも保守しなくてはならない。
そして、裏で開発中のソースをリリースしたら、本番運用のブランチを新たに作り、以前のブランチを廃止するという運用サイクルが生まれる。
つまり、小規模リリースというプラクティスは、単なる小刻みな機能拡張による繰り返し開発だけでなく、複数のコードラインを常時保守する並行開発という開発プロセスが本質なのだ。
アジャイル開発が難しい理由は、この並行開発を制御できない点にあると思う。
ウォーターフォール開発であろうとも、組込み製品やパッケージ製品の開発では、複数の製品ラインを保守しながら本番運用と開発中の2系統のソース管理をしているのだから、もっと大変なはずだ。
逆に言うと、並行開発を意識している開発プロセス、開発チームは、自然にアジャイルな開発を行っているだろうと推測している。
| 固定リンク
「プロジェクトマネジメント」カテゴリの記事
- 製造業のDXを推進する部門をITコーポレート部門に割り当てるとなぜ失敗するのか(2026.02.04)
- SAFeはScrumと全く異なるアジャイル開発プロセスだ(2026.02.01)
- プ譜でプロジェクトの目的を管理する(2026.01.31)
- Redmine AI HelperプラグインはRedmineをAI駆動プロジェクト管理に変える可能性を秘めている #Redmine(2025.12.31)
- 第29回東京Redmine勉強会の感想~今話題のテーマはJTC運用とAIによるプロマネ作業支援 #redminet(2025.11.09)
「Redmine」カテゴリの記事
- Redmine AI HelperプラグインはRedmineをAI駆動プロジェクト管理に変える可能性を秘めている #Redmine(2025.12.31)
- 第29回東京Redmine勉強会の感想~今話題のテーマはJTC運用とAIによるプロマネ作業支援 #redminet(2025.11.09)
- 第22回 Redmine大阪の感想 #RedmineOsaka(2025.09.21)
- RedmineJapan vol.4の感想part1~Redmine AI HeplerプラグインはRedmineのナレッジ活用を強化してくれる #RedmineJapan(2025.07.31)
- Jiraの機能はTracに似ている気がする #redmine(2025.06.01)
「ソフトウェア工学」カテゴリの記事
- Jiraの機能はTracに似ている気がする #redmine(2025.06.01)
- チームトポロジーの感想~大規模アジャイル開発でも組織構造は大きく変化する(2025.01.01)
- Redmineは組織のナレッジ基盤として実現可能なのか~島津製作所の事例を読み解く #redmineT(2024.12.29)
- アーキテクチャ設計はベストプラクティスを参照するプロセスに過ぎないのか?~Software Processes are Software, Too(ソフトウェアプロセスもまたソフトウェアである)(2024.09.22)
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
「プロジェクトファシリテーション」カテゴリの記事
- astahでPJ管理もプロセス設計もアイデア発想も全て表現したい(2025.10.25)
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 「世界を動かすプロジェクトマネジメントの教科書」の概念図(2022.01.16)
- 【資料公開】チケット駆動開発の解説~タスク管理からプロセス改善へ #redmine(2022.01.14)
- 昭和の管理者の承認処理は判子押印、令和の管理者の承認処理はいいねボタンを押すこと(2021.12.31)
「構成管理・Git」カテゴリの記事
- 「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の感想(2023.12.10)
- パッケージ設計の原則の意義は変化しているのか(2023.09.30)
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 【資料公開】チケット駆動開発の解説~タスク管理からプロセス改善へ #redmine(2022.01.14)
- プログラミングしてる時はでっかいピタゴラ装置を作ってるみたいな感じ(2022.01.09)
「チケット駆動開発」カテゴリの記事
- 第29回東京Redmine勉強会の感想~今話題のテーマはJTC運用とAIによるプロマネ作業支援 #redminet(2025.11.09)
- RedmineJapan vol.4の感想part1~Redmine AI HeplerプラグインはRedmineのナレッジ活用を強化してくれる #RedmineJapan(2025.07.31)
- Jiraの機能はTracに似ている気がする #redmine(2025.06.01)
- Redmineは組織のナレッジ基盤として実現可能なのか~島津製作所の事例を読み解く #redmineT(2024.12.29)
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)
「Agile」カテゴリの記事
- SAFeはScrumと全く異なるアジャイル開発プロセスだ(2026.02.01)
- 第29回東京Redmine勉強会の感想~今話題のテーマはJTC運用とAIによるプロマネ作業支援 #redminet(2025.11.09)
- RedmineJapan vol.4の感想part1~Redmine AI HeplerプラグインはRedmineのナレッジ活用を強化してくれる #RedmineJapan(2025.07.31)
- Jiraの機能はTracに似ている気がする #redmine(2025.06.01)
- チームトポロジーにおける4チームのインタラクションをUMLで整理してみた(2025.01.12)


コメント