I've seen a number of posts here and elsewhere on recruiting top developers, but it seems one of the great challenges of building a strong dev team is keeping talent.
For anyone who is running a team (or has), what have you done to keep talent?
For everyone else, what entices you to leave and what can be done to keep you on board?
1) Tell me what you want (You'd be surprised how many managers do not know the answer to this)
2) Leave me to my work (Almost impossible to find)
3) Periodically ask me if I need anything and provide what I ask for (I've had requests for lint and Boundschecker turned down. Both can rescue a bad product)
4) Periodically tell me what others are doing in case I need to adjust my strategy (You're a manager. Manage!)
5) Tell me immediately when conditions change (See #4)
6) Pay me reasonably well (No brainer)
7) Be at least as flexible as you expect me to be (You can ask me to stay late at the last minute. Things come up in life at the last minute too.)
8) Don't drown me in petty bullshit! (Expense reports, time reports, tracking others work that relates to mine, meetings about use of the bathroom)
9) Stop worrying me about how much time something takes unless it's obvious I'm slacking. You hired me, trust me enough to do the work without having a nanny.
10) Don't give me shit insurance and then complain when it takes 3 Dr. visits to accomplish in an HMO that would take one visit in any other plan.