This change series makes software testing provide useful feedback on company decisions not directly related to software implementation.

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: Separate Commands and Queries

Organization ROI: Improve reusability and complexity by reducing complexity.

Engineer ROI: Code becomes much easier to test.

Habit: Test as Design Preview

Organization ROI: Tests indicate design flaws before you write the code.

Engineer ROI: Stop testing around existing designs. Re-invent design ideas without having to know the whole literature. The tests show you what to solve.

Habit: Communicative Tests 2 — Test as Spec

Organization ROI: Eliminate the disagreements between coders and non-coders for what the system should do.

Engineer ROI: Not using cucumber/fit/fitnesse! Use the native language to agree with your PO/manager, because the code is written so well that you can.

Habit: Communicative Tests 1 — Acceptance Microtesting

Organization ROI: Guarantee each feature can be changed without interactions with other features. Provide automatic trace-ability in regulated environments.

Engineer ROI: Tests drive your design to the simplest form that matches your spec and indicate when a spec change should cause a design change.