I understand the reason behind replacing older coders. However, I think software companies like Microsoft should have transitional programs to better help seasoned programers proceed with their careers.
There are plenty of transition paths I think. For example, education, research, legacy support, etc.
When I was 25 I preferred recruiting 25year olds. Now that I'm 35 I realize I didn't know squat when I was 25 so prefer to recruit at least 35year olds. I suspect this story will repeat when I'm 45.
What could possibly be the reason to avoid older coders? You probably don't want the 85-90 year olds but 40? 50?
What you want to avoid are those who stop evolving and stop being curious. Those who go to the office and apply what they learned a decade ago but doesn't learn anything new. That can happen at any age. Evolving doesn't require putting in 12hour days. Also it's likely cheaper for the company to encourage employees to grow within their field than to move all "old" people to supporting roles.
If you could learn a new programming language when you were 20 it should be easier, not harder, to do at 50. Experience should ensure that.
Just wanted to quote this for truth. Every couple of years upon evaluating myself I recognize I know more, but likely still squat about certain subjects, and laugh at my past self because it would think it knew a lot. Figuring out you don't know as much as you thought seems the key to really learning more. And that idea in turn has led me to be really wary of people claiming (as in, yelling out loud sometimes) to be wise. If you claim that there's a good chance you aren't. I'm definitely not. But at least I know it..
I'm currently hiring a dev team for a startup, and found myself focusing on the older candidates simply because they asked the right questions about the product, project and existing tech burden. I need someone who's been to war and seen the elephant, and many younger coders just haven't been able to quickly model the problem space (in terms of the larger project) quickly and concisely.
One thing that experienced devs do well is pattern matching, though for many at the cost of flexibility. By way of analogy -- and I do not mean this to be taken at all literally -- you could consider the use of the cerebrum and cerebellum in physical activity. Repeated practice of physical activities embeds the patterns in cerebellar memory, which can access them quickly; novel activities involve the slower but more flexible cerebrum, which often results in "overthinking" a shot or a move. Likewise, I think that long familiarity with a discipline results in rapid pattern matching in experienced workers,allowing them to quickly model new situations in the context of existing ones, but this also leads to the use of known-successful solutions, rather than exploring new spaces. (Org theory posits a similar effect in homogenous groups, which is one reason why the inclusion of women and minorities on corporate boards seems to improve governance and performance.)
Really, there are roles for both kinds of devs, and I think we're shorting ourselves by not working hard to integrate inexperienced but flexible developers with experienced and combat-hardened ones.
That may be one part, but somehow that should rather mean that most big-city corps should hire really good 40 year olds to telecommute and be paid less than the 20 year olds in whatever tech mecca this may be taking place. But that doesn't seem to happen in my experience.
Another reason of course is the ever changing tech landscape; when I had 5 years under my belt C# had existed 5 years and I had 5 years of C# experience. I had more pro experience with C# than anyone, including of course most of those a lot older than me. The takeaway is that the exaggerated focus on experience with specific tech keywords means that young age often trumps longer industry experience, simply because the young dev may have started just as Tech X took off. This obsession with resume keywords will go away as our industry matures. Companies that don't realize that won't be around long.
But the ROI on the productivity of a seasoned 50 year old can be far higher.
Bean-counters who think 'Don't spend money' is a good way to run a corporation are not only clueless, they're immensely destructive.
The correct approach is 'Don't spend money unless you get a good return on it.'
In some situations, the expensive choice is the rational one.
Unfortunately hiring policies aren't rational. There are all kinds of issues of power, politics, face, ego, image, prestige, accountability, and so on to consider.
These are the real root causes of ageism and sexism.
Seriously? The movie biz is known for being brutally ageist. And it's not just a problem for actors, but even for writers and other behind-the-camera folks, who find work drying up as they grow older, e.g.:
I think you need to look a little harder at other industries. Scorcese isn't an average person, any more than Ken Thompson (71, still works at Google).
There are plenty of transition paths I think. For example, education, research, legacy support, etc.