Productivity of Test Driven Development: A Controlled Experiment with Professionals