Improving Programming Productivity With Statistical Models