チケット駆動開発の面白さ #tidd
@nobiinu_andさん、@two_packさん、@naitohさん、@haru_iidaさんと第0回関東Redmine飲み会を開催しました。
Redmineに関するマニアックなお話ができて楽しかったです。
またこういう機会を作りたいなと思っています。
皆と話していて、Redmineの背後にあるチケット駆動開発の面白さについて考えたことをメモ。
【1】チケット駆動開発は、Tracのチケット管理の経験を元にまちゅさんが提唱された。
チケット駆動開発 … ITpro Challenge のライトニングトーク (4) - まちゅダイアリー(2007-09-07)
チケット駆動開発(TiDD)が障害管理(BTS)や単なる課題管理(ITS)と異なる点は二つある。
一つは、「No Ticket, No Commit!」と呼ばれる運用ルールでチケットに構成管理情報を付与することで、ITSとSCMを連携する機能に着目したこと。
もう一つは、「Ticket First」「No Ticket, No Work!」と呼ばれる運用ルールでソフトウェア開発のプロジェクト管理をチケット管理に置き換えることで、マネジメントの問題をプログラミングで解ける問題に変換できること。
【2】前者は、OSSのツールを連携することによって、新しい使い方が判明して、その使い方によってソフトウェア開発の生産性が大きく上がる事実を示している。
RedmineはSVNが同一サーバー上だけでなく他サーバーへリモートで接続可能という機能のおかげで、チケットとSVNコミットログを簡単に連携できる。
そして、SCM連携と呼ばれるRedmineの機能によって、要件や仕様からチケットを経由してソースのリビジョン、更にはビルドモジュールまでのトレーサビリティを実現できる。
トレーサビリティによって、過去のパッチの変更理由を追跡できるだけでなく、現在修正中のソースが過去のチケットでどのような変更履歴を持つのかを調べることによって、ソースの意図をより深く理解することも可能になる。
従来のAgile開発、ひいてはソフトウェア開発では実現できなかったトレーサビリティという性質によって、ツール上で厳格な変更管理を運用することも可能。
つまり、トレーサビリティという性質は、ITSとSCMの連携によって生まれたが、同様に他のツールとITSやSCMが連携することによって、新しい使い方を発見できる可能性がある。
@haru_iidaさんは、ITS・SCM・CIの三つのツールを「ソフトウェア開発の3種の神器」と呼んで、ツール同士の連携でソフトウェア開発のインフラを拡張できることを示唆されている。
又、古いツールを使って新しい使い方で利用する現象を、上田さんは「チケット駆動開発はAjaxみたいだね」と話されて、なるほどと思った時がある。
僕は、Redmineの対象バージョンをXPのイテレーションと同一視する運用によって、初めて自然にAgile開発を経験できた。
ITS・SCM・CIだけでなく、テスト管理や品質管理、コードレビューのツールも連携できれば、新しい使い方を見つけることができて、更に開発の生産性を高めることができるだろう。
【3】後者は、ソフトウェア開発のプロジェクト管理を主導する役割がマネージャからプログラマへ移ってきた事を示唆している。
ソフトウェア開発をツールでサポートする発想は従来から試されており、そのようなツールも販売されたり、ツールとセットで開発プロセスが提唱されたりした。
IPA(情報処理推進機構)も昔から、メトリクスを収集するツールはフリーで公開している。
EPMツール:情報処理推進機構:ソフトウェアエンジニアリング
しかし、結局普及しなかったのが現状ではなかろうか?
普及しなかった理由は、ツールそのものが使いづらい点もあるが、「上から目線」の発想にあると思う。
下記のBlogに書かれているように、PMOや品質管理部門が開発チームを教育しようという発想が根底にあり、現場の開発者が顧客(マーケット)であるという発想がそもそもなかったのが最大の原因だったのだろうと思う。
「プロジェクトが遅れない理由」も数値化できる - @IT情報マネジメント
チケット駆動開発はTracのチケット管理から生まれた経緯もあって、現場の試行錯誤の中から生まれた開発プロセス。
だから、開発者が作業しやすいように、作業履歴を残しやすくしたり、タスクとソースのコミット情報を連携したり、進捗が分かるような仕掛けがITSに自然に実装されている。
チケット駆動開発は決して、PMOや品質管理部門、あるいは高尚な理論から生まれたアイデアではない。
チケット駆動開発では、SCMと連携する機能を持つITSをソフトウェア開発のタスク管理へ適用すると、スコープ管理をAgile開発のイテレーション管理へ置き換えたり、タスクの順序入れ替えをチケットの取捨選択に置き換えるなど、まさにXPの計画ゲームっぽいことが簡単に運用できる。
そして、マネージャや開発者から寄せられる苦情や改善要望は、ITSの一機能として実現すればいい。
特に、進捗報告や課題一覧は、マネージャやユーザの観点と開発者の観点で大きく異なるけれど、その問題はチケット集計機能というビューを使い分けることで解決できるはず。
チケット駆動開発は進捗報告作りをどのように解決しようとするか?: プログラマの思索
Redmineが使いづらいと言う質問~開発業務をRedmineへマッピングできていない: プログラマの思索
プログラミングに携わる者としてチケット駆動開発が面白いのは、ITSの機能にベストプラクティスが含まれているため、その機能に慣れると自然に良い習慣が身に付くこと。
逆に言えば、ソフトウェア開発で利用するツールが古いと、最新のベストプラクティスが使えないために、開発の生産性が停滞してしまうこと。
つまり、より拡張された概念であるソフトウェア構成管理のツールがソフトウェア開発の作業手順、プロセス、生産性に制約をかけているのだ。
Excelのプロジェクト管理から脱却せよ~SW構成管理を見直そう: プログラマの思索
| 固定リンク
「プロジェクトマネジメント」カテゴリの記事
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart2~プロセスのレイヤと達成目標のレイヤが異なる(2023.02.18)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart1~CSFはWBSみたいなものと捉える(2023.02.14)
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 現代日本人の弱点はリーダーシップ不足と生産性が著しく低いこと、そしてリスク許容度が著しく低いことだ(2022.12.23)
「Redmine」カテゴリの記事
- 「RedmineのUbuntu+Docker構築への移行」の感想 #redmineT(2024.11.24)
- 第27回redmine.tokyo勉強会の感想 #redmineT(2024.11.10)
- Redmineのバージョン設定でプロジェクトの設定方法が違う(2024.06.23)
- ウクライナのRedmine開発者が作ったRedmineテーマやプラグイン(2024.06.18)
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)
「ソフトウェア工学」カテゴリの記事
- アーキテクチャ設計はベストプラクティスを参照するプロセスに過ぎないのか?~Software Processes are Software, Too(ソフトウェアプロセスもまたソフトウェアである)(2024.09.22)
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「システムアーキテクチャ構築の原理」の感想(2024.05.06)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- マイクロサービス設計は従来のアーキテクチャ設計と何が違うのか(2024.01.02)
「プロジェクトファシリテーション」カテゴリの記事
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 「世界を動かすプロジェクトマネジメントの教科書」の概念図(2022.01.16)
- 【資料公開】チケット駆動開発の解説~タスク管理からプロセス改善へ #redmine(2022.01.14)
- 昭和の管理者の承認処理は判子押印、令和の管理者の承認処理はいいねボタンを押すこと(2021.12.31)
- チケット駆動開発のプロセスとチケット管理システムの全体像 #Redmine(2021.12.28)
「構成管理・Git」カテゴリの記事
- 「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の感想(2023.12.10)
- パッケージ設計の原則の意義は変化しているのか(2023.09.30)
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 【資料公開】チケット駆動開発の解説~タスク管理からプロセス改善へ #redmine(2022.01.14)
- プログラミングしてる時はでっかいピタゴラ装置を作ってるみたいな感じ(2022.01.09)
「チケット駆動開発」カテゴリの記事
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)
- チケットはデータでとプロセスの二面性を持つ #redmine(2023.12.24)
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- プロジェクト管理の基本はテーラリング、Redmineはプロセスをテーラリングするツール(2022.04.21)
「Agile」カテゴリの記事
- 「世界一流エンジニアの思考法」の感想(2024.12.08)
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- 「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の感想(2023.12.10)
コメント
うちで使おうとした当時 EPM ツールが対応するバージョン管理システムは CVS で、SVN コネクタはあったみたいですが、うちが Visual Source Safe だったもので、その開発途上のコネクタの (多分唯一の) ユーザー (= 事実上のテスター) をやってました。
相談に乗っていただいた IPA の担当者の方は、上から目線という感じではなく、非常に腰の低い方でしたが...
その VSS コネクタですが、うちのプロジェクトが大きめだったこともあるのですが、3日間くらい Core2 の私のマシンの CPU ファンがうなりっぱなしでようやく EPM に食わせる XML ができるという感じでしたから、周囲から次第に白い目で見られるようになって、採用できずにそのままになっています。
当時対応するチケット管理システムが Bugzilla とか 影舞とかで Trac がはいっていなかった (当時 Redmine は多分なかったと思います) のも痛かったです。
うちが EPM ツールを使えてない理由は、かように単純なものだったので、その後あまり聞かなくなった理由は非常に気になっていました。
投稿: 柴田雅之 | 2011/07/15 09:22
柴田雅之さん
EPMツールは一度入れようとしてすぐに断念しました。
インストールが難しいだけでなく、ユーザインターフェイスも実際の使い勝手も、開発者が実際の開発に役立つような発想で作られていないからです。
「ツールを使う人は誰なのか?」という初歩的な問いに答えていないと思いました。
オブジェクト指向やAgile開発のように、現場の開発者が試行錯誤して生み出したアイデアが結局生き延びているのは、他の開発者も同様に役立つという事実があるからだろうと推測してます。
投稿: あきぴー | 2011/07/15 23:31