Managing Technical People: Innovation, Teamwork, and the Software Process