Looking for the better way to combine deep architecture refactoring with feature based development
- by voroninp
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:
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?