Test-driven development as a defect-reduction practice | Synapse