【公開】チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ #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では、フォークとマージの時点でチケットを自動的に登録したり、完了できるような仕組みがあるようで、興味深いです。
バージョン管理という枯れたツールが、ここ数年大きく開発現場を変化させている事実を痛烈に感じました。
| 固定リンク
「Agile」カテゴリの記事
- 「プロエンジニアになるための「アジャイル開発」再入門」が素晴らしい(2018.04.04)
- カイゼンジャーニーの感想~アジャイルサムライの再来かな(2018.03.22)
- アジャイル開発とウォーターフォール型開発の違いについて再考(2018.03.21)
- アジャイル開発にはモデリングや要件定義の工程はあるのか、という問題とその周辺(2018.01.01)
- AgileTourOsaka2016の感想~エバンジェリストは市場を作る人である(2016.12.05)
「Git・構成管理」カテゴリの記事
- チケット管理システムは作業の構成管理と同じ(2017.04.03)
- 気象庁の数値予報課におけるRedmine利用事例(2017.05.22)
- セマンティック・バージョニング、チームの依存関係のメモ(2017.08.20)
- ソフトウェアの複雑性は本質的な性質であって偶有的なものではない(2017.05.05)
- 第12回東京Redmine勉強会の感想 #redmineT(2017.05.14)
「IT本」カテゴリの記事
- ソフトウェアの複雑性は本質的な性質であって偶有的なものではない(2017.05.05)
- 「「愚直」論 私はこうして社長になった」の感想(2017.07.02)
- 「量子コンピュータが人工知能を加速する」の感想(2017.07.02)
- 【告知】「Redmine実践ガイド 理論と実践、事例で学ぶ新しいプロジェクトマネジメント」がついに出版(2015.06.14)
- 書籍「実践反復型ソフトウェア開発」へのフィードバック資料のリンク(2014.11.24)
「Redmine」カテゴリの記事
- Redmineの直近の課題~競合ツールGitlabに対抗できるか(2018.04.25)
- AstahのRedmine連携プラグインが公開されました(2018.01.18)
- 複数Redmineの内容を一つのRedmineに集約して見る方法(2018.03.16)
- RedmineもOSLC規格を導入してトレーサビリティを強化すべきか(2018.03.12)
- Redmineをもっと強化できるポイントpart1~上流工程のトレーサビリティ強化(2017.11.30)
「ソフトウェア工学」カテゴリの記事
- SwaggerでWebAPIドキュメントをExcel仕様書から脱却するアイデア(2018.03.29)
- 製造業の品質管理の背後にあるSDCAという考え方をソフトウェア開発に適用できるのか(2018.03.23)
- 静的ジェネレータを使ってExcelマニュアルをWeb公開するアイデア(2018.03.21)
- 安全性解析手法STAMP/STPAセミナーの感想(2017.12.27)
- テスト消化曲線とバグ発生曲線のパターン診断(2010.02.28)
「チケット駆動開発」カテゴリの記事
- 第18回Redmine大阪の感想 #RedmineOsaka(2018.02.04)
- 気象庁の数値予報課におけるRedmine利用事例(2017.05.22)
- チケット駆動の罠~複雑さはチケットの粒度に関連している(2016.12.28)
- Redmineのアンチパターンは2種類に区別できるのではないか(2018.02.21)
- 第13回東京Redmine勉強会の感想~『Redmineの今と未来』 #redmineT(2017.11.19)
「パターン言語」カテゴリの記事
- AgileTourOsaka2016の感想~エバンジェリストは市場を作る人である(2016.12.05)
- 「ビヨンド ソフトウェア アーキテクチャ」は買い?(2015.08.25)
- ドメイン駆動設計の意義~MVCモデルの後継、パターン言語で語られる、ソフトウェアプロダクトラインの再構築(2013.12.03)
- 【公開】第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」 #47redmine(2012.11.10)
- 現場の経験知をパターン言語にするコツが分かった #agileto2014(2014.10.11)
「プロジェクトファシリテーション」カテゴリの記事
- 組織行動で知られている罠(2016.06.21)
- 【公開】DevLove関西2011発表資料「障害管理からチケット駆動開発へ~BTSから始まる進化の歴史」 #devlove0917(2011.09.17)
- アジャイル開発の始め方(2011.03.26)
- アジャイル開発のインフラを支える三種の神器(2010.12.17)
- チケットの粒度と進捗ビューの関係(2011.07.11)
「プロジェクトマネジメント」カテゴリの記事
- チームの開発環境が開発プロセスの品質を向上させるのに導入されない理由(2018.03.09)
- 【公開】第30回IT勉強宴会「最近感じる日本企業のITの問題と展望~「ソフトを他人に作らせる日本、自分で作る米国」を読んで」(2014.03.07)
- プロジェクトリーダーやマネージャに問われる能力は何か?(2005.10.05)
- Redmineがいくら良くても会社の上司や経営者が見なければExcelがはびこってしまう事例(2016.07.23)
- TiDDをRubyで補強するアイデア(2009.12.26)
コメント