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