The persistent devaluation of experience and skills. Any developer can tell you that not all C or PHP or Java programmers are created equal; some are vastly more productive or creative. However, unless or until there is a way to explicitly demonstrate the productivity differential between a good programmer and a mediocre one, inexperienced or nontechnical hiring managers tend to look at resumes with an eye for youth, under the "more bang for the buck" theory. Cheaper young 'uns will work longer hours and produce more code. The very concept of viewing experience as an asset for raising productivity is a nonfactor -- much to the detriment of the developer workplace.
According to one 20-year telecommunications veteran who asked to remain anonymous, when high-tech companies began incorporating more business-oriented managers into their upper tiers, these managers were not able to accurately assess the merits of developers with know-how: "It is nearly impossible to judge quality work if you never did it yourself," he says. "The latest fad was the idiotic belief that management was generic, a skill that could be taught at school and could then be sent anywhere to do any management job."
Another way in which experience is actually seen as a flaw rather than a virtue: Hiring managers are unable to map how 10 years of experience in one programming language can inform or enhance a programmer's months of experience with a newer technology. Instead, they dismiss the decade of experience as a sign of inflexibility or being unable to keep up -- an assumption that penalizes IT pros for being present during the last 10 years of their jobs.
As former Intel CEO Craig Barrett once said, "The half-life of an engineer, software or hardware, is only a few years." With this kind of attitude at the top, there's no cultural incentive to foster a hiring strategy that rewards experience or longevity.
The nature of the job. The mental stage that psychologists define as "flow" is one of sustained concentration on the task at hand and a pure focus on your attention on a project. In other words, it's the ability to work without interruption on a task until you've found a natural stopping point. A lot of developers strive for flow when they're working, which is why one meeting can blow an entire day's worth of work. It takes time to get in and out of flow and to retrace your steps to the point where you can move forward.
When it comes to flow, a 20-something worker without the obligation to pick up a child from daycare has a definite advantage over an older counterpart with a life and family outside work. And while it is explicitly illegal to ask prospective job candidates if they're married and have children, it's not illegal to infer -- based on age, résumé, and a glance at their ring finger -- whether a prospective candidate is going to be able to sink limitless hours into a development job or troubleshooting task.
And entry-level workers aren't burnt out by experience. They haven't had a decade of watching their work get torpedoed thanks to office politics. "You become more cynical about the possibilities of real rewards from your hard work after being so disappointed so often in management," says an engineer who also asked to remain anonymous. "And with advancing age, you have more responsibility, too -- which does not lend itself to that the singular focus required to complete most IT projects."
Thus, the harsh reality may be that IT jobs -- at least as they're defined now -- may be perpetually entry-level.