| Let's consider the following hypothetical situation... You've started at a SAAS business that has been operating profitably for five years. As you get exposed to more of the source code, infrastructure, processes, etc., the more technical debt you discover (lack of separation of concerns, tight coupling, no automated testing, no automated build or deployment pipelines, etc.). You reach a point where you have no other choice but to suggest that the company declares technical bankruptcy and looks to rebuild. What strategy do you take to rebuild the system? Do you create a completely isolated project that is developed behind the scenes until it's ready? Do you attack each layer in a horizontal fashion (front-end(s), back-end(s), persistent data, etc.)? Do you rebuild each feature/feature-group/page and cut across the full-stack (i.e. in a vertical fashion)? Let's say that you also have to make UX changes, either during the rebuild or afterwards. Let's also say that there is a web app front-end and a mobile app front-end, but you are considering merging the mobile app into the web app (think progressive web app). |