This change series guides fixing god classes in the old system to make the relevant code movable to the new system, since they tie together data that will end up in different parts of the new system.

Habit: Whole Values 1 – Fix Primitive Obsession

Organization ROI: Reduce bugs that arise from miscommunciation. Create classes to unwind many common design problems. Engineer ROI: Create missing classes by following existing code.

See more...

Habit: Whole Values 2 – Collect Behaviors

Organization ROI: Decrease duplicate code and God Classes, reducing testing, implementation, and bug costs. Engineer ROI: Move code onto whole value classes from procedures that use God Classes.

See more...

Habit: Whole Values 3 – Relax Design Stresses

Organization ROI: Reduce implementation costs and bugs that arise from complex methods or God Classes Engineer ROI: Remove duplication in code that uses God Classes.

See more...

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.

See more...

Habit: Split God Classes 2 – Pull Out Concepts

Organization ROI: Detangle one set of use cases from the God Class cost overhead. Reduce bugs arising from multiple pieces of code sharing a God Class. Engineer ROI: Get one God Class responsibility off the God Class.

See more...

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.

See more...

Habit: Explicit Data

Organization ROI: Reduce bugs due to data sharing. Engineer ROI: Make it easier to reason over the data used by each section of code.

See more...

Habit: Power Combos

Organization ROI: Reduce risk in changing designs. Engineer ROI: Complete extensive design changes as a series of small steps.

See more...