Retaining Experience
A long time ago, in a universe far away, a personnel guy (perhaps in a moment of weakness) related a high truth of corporate hiring policies: "Headcount is interchangeable: You make no difference." Basically, he held that when you needed to get a job done, you simply hired enough engineers with the requisite skills.
Some hallway discussions I overheard at ESC represented much the same attitude from the other side of the paycheck. It seems those attendees regard themselves as employable nearly anywhere and show little loyalty to their current employer. That they believe employers evince little loyalty to them goes without saying, I suppose.
As I see it, though, the core problem comes down to the way the familiar management axiom "Employees are our most valuable resource" plays out against relentless cost cutting. A service business, which software development surely is, has no other resource: The CVS code database won't correct itself or ship itself out the door. Unfortunately, there's little attention paid to keeping good employees around for the long term.
A friend recently related the tale of a group working on a project deemed critical to their company's future products that were told an impending layoff would, surprisingly, include some of their members. In an equally surprising show of solidarity, the entire team quit and, as with any key group, their project knowledge simply disappeared.
Purchasing large lumps of knowledge from vendors puts you at their mercy, as you gain no insight into how your system really works. Devoting sufficient resources to develop your own staff's experience means that you must also trust them with your corporate future. On the other hand, that's already true, so perhaps it's just admitting that people really are your most valuable resource that's so difficult these days.