本来のチケット駆動開発とは何か?~アジリティと規律の絶妙なバランス #tidd
@sakaba37さんから「本来のTiDD」という言葉を聞いて分かってなかったけれど、皆さんのTwitterのおかげでようやく理解できたのでメモ。
【元ネタ】
Togetter - 「チケット駆動開発(TiDD)について思うこと」
Togetter - 「本来のチケット駆動開発(TiDD)とは何なのか?」
【1】チケット駆動開発はTracのチケット管理から生まれた。
提唱者のまちゅさんの独創性は「チケット無しのコミット不可(No Ticket, No Commit!)」にある。
つまり、成果物を更新する時は必ずチケットに変更理由を残す運用ルールを指す。
この運用ルールは、課題管理システム(ITS)と構成管理ツール(SCM)がTracではセットで提供されていることから実現した。
このルールを発展させると、成果物のトレーサビリティを実現できるので、上流工程の品質向上にも寄与することもできる。
但し、チケット駆動開発そのものはAgile開発もWF型開発も関係ない。
ITSとSCM、更にはCIツールの一体化という技術にTiDDの特徴がある。
個人的には、TiDDの本質はアジリティと規律の絶妙なバランスにあるだろうと直感している。
【2】僕は、チケット駆動開発を実践してみて、その特徴を経験できただけでなく、アジャイル開発そのものも体験することができた。
その体験では、何故アジャイル開発の運用が難しいのか、という経験も含んでいる。
僕の一意見では「並行開発」「漸進型開発(インクリメンタル)と反復型開発(イテレーティブ)」のキーワードで説明できると思っている。
更に、チケット駆動開発を運用するツールであるRedmineを通じて、今まで知られている各種のプロセスのプラクティスやアンチパターンも体で理解できた。
だから、チケット駆動開発はアジャイル開発の一つの実装形であると思っている。
【3】今の僕の興味は、チケット駆動開発を運用するツール群(ITS・SCM・CI)を使って、XP・Scrum・PF・PMBOK・ITILなどの各プロセスを実装してみて、どんな利点・弱点・課題・限界があるのか試してみたい点にある。
XP・Scrum・PF・PMBOK・ITIL・CMMI・テスト管理などの各種技法、プラクティス、アンチパターンは既に知られているにも関わらず、先人のアイデアにツールが追いついていないから、うまく運用できていない現場が多かった。
でも今は違う。
OSSの優れたツール(Redmine、Trac、Subversion、Git、Hudsonなど)、RubyやPythonのような強力な軽量言語のおかげで、プロセスの実装がやりやすくなっている。
今は、ソフトウェア開発のベストプラクティスをツールの一機能で実装してしまえばいいだけだ。
そして、TiDDのツールを通じて、ソフトウェア開発そのものの本質を理解したいと思っている。
僕の実感では、ソフトウェア開発には「一発リリースは危ない」「変化が多いので変更管理が大事なのに無駄な手続きが多い」という特徴があるように思う。
だから、WF型開発のような本番リリースが1回だけのプロセスはとても大変だし、変更管理を運用する時にアジリティと規律のバランスがとても難しいのだ。
それらツールの特徴を把握した上で、物理学者のような思考実験をしてみたいのだ。
物理学者は、複雑な自然現象をシンプルなモデルで設定するために、複雑なパラメータをどんどん削除して、本質的に必要なパラメータだけ残して、モデルから意味ある物理法則を導く。
同様に、SW開発で運用するプロセスの各種特徴はツールの一機能で実装してしまい、複雑な手続きや無駄なドキュメントを省いてしまえばいい。
そうすれば、開発プロセスというモデルはシンプルになるから、開発プロセスで本質的に必要な特徴は何なのか、が見えてくるはずだ。
すると、各プロセスのベストプラクティスやアンチパターンが見えてくるし、各プロセスの共通現象からソフトウェア開発の本質も見えてくるだろう、と思っている。
この辺りは又考えてみる。
| 固定リンク
「プロジェクトマネジメント」カテゴリの記事
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart2~プロセスのレイヤと達成目標のレイヤが異なる(2023.02.18)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart1~CSFはWBSみたいなものと捉える(2023.02.14)
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 現代日本人の弱点はリーダーシップ不足と生産性が著しく低いこと、そしてリスク許容度が著しく低いことだ(2022.12.23)
- プロセス設計はどの範囲を指すのか?~プロマネの仕事はテーラリングにある(2022.06.19)
「Redmine」カテゴリの記事
- 「Redmineハンドブック」は良い本です(2022.12.17)
- 第23回東京Redmine勉強会の感想~コミュニティは仲間から生まれて続く #redmineT(2022.11.06)
- 第22回東京Redmine勉強会の感想 #redmineT(2022.05.29)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- オープンソースERPパッケージiDempiereに対する派生開発手法の提案の資料が興味深かった(2022.04.24)
「ソフトウェア工学」カテゴリの記事
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart2~プロセスのレイヤと達成目標のレイヤが異なる(2023.02.18)
- プロジェクト管理やソフトウェアアーキテクチャの問題の背後にはトレードオフが隠れているのではないか(2023.02.18)
- デブサミ2023の感想(2023.02.11)
- ChatGPTにEclipseでEclEmmaとJaCoCoからカバレッジを出力する方法を聞いた(2023.02.01)
- DDPは品質管理に役立つのか(2022.12.13)
「プロジェクトファシリテーション」カテゴリの記事
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 「世界を動かすプロジェクトマネジメントの教科書」の概念図(2022.01.16)
- 【資料公開】チケット駆動開発の解説~タスク管理からプロセス改善へ #redmine(2022.01.14)
- 昭和の管理者の承認処理は判子押印、令和の管理者の承認処理はいいねボタンを押すこと(2021.12.31)
- チケット駆動開発のプロセスとチケット管理システムの全体像 #Redmine(2021.12.28)
「廃止Mercurial」カテゴリの記事
- GitHubはオープンソースのプロセスを標準化した(2015.06.11)
- 「反復型ソフトウェア開発」はソフトウェア工学の良書(2013.02.09)
- Mercurialに取り込まれたコミュニティ由来の機能一覧(2013.01.12)
- WordやExcelから直接Mercurialへコミットできるアドオンmsofficehg(2012.12.07)
- RedmineでSubversion リポジトリ表示を高速化する方法(2012.11.23)
「構成管理・Git」カテゴリの記事
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 【資料公開】チケット駆動開発の解説~タスク管理からプロセス改善へ #redmine(2022.01.14)
- プログラミングしてる時はでっかいピタゴラ装置を作ってるみたいな感じ(2022.01.09)
- チケット駆動開発のプロセスとチケット管理システムの全体像 #Redmine(2021.12.28)
- 第21回東京Redmine勉強会の感想 #redmineT ~Redmineは業務も組織も包み込む柔軟性がある(2021.11.28)
「チケット駆動開発」カテゴリの記事
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- プロジェクト管理の基本はテーラリング、Redmineはプロセスをテーラリングするツール(2022.04.21)
- タスク分割は親子チケットにすべきか、それともチェックリストにすべきか #redmine(2022.03.04)
- Redmineにメンション機能が入るらしい(2022.01.15)
「Agile」カテゴリの記事
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 現代日本人の弱点はリーダーシップ不足と生産性が著しく低いこと、そしてリスク許容度が著しく低いことだ(2022.12.23)
- DDPは品質管理に役立つのか(2022.12.13)
- UMTPモデリングフォーラムのパネル討論の感想(2022.11.29)
- XPエクストリームプログラミングは偉大だ~時代がその設計思想に追いついた(2022.11.16)
「Ruby」カテゴリの記事
- 「コーディングを支える技術」は良い本だ(2022.05.26)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- 「RubyやRailsは終わった」という記事のリンク(2022.01.09)
- ITの技術や知識はツールの習得と表裏一体である(2021.03.26)
- JRubyの終焉(2020.06.09)
コメント