Your codebase is a big mess. Nobody really understands it anymore. Implementing new features has become painful and slow. And then, there are still those annoying bugs: They are not critical, so everybody just works around them. After years of development and maintenance, your developers demand a rewrite. Yes, there was an attempt to do this already a couple of years ago, but those guys back then just didn't do it the right way. But wait, is a rewrite really your only option? Let's see, if we can regain control over our codebase, so we can start delivering stable releases again. Instead of rewriting the whole application, we will prepare our legacy application for a component-wise modernization.