I really liked this article – How To Keep Your Best Programmers. It’s not your average three paragraphs and a link, I admit. It’s somewhat of a long read. But it does a good job of explaining why people in general, and good developers in particular choose to leave or stay in the company.
It’s difficult to quote as it flows continuously, but if I had to choose, I’d use this as a teaser:
For some background, check out this video from RSA Animate. The video is great watching, but if you haven’t the time, the gist of it is that humans are not motivated economically toward self-actualization (as widely believed) but are instead driven by these three motivating factors: the desire to control one’s own work, the desire to get better at things, and the desire to work toward some goal beyond showing up for 40 hours per week and collecting a paycheck.
Frustration with organizational stupidity is usually the result of a lack of autonomy and the perception of no discernible purpose.
Not that I am a good programmer, but it helped me understand some of my own career jumps…