#General Programming Test-driven development might seem like twice the work — but you should do it anyway