Problem statement:
Given:
- TFS as Source Control
- Heavy desktop client application with tons of legacy code with bad or almost absent architecture design.
- Clients constantly requiring new features with sound quality, fast
delivery and constantly complaining on user unfriendly UI.
Problem:
Application undoubtedly requires deep refactoring. This process inevitably makes application unstable and dedicated stabilization phase is needed.
We've tried:
Refactoring in master with periodical merges from master (MB) to feature branch (FB). (my mistake) Result: Many unstable branches.
What we are advised:
Link to the article (pdf)
Create additional branch for refactoring (RB) periodically synchronizing it with MB via merge from MB to RB. After RB is stabilized we substitute master with RB and create new branch for further refactoring. This is the plan. But here I expect the real hell of merging MB to RB after merging any FB to MB.
The main advantage: Stable master most of the time.
Are there any better alternatives to the procees?