Coding ability is nowhere near enough. Programers need to be good communicators. They need to be articulate, creative, caring, problem solvers. They need to be able to focus deep and long. They also need to be able to talk to business analysts, customers, and managers. They need to be able to see deep details, and also get the big picture. It's a tough mix of attributes to find.