【公開】チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ #devsumi #devsumiB
デブサミ2013のセッション14-B-5「チケット駆動開発の本質」で講演した資料をCCアトリビューションライセンスで公開します。
タイムテーブル:Developers Summit 2013
今年のデブサミは参加者がとても多かったです。
関係者の方に聞くと、今日だけで2500人もの開発者が訪れたらしい。
10時前の開演時には、300メートル近い長蛇の待ち行列が並びました。
今回の講演では@sakaba37さんと、4年以上に渡るチケット駆動開発の経験を元に、チケット駆動開発の本質と今後の方向性について語りました。
僕は、現場の経験知や暗黙知として流通しているノウハウをパターン言語という形式知にまとめて、再利用できるようにするだけでなく、チケット駆動開発の本質に迫りたいと考えています。
今回は、そのアイデアの一部を披露しました。
また、パターン言語以外にチケット駆動開発を使って考えていることは、GitやMercurialを使った構成管理との連携です。
今日の講演で興味深かったのは、【14-A-7】ソーシャルコーディング革命後の開発委託の世界~QA@ITの事例です。
キーワードはGitHubが生み出した「ソーシャルコーディング」。
Gitは分散バージョン管理ツールという側面だけでなく、pull requestというマージ手法によって、オープンソースで広く流通しているパッチの取り込みをメールベースではなくWeb上で行えるようにした点が大きいです。
その意味は、コミッタとユーザないしコントリビュータという一方的な権力関係ではなく、開発者はいつでもフォークしてパッチを好きなように作り、そのパッチをコミッタへマージしたいという意志をpull requestという手段を通じて表明する点にあります。
この手法によって、ソフトウェアを開発する関係者がコミッタだけでなく、ソフトウェアを利用するユーザも巻き込んで開発できるようになり、「顧客を巻き込んで開発する」アジャイル開発の流れにも沿っています。
チケット駆動開発の文脈では、trunkからのフォークは、トピックブランチないしフィーチャブランチであり、それはチケット単位でもあります。
そしてpull requestされてトピックブランチが終了する時、チケットもCloseされるという運用になります。
チケット無しでフォークやプルリクエストは許さないというチケット駆動の新しい運用方法: プログラマの思索
この手法の利点は、チケットとブランチが密接に絡むことによって、チケット駆動開発の効果の一つであるトレーサビリティを強化できることもあげられます。
Jiraでは、フォークとマージの時点でチケットを自動的に登録したり、完了できるような仕組みがあるようで、興味深いです。
バージョン管理という枯れたツールが、ここ数年大きく開発現場を変化させている事実を痛烈に感じました。
| 固定リンク
「IT本」カテゴリの記事
- チームトポロジーの感想~大規模アジャイル開発でも組織構造は大きく変化する(2025.01.01)
- 「世界一流エンジニアの思考法」の感想(2024.12.08)
- アーキテクチャ設計はベストプラクティスを参照するプロセスに過ぎないのか?~Software Processes are Software, Too(ソフトウェアプロセスもまたソフトウェアである)(2024.09.22)
- 「システム開発・刷新のためのデータモデル大全」を読み直した感想~親子頻出アンチパターンは初心者モデラーに多い(2024.08.31)
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
「プロジェクトマネジメント」カテゴリの記事
- チームトポロジーの感想~大規模アジャイル開発でも組織構造は大きく変化する(2025.01.01)
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart2~プロセスのレイヤと達成目標のレイヤが異なる(2023.02.18)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart1~CSFはWBSみたいなものと捉える(2023.02.14)
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
「Redmine」カテゴリの記事
- Redmineは組織のナレッジ基盤として実現可能なのか~島津製作所の事例を読み解く #redmineT(2024.12.29)
- 「RedmineのUbuntu+Docker構築への移行」の感想 #redmineT(2024.11.24)
- 第27回redmine.tokyo勉強会の感想 #redmineT(2024.11.10)
- Redmineのバージョン設定でプロジェクトの設定方法が違う(2024.06.23)
- ウクライナのRedmine開発者が作ったRedmineテーマやプラグイン(2024.06.18)
「ソフトウェア工学」カテゴリの記事
- チームトポロジーの感想~大規模アジャイル開発でも組織構造は大きく変化する(2025.01.01)
- Redmineは組織のナレッジ基盤として実現可能なのか~島津製作所の事例を読み解く #redmineT(2024.12.29)
- アーキテクチャ設計はベストプラクティスを参照するプロセスに過ぎないのか?~Software Processes are Software, Too(ソフトウェアプロセスもまたソフトウェアである)(2024.09.22)
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「システムアーキテクチャ構築の原理」の感想(2024.05.06)
「プロジェクトファシリテーション」カテゴリの記事
- 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)
「チケット駆動開発」カテゴリの記事
- Redmineは組織のナレッジ基盤として実現可能なのか~島津製作所の事例を読み解く #redmineT(2024.12.29)
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)
- チケットはデータでとプロセスの二面性を持つ #redmine(2023.12.24)
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
「Agile」カテゴリの記事
- チームトポロジーの感想~大規模アジャイル開発でも組織構造は大きく変化する(2025.01.01)
- 「世界一流エンジニアの思考法」の感想(2024.12.08)
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
「パターン言語」カテゴリの記事
- アーキテクチャ設計はベストプラクティスを参照するプロセスに過ぎないのか?~Software Processes are Software, Too(ソフトウェアプロセスもまたソフトウェアである)(2024.09.22)
- パターンカタログよりもモンスターカタログの方が面白いね #jasstkansai(2023.06.24)
- XPエクストリームプログラミングは偉大だ~時代がその設計思想に追いついた(2022.11.16)
- 「大人の学びパターン・ランゲージ」の感想~知識と経験を行ったり来たりするタイミングを大切にする(2022.06.05)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
コメント