Looking for the better way to combine deep architecture refactoring with feature based development

Posted by voroninp on Programmers See other posts from Programmers or by voroninp
Published on 2012-12-19T20:26:45Z Indexed on 2012/12/20 5:13 UTC
Read the original article Hit count: 251

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?

© Programmers or respective owner

Related posts about development-process

Related posts about refactoring