Today I was struck by the similarities between rewriting code (as opposed to refactoring it) and how many companies reorganize.
When I was a young programmer and the code I had written was a mess I thought that if I just got the chance to rewrite everything it would then work better. Out with the old, and start on a blank sheet.
Growing older and wiser I realized this doesn’t work. There is always too much knowledge baked in the old stuff, and the only way out is to refactor in baby steps. Extract a method here, test the results, reflect, extract class, test results, reflect etc.
Managers in organizations often tend to use the rewrite approach to reorganize, rather than refactoring the organization.
That might prove them effective, but it rarely improves the working conditions. My advice is to give the refactoring power to the people working in the organization, the people that knows the problems first hand. Then things will likely improve, step by step. Just as when refactoring code.