チケット駆動開発は計画の変更を恐れない #tidd
チケット駆動開発でのリスケについての質問を見つけたのでメモ。
下記はあくまでも僕の一意見。
ラフなメモ書き。
【元ネタ】
チケット駆動開発でのリスケジュール方針について | OKWave
【1】チケット駆動開発をAgileに運用しているなら、チケットのDoneの条件はリリースする事。
すなわち「バージョンをCloseする=リリースした」「バージョンをCloseできない=リリースしていない」になる。
もし、遅れたチケットを無視してリリースしたなら、チケットは延期されたことを意味している。
つまり、遅れたチケットは次のバージョンへアサインされることと同義だ。
チケット駆動開発において、リスケのタイミングといつだろうか?
Agileに開発しているなら、朝会だ。
Scrumならデイリースクラム、XPならスタンドアップミーティングに相当する。
PLは課題解決マシーン。実作業はメンバーにお任せ。
課題の無いプロジェクトは、メンバーが自己解決する順調なプロジェクトなのか、PLが裸の王様なのか、どちらかだ。
タスクが1MDでも遅延したら、そのタスクは2度と元のペースに戻ることは無い。
TOCの言う通り、スケジュールは遅延が伝播するだけだ。
朝会で課題を見つけて、チーム内で調整するか、上司や顧客へ調整するか、早く判断しなくてはならない。
【2】チケットが遅延した原因を分析するのが大事。
その原因は色んなパターンがある。
例えば、割り込み作業のためにチケットのタスクに専念できない人もいる。
つまり、その人はヤミ作業している。
チケット駆動開発の根本ルールである「チケットに起票してから作業を開始する」「No Ticket, No Work」に既に違反している危険な兆候。
PLはメンバーの作業を完全にコントロールできてないわけだから、体制そのものに問題がある。
あるいは、先行のチケットが終わらないので、タスクを完了できない場合もある。
つまり、タスクに先行・後行の依存関係(PMBOKの言うFSなど)がある。
この場合、基本はクリティカルパスに専念するのが最良の解決パターンだろう。
Agile開発はタイムボックスによる開発なので、チケットの総数を少なくすることで、依存関係を見やすくする利点がある。
プロジェクト内部の作業を見える化することで、自分の作業が誰に影響を与えているか、メンバー自身に喚起させることが自然にできる。
あるいは、TOCの言うクリティカルチェーンに従って、クリティカルパス上のタスクにバッファを作っておき、遅延が伝播しないような仕掛けを入れてもいいだろう。
遅延したチケットで危険なパターンは最低3つは経験している。
一つ目は、リファクタリングしないと機能追加できないチケット。
二つ目は、仕様変更に対応したら、デグレしたチケット。
三つ目は、バグを直したら、他画面の同類バグ調査が漏れていたチケット。
一つ目は、派生開発で起きやすい症状で、当初の設計が調査不足で、見積もりが甘かったことを意味する。
3MDで終わる予定が5MD以上も起きてしまうのはざらだ。
その場合は、リファクタリングのチケットと新規追加のチケットを分ける時が多い。
開発者も、リファクタリングの帽子と新規追加の帽子をかぶり直した方が、頭を切り替えやすくなる。
二つ目と三つ目は、ソース修正の影響範囲の調査漏れ、あるいは、テスト漏れを意味している。
いずれにしても、原因は根深いので、時間をある程度確保して、抜本的な調査を行わないと、バグがモグラ叩きのように出てきて、チームが疲労してしまう。
遅延したチケットに対する抜本的な対策は、最終的にはリスク管理につながる。
チケットが遅延しないように、あらかじめ何らかの対策を用意しておくわけだ。
PMBOKの言うリスクバリュー分析図では、影響度と発生確率の4象限で、リスクに対する態度を決める。
リスクが低ければ、無視 or 却下してもいいわけだ。
つまり、リスクを受容する場合もある。
【3】上記の質問を読んで思ったことは、何故、リスケを恐れているのだろうか?
PMBOK、WF型開発では、ベースラインを設定して予定・実績比較で管理していく。
予定がコロコロ変わっては、実績と比較しても差がなくなるので、差異分析がやりにくくなるからだ。
逆に、Agile開発は計画の変更を恐れない。
むしろ積極的に計画を変更して、プロジェクトをドライブする。
完璧な計画作りよりも、プロジェクトの成功を重視するのだ。
だから、Agile開発では、ロードマップというリリース計画をあらかじめ作るけれども、あくまでも大まかに作っておき、詳細な計画はイテレーション実施前に作り、イテレーションの実施中も頻繁に変更していく。
ITSによるチケット管理の利点は、チケットですべての作業が見える化されるだけでなく、状況の変化をチケットに即座に反映しやすい点もある。
優先度や作業内容、担当者、作業の開始日や終了日が変わったら、チケットの属性を変更すればいいだけのことだ。
ロードマップやチケットを現状に合わせて、チームの現状を誰もが同一に認識出来るようにすれば、自ずから何を解決しなければ前進しないのか、見えてくる。
ファシリテーションが教えるように、問題がはっきりして解ける問題へ変換すれば、人は自然に問題を解決しようとする。
変更されたチケットの内容はリアルタイムに反映されて全員に見える化されるので、部外者の上司や顧客もITSを閲覧できるとなおいいだろう。
丁度、下記のようなTwitterを見つけた。
まさに、ロードマップを第三者が見れば、プロジェクトの状況が単なる遅延だけでなく、遅延したチケットをどのように処理しようとしているのか、というチームの意思も見えてしまうわけだ。
| 固定リンク
「プロジェクトマネジメント」カテゴリの記事
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart2~プロセスのレイヤと達成目標のレイヤが異なる(2023.02.18)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart1~CSFはWBSみたいなものと捉える(2023.02.14)
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 現代日本人の弱点はリーダーシップ不足と生産性が著しく低いこと、そしてリスク許容度が著しく低いことだ(2022.12.23)
「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)
「ソフトウェア工学」カテゴリの記事
- アーキテクチャ設計はベストプラクティスを参照するプロセスに過ぎないのか?~Software Processes are Software, Too(ソフトウェアプロセスもまたソフトウェアである)(2024.09.22)
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「システムアーキテクチャ構築の原理」の感想(2024.05.06)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- マイクロサービス設計は従来のアーキテクチャ設計と何が違うのか(2024.01.02)
「チケット駆動開発」カテゴリの記事
- 第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)
コメント