It takes general and specific skills, in each person.
If you know software, you know that it takes a long time to really, truly master a language or technology. Analogies include learning a language, an instrument, or a sport. In a symphony, no one is expected to know all the instruments; rather, each person is expected to be exceptional in playing a single instrument. We hire such people in the software world, people who are exceptional in what they know, as well as the related technologies surrounding their area of interest. In addition, most are generalists, who can quickly learn and apply other technologies much like a skilled athlete can pick up another sport quickly. However, they are experts in only a few areas, so that their focus and, as a result, their skills are not diluted.
It takes continuous education and improvement.
Everyday, we are teaching each other through peer code reviews, meetings, wikis, the web, blogs, and via consistent action. People who are passionate about what they do cannot stop learning.
It takes leadership that's committed to the team.
Our team members have full support of the leadership and management teams to learn, try new things, and help others improve. Whether it's a conference, books, a new tool, or some time, we provide it. Our leaders coach people throughout the organization, and constantly ask for feedback so they can improve. We promote those who act according to our C4TM principles (Communication, Commitment, Care, and Consistency). If there's a bad apple in the company, which happens in just about every company we've encountered, the bad apple gets removed; we don't punish everyone else because of the problems of a single person.
It takes good hiring practices.
We have a lot of tools in our interview kit, including: multiple interviews with people throughout the company, code reviews, code exams, logic puzzles, assessment of live work, and more. Our goal is to find people who are passionate about what they do, take ownership of commitments, communicate exceptionally well, care at the personal level about outcomes, and care about you, their work, and their peers. Though the attraction is there sometimes to hire superstars, we don't if they fail to communicate well or have confused the difference between arrogance and confidence.
