I recently came across an article about Msdn Branching and Merging and SCM
The article states 'Big Bang Merge' is a Fusion Antipattern:
Big Bang Merge - Delays branch merge to the end of development effort and attempts to merge all branches simultaneously.
I've noticed that this is very similar to what my company is doing with all of the developed lines of development.
I work in a very small company with a person who acts as the final review and merger authority. We have 5 developers (including me), each of us gets our own task / bug / project and we branch each branch from the current trunk (Subversion) and then do the development work in our branch, testing the results, writing the documentation If necessary, conduct a peer review and feedback loop with the other developers and send the branch office for review and consolidation in our project management software.
My boss, the sole person in charge of the trunk repository, will actually postpone all branch checks to a point in time where he will perform as many checks as possible. Some branches are thrown back for improvements / corrections, other branches merge directly with the trunk, some branches are thrown back due to conflicts, and so on.
It is not uncommon for 10 to 20 active branches to be in the final validation queue to merge into trunk.
Also, conflicts in the final review and merge often need to be resolved because two branches were created from the same root but the same code was changed. In general, we avoid this by simply diverting the trunk and reapplying our changes and resolving the conflicts, then submitting the new branch for review (reparation through bad cast).
Some direct questions I have are
Do we show exactly the anti-pattern called "Big Bang Merge"?
Are some of the problems due to this merge process?
How can we improve this merge process without increasing the bottleneck on my boss?
Any other insight into this situation would be welcome.