An industry experiment on the effects of test-driven development on external quality and productivity