Corporate IT and other software development groups, as well as top management and even public relations, must get involved in creating the kind of place where technical professionals will want to work. Money alone isn't enough. Relying merely on escalating salaries and bonuses may even make the situation worse, turning the climate into one of bidding wars. The three most important things you can offer are challenging projects, inspiring people to work for and with, and a meaningful, recognized contribution to the enterprise. The way to recognize a contribution to a commercial enterprise is with a piece of the action.
Salesmen get a piece of the action.
Executive management gets a piece of the action. Those who pooh-pooh the idea of programmers enjoying some of the return on the fortunes generated by their systems exemplify the old way of thinking. The way that software is developed and maintained, the tools and equipment purchased, and even the types of projects undertaken, may have to be re-thought in terms of their impact on attracting and keeping the personnel who will create the company's future systems. Creating a modern, layered, distributed application infrastructure might be worth considering. Apart from the business benefits it might afford, it would signal to potential recruits that your company has a forward-thinking software shop.