This change series will allow parts you want of the old system to be moved to the new system, leaving behind the parts you don’t want.

Habit: Make Methods Simple

Organization ROI: Reuse code more.

Engineer ROI: Separate parts of a method, unwinding their dependencies and testing each part separately.

Habit: Split God Classes 1 — Extract One Purpose

Organization ROI: Prevent bugs due to data sharing between adjacent parts of the code. Improve one technical debt without having to fix it all at once.

Engineer ROI: Reduce God Classes without waiting for full-system analysis.

Habit: Split God Classes 3 — Break Inbound Dependencies

Organization ROI: Prevent bugs due to data sharing between remote parts of the code. Update remote parts of the code separately.

Engineer ROI: Split one set of code that works with the God Class to use something simpler.

Habit: Untie the Knots

Organization ROI: Reduce bugs arising from spooky action at a distance. Implement stories without touching as much semi-related code.

Engineer ROI: Disentangle the less common coupling issues.