マージ処理はコードを理解すべきである~チケット駆動開発の発展形
InfoQにマージツールの記事があったのでメモ。
【元ネタ】
関数を理解するマージツール
これは凄い。ソースコードを理解するマージツール「Semantic Merge」 | ソフトアンテナブログ
彼らの動機としては「優れたブランチは優れたマージから」という信念がある。
つまり、「タスクごとのブランチ」の考え方(トピックブランチ、フィーチャブランチなど)を強く支持しているが、結果的にブランチが乱発されてしまう弱点があり、もっと良いマージ機構が欲しかった、と。
だから、「マージ処理はコードを理解すべきである」という方針で、ツール自身がマージをサポートしてくれればいい、と。
Eclipseがリファクタリングをサポートしているように、ツールでもっと簡単にマージをサポートしたいのだろう。
彼らは、タスクごとにブランチ(Branch per Task)というブランチパターンを支持している。
つまり「イシュートラッカ(ITS)上のタスク単位で作業用のブランチを作る」アイデア。
イシュートラッカ(ITS)のエントリ(チケット)はひとつの変更、ひとつの新機能(バグ、機能、課題など)ごとに作られるから、それぞれにブランチが作られることになる。
この考え方は、ITSのチケット単位にタスクブランチ(トピックブランチ)を作ることと同義だ。
「チケット無しにフォークを許さない、マージを許さない」発想につながる。
この手法の利点は、真の並行作業になることから、trunkの品質を維持でき、新機能開発のためのコードフリーズがなくなるため、もっと素早いアジャイルな開発が実現可能になることだ。
ブランチとマージは表裏一体にある。
マージ機構がもっと強力になれば、ブランチがたくさんあっても構わない。
いつでも最新の機能、障害修正を取り込むことができる自信があれば、いろんな発想を実験したり、何度でもやり直しを行うこともできる。
つまり、真の意味での反復型開発をサポートするわけだ。
Gitが提供した強力なマージ機能とブランチ管理機能によって、XPが提唱したソースの共同所有というプラクティスを強力にサポートして、アジャイル開発の敷居をどんどん下げている。
開発インフラという技術がようやく時代に追いついてきたと実感している。
| 固定リンク
「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)
「構成管理・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)
コメント