It's not easy, we are the a generation of people that love what they do and are extremely good at doing what we do. I don't think a generation ever worked as hard as we do, and we think about things that employees historically where not used to think about: business, marketing, company vision & values, branding, and messaging of our products. We think about how that impacts our lives and how we can leverage the rules that exist in our world to create better products that have a social impact.
That's why we care about concepts like open-source, and we try crazy hard to monetize these concepts which are both fair and allow for sustainable progress. It's not always an easy battle, but that was the topic of my JSConf talk this year, so you should check the transcript out when we publish it in the Nodejitsu blog.
In here I just wanted to share a question; and the conclusion I got. I've seen people ask this question a million times, especially in Silicon Valley. I never agreed with any of the answers, mostly from clueless y-combinator type founders.
Q: How do you stop your best people from leaving your team?
I think the answer is "Ask them what do they want to do next".
If that doesn't include your team, try your hardest to offer a challenge to this person that is exactly what she/he is looking for. If she/he doesn't know what she/he is looking for, help her/him out with that quest. Now keep asking.
If the answer included you and your team, sweet! Now you need to make sure you make them successful and help them achieve their goals. And keep asking!
What is your answer?