Some comments :
"There are numerous ways to let a developer know that you are interested in working with him long term, and not all of them involve monetary rewards. Any kind of additional “perk” goes a long way towards making people happy. These can involve non-liquid monetary assets such as stock options as well as perks like telecommuting, free lunches/snacks/sodas, good hardware, other gadgets"
"If a good developer leaves the company for a reason that doesn’t directly involve money, it is often some type of morale problem—one that may be more widespread than you think. If people aren’t happy where they work, they will often leave for equal—or even less—pay elsewhere."
"What kinds of activities am I talking about? That’s up to you. People are different and different things work for different people so there isn’t any one clear answer to that question. Many developers are computer gaming geeks as well so a quick match of Warcraft III or Unreal Tournament can serve to refresh a developer almost as well as a good nights sleep. Others don’t enjoy PC gaming, but will welcome other things, like a quick game of HORSE on the Nerf basketball hoop in the hallway."
..."However, before looking to big, broad, expensive gestures and top-down morale improvement initiatives, look at the simple things first. Things like getting to know your employees personally, using common sense in operations, and finding out what employees want from you and your company can go a long, long way towards helping you keep good people working hard in your organization."
Links : The full article