WF型開発にチケット駆動を取り入れる時の考え方
アダプタブルWFや補完チケット方式について、考えたことをラフなメモ書き。
【参考】
「チケット駆動開発」の適用について考える|コラム「ITよもやま話」|特集│株式会社JSOL
ソフトウェア開発の匠(3):「現状のソフトウェア開発は間違っていないか?」(プロセス編) (3/3) - @IT
ソフトウェア開発の匠(4):アジャイル開発と反復開発の落とし穴 (2/3) - @IT
【1】普通のSIなら、社内標準プロセスとしてWF型開発がガッチリ決まっており、アジャイル開発を取り入れる雰囲気すら無いだろう。
しかし、アジャイル開発のプラクティスは部分的に取り入れることはできるし、その効果を上げることもできる。
同様に、チケット駆動開発をWF型開発に部分的に導入して、チケット駆動の良さを実感したい、という思いもあるだろう。
チケット管理は障害管理の一つの手法と思えば、そんなに大層な問題ではないからだ。
【2】では、WF型開発のどこにチケット駆動を取り入れると成功する確率が高いのか?
その問題を問うた時、「チケット駆動開発」の適用について考える|コラム「ITよもやま話」|特集│株式会社JSOLの記事がすごく参考になる。
(引用開始)
私がウォーターフォール開発での(チケット駆動開発の)適用として取り組んだものには大きく2つある。
(1)ウォーターフォール開発でも内部にある小さな開発サイクルでの適用
と、
(2)プログラム改訂に関係するタスク以外のタスクや情報のチケット管理
である。
(引用終了)
【3】WF型開発プロセス内部にある小さな開発サイクルでの適用
一つは、プログラム修正、自動テスト、自動ビルド、リリースに至るまでの小さな作業を繰り返し行う時に使う。
例えば、障害修正など。
これは、テスト工程などの下流工程で有効なことは既に知られている。
【3-1】一方、WF型開発なのでリリースは最後の1回だけだが、内部プロセスでは開始~終了のサイクルを持つものがある。
例えば、「要求の検証」「アーキテクチャの検証」「テスト工程の分割・反復」などの開発サイクルにTiDDを適用する。
つまり、ソフトウェア開発の匠(3):「現状のソフトウェア開発は間違っていないか?」(プロセス編) (3/3) - @ITで語られている「ウォーターフォール開発には裏プロセスが存在する」のことだ。
裏プロセスとは、社内標準のWF型開発に即していない「要求の検証」「アーキテクチャの検証」「テスト工程の分割・反復」があげられる。
プロジェクトリーダーは、裏プロセスを故意に作らないと、プロジェクトが成功する確率が高くならないからだ。
リスクヘッジするために、裏プロセスを幾つか作り、リスクを分散する。
でも、裏プロセスは社内標準でないから、リーダーは故意に表面化させない。
裏プロセスを出してしまうと、社内標準の逸脱に見えてしまい、品質保証部から指摘を受けるからだ。
だから、裏プロセスが見える化されない限り、プロセス改善は進まない。
裏プロセスのノウハウが共有されないのだ。
【3-2】また、「組織パターン」の「最高傑作の欠点」でも裏プロセスの指摘がある。
いわく。
こういった裏プロセスは、実は、プロジェクトリーダーも開発者も認識している。
しかし、プロジェクトリーダーは社内標準のWF型開発に則しているように振る舞うために、裏プロセスを表に出さず、あたかも一つの標準プロセスとして忠実になろうとする。
そこに矛盾が生じている、と。
【3-3】チケット駆動開発の利点は、社内標準になっていない裏プロセスを見える化し、そのような裏プロセスのタスクをチケットで一元管理できる点だ。
裏プロセスは社内標準の成果物テンプレートやプロセステンプレートがないので、ノウハウがなく、適当に運営してしまいやすい。
でも、少なくとも作業を洗い出せるならば、チケットで全てのタスクを表現できるし、進捗管理もでき、作業履歴を追跡することもできる。
すなわち、チケット駆動開発は、社内標準から漏れた例外プロセスや裏プロセスを実装することに向いている。
【4】プログラム修正以外のタスクや情報のチケット管理
WBSからこぼれ落ちた情報を記録するためにチケット駆動開発を適用する。
例えば、設計工程での設計書のレビュー、開発工程のコードレビュー、各工程での課題やQAの記録など。
最終版の設計書だけでは、その仕様に至った経緯や要件の変更履歴が分かりにくい。
そのためだけに、変更履歴の資料を作っても、設計書が変われば、2種類の資料を修正する手間がかかる。
また、オフショアやニアショアなど、地理的に離れたチームとの開発では、QAのやり取りをしながらアウトプットのプログラムを作りこんでいく事が多いから、その経緯や履歴を残っているとすごく助かる。
こういう状況では、補完型チケット駆動開発が威力を発揮する。
すなわち、設計・開発・テストの各工程でこぼれ落ちた課題管理、残作業の管理、レビューの管理、障害管理などでチケット駆動開発を適用することで、チケットに全ての記録が集約される。
チケットの内容はいくらでも全文検索できるから、後から変更理由の経緯を追跡することができる。
特に、運用保守で本番ソースを修正する時、汚いパッチの意図を確認しておくのは重要だ。
【5】以上のように考えると、WF型開発にチケット駆動開発を適用する対象としては、下記があげられる。
(1)標準プロセスから外れた裏プロセスや例外プロセス
(2)WBSから漏れた残タスク・課題・レビューなどの管理
この事実を見ると、チケット駆動開発は例外的・突発的・変更が多いタスク管理に向いていることが分かる。
また、チケット管理を運用すると、いろんな効果が出てくる。
開発のリズム、見える化、バージョン単位の反復・漸進型開発、メンバーの自律化、開発ペースの安定など。
それらの効果は、WF型開発の弱点というよりも、チケット駆動開発を適用したから出てくるものであり、チケット駆動開発の運用ルールとして強制すべきほどではない気がする。
チケット管理を運用していく上で、現場ごとにその効果が色々見えてくると思うからだ。
そんなことを思うと、ソフトウェア開発ではプロセス標準という考え方は適用しにくいように思う。
むしろ例外や裏に隠れてしまったプロセスの方がすごく多い。
それらをいかに制御して、ソフトウェアをリリースしていくか。
まずは試してみて、実践知を貯めていきながら、製品を作り上げていくという適応型開発に、チケット駆動開発も当てはまりやすい性質があるのだろうと思う。
| 固定リンク
「プロジェクトマネジメント」カテゴリの記事
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart2~プロセスのレイヤと達成目標のレイヤが異なる(2023.02.18)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart1~CSFはWBSみたいなものと捉える(2023.02.14)
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 現代日本人の弱点はリーダーシップ不足と生産性が著しく低いこと、そしてリスク許容度が著しく低いことだ(2022.12.23)
「ソフトウェア工学」カテゴリの記事
- アーキテクチャ設計はベストプラクティスを参照するプロセスに過ぎないのか?~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)
コメント