Non-local interactions cause few bugs, but those bugs are particularly hard to find and fix. This change series prevents those bugs by eliminating existing non-local interactions without making stories take longer.

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: Make Methods Simple

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

See more...

Habit: Whole Values 4 – Use in Procedural Code

Organization ROI: Leverage prior technical investments to improve broad swaths of your code base. Engineer ROI: Change the code base to use the objects you extracted from the utility class.

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 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: 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.

See more...