I’m 32 and I have a different perspective.
First of all, we definitely have an age and culture problem, but it’s not necessarily a constant of the industry. When the VC tide is high, like now, the market is flooded with inexperienced and mediocre developers, and the industry focuses on making huge teams of mediocre or incompetent developers work together to produce something, no matter how inefficiently, with processes like “Scrum” that are designed to turn the marginally unemployable into the marginally employable, and with open-plan startup cultures designed to create an esprit du corps around macho-subordinate overwork, under the philosophy that one can overcome mediocre engineering and ignorance by just working more hours. This creates a climate that older programmers find hostile, and it often pushes them into management, or out of the industry. It’s not very common that programmers get fired for turning 40. I don’t think that it ever happens like that, actually. It’s hard to find a suitable corporate position after 40, but there’s high demand for consultants, and gray hair becomes an asset at that age. On the other hand, it’s quite common to see very capable programmers get fed up and quit.
Right now, companies (and the VC-funded “startups” are the worst) solve technical problems by hiring huge numbers of developers, in the hope that the few good ones will rise to the top. Hire 50 kids out of college, and you’re likely to have a few who are actually very capable, even if your hiring process is borked. This appeals to MBA types who’ve had it drilled into them that reliance on talented individuals is bad and that they should build machinery that can run on ambient mediocrity. The problem is that it doesn’t work very well. If you want to build decent software, you need those high-talent people. Also, the only reason why the “wide net” strategy works is because, out of 50 inexperienced young developers, you are going to have 3 or 4 who are quick learners and very strong and end up carrying the team… but if you have a nasty culture, you’re going to lose them and be stuck with the negative-productivity Scrumdrones (“Dead Sea Effect”).
On the other hand, when the VC tide goes out, we’re likely to see a flight to quality. This might make it unduly hard for young people to enter (or, for those not yet established, stay in) the industry, especially the “self-taught” programmers who lack college degrees. This is unfortunate because there are a lot of good programmers who never went to college, or who left for economic reasons. On the other hand, if it kills off the culture of youthful arrogance and anti-intellectualism, I suppose that that could be a good thing on the balance.
I don’t think that our age pyramid is prima facie a bad thing. What does bother me is that there are so many unskilled programmers who don’t really want to learn. (I don’t lump all young programmers into this category. There are as many good young programmers as ever, if not more. There are just many more bad ones than there should be.) Instead, they just want to sling some code and duke it out for leadership roles, regardless of their qualifications, on the presumption that they’ll be hand-picked for “investor contact” (which isn’t always as valuable as one might think) and be Founders in 3 years. Those people are annoying, and an industry that is geared to run itself based on them, with aggressive open-plan cultures and infantilizing “Agile” practices (I know, I know, Agile was supposed to be something different until it was bastardized by the management philistines, but Agile in practice is pretty damn toxic) is a really unpleasant place to be.
I think this is an incomplete picture, least of all because a lot of the older developers come from a background very different from what’s actually in the trenches these days.
For example, Uncle Bob is a huge proponent of professionalism and not letting your company down. The fact of the matter is that in a startup, or many enterprise software companies, there is no reciprocal arrangement.
Gone are the days of a stable career. Investing in your devs—hah, better study up in your free time. Regular performance reviews from startup management? Freedom to talk about your work and moonlight? Double hah.
Further, a lot of these older folks have a serious disconnect on a cultural and personal level.
Swearing is evil, but not asking people to work late. Developers are still “programmers”, and are treated as interchangeable cogs. Developers don’t have a life outside of work, and can be called up at any time. Student loans? What’re those? Why, that’s why you’re working, right–in their day, you could work and go to school and totally be financially independent in a few years…what’s that, a raise? That’s nuts. You work for the company–why do you care about equity and options, that’s management’s problem. Why does everybody want a chat? Why are you running Netflix/Facebook/HN in the corner of your screen instead of working? etc. etc.
I really hate playing the demographics card here, but the odds are that these nice old engineers that Uncle Bob is advocating here are going to be stodgy old white dudes, folks who grew up and learned their craft in a time with shitty cultural and emotional values.
I’ve had my run-ins with that nonsense, and it can be a big problem.
I agree that that’s a problem. Most companies are shitty and don’t deserve any loyalty. Right now, the quality of companies (as employers) is so low that basic decency and a bit of forward thinking (like getting away from open-plan offices and business-driven development, and actually trying to fucking excel) would put a company way ahead of the pack.
Some of them have a sense of entitlement, because they’re established and in executive positions and expect the young'uns to suck it up and throw down hours. Entitlement and generational obnoxiousness go both ways, regardless of what people on one side want to say about the other.
I don’t think that that’s the norm, what you’re saying. Many people are leftist when they’re young and poor and move to the right when they’re old and rich; it’s just that they’re selfish. Same garden-variety moral mediocrities in both ages. They aren’t interesting.
Swearing is evil, but not asking people to work late. Developers are still “programmers”, and are treated as interchangeable cogs. Developers don’t have a life outside of work, and can be called up at any time. Student loans? What’re those? Why, that’s why you’re working, right–in their day, you could work and go to school and totally be financially independent in a few years…what’s that, a raise? That’s nuts. You work for the company–why do you care about equity and options, that’s management’s problem. Why does everybody want a chat? Why are you running Netflix/Facebook/HN in the corner of your screen instead of working?
Software engineers are really bad at negotiating for themselves. They accept open-plan offices and low salaries and cookie-cutter jobs because… they refuse to fight for themselves, and every time a union is discussed, they bristle. I really think that programmers need to start taking responsibility for our predicament. Those big bad businessmen are bad to us because… we let them be. We let them walk all over us and we reject even the possibility that a collective bargaining arrangement or a guild system might improve our lot.
Dude, you’re off the mark here. I’ve seen people driven out of software companies by racist and sexist comments, and it’s not the 50-year-olds making them. It’s frat boys, usually in their 20s and 30s. Someone who’s 50 right now was my age in 1997 and graduated from high school in 1983. That’s not exactly the era of Jim Crow.
Racism and sexism probably aren’t worse in the young than in the “old” (here, meaning 40 to 60) but there are still a lot of people with shitty values, and the young ones are really obnoxious about it. You don’t see 50-year-old programmers telling black women that their natural hair is “unprofessional” (yes, this really happened to a good friend of mine) and you don’t see them hitting on women at work. That comes out of the fucking frat-boy sector that doesn’t fucking belong in civilized company.
I think that the country and the values are becoming worse, for the record. We’re still progressing on gender and racism, but not nearly as fast as before, and we’re getting worse in terms of classism and general stupidity and uncouth behavior. Open-plan culture really brings the worst out in people.
Excellent points–on the last part re: demographics, I was thinking more in terms of how available they are to talk with employees, how open they are to criticism, that sort of thing…hallmarks of old while male middle class/middle management. Your examples of racism and discrimination flat-out never occurred to me as something to attribute to them, because frankly anybody in a senior position acting like that should be sorted out fastest. Good points.
I will have to disagree with you on flirting at work–if we accept the idea of long hours, of company-as-community, of gender-balanced workplaces, then it kind of follows that the puritanical idea of no workplace romance and courtship kinda is stilted and unfair. That’s no excuse for uncouth and rude behavior, mind you, but pretending offices are somehow subspaces that ignore basic human social interactions isn’t quite right either.
Again, I generally think you’re correct. :)
I think you guys are losing sight of the point the author is trying to make. Sure, older developers may not be as up-to-date on the latest JS framework, and maybe you have a problem with their culture, but they do have valuable language-agnostic knowledge built up from years in the profession that can be passed down to younger coders. I know this from experience, having paired with coders in their mid-50’s and 60’s. I would not have minded learning from Dennis Ritchie about C or Unix-like systems. Sure, things have advanced since the time he was actively coding, but that doesn’t make his knowledge obsolete.
I think you guys are losing sight of the point the author is trying to make. Sure, older developers may not be as up-to-date on the latest JS framework […] but they do have valuable language-agnostic knowledge built up from years in the profession that can be passed down to younger coders.
Well-said, and this sort of knowledge, whether it’s the low-level stuff that mystifies people who’ve never used C or the craftsmanship/architectural knowledge, is undervalued in the typical, anti-intellectual, corporate software climate. Experience and knowledge matter, no matter how much MBAs try to say otherwise and cram 50 inexperienced and mediocre programmers together to work in open-plan offices.
I’d argue that things have changed a great deal in that time. The power available, at the very least, has changed by several orders of magnitude, the applications have changed, and so on and so forth.
There are/were some great older coders, sure Dennis Ritchie, Rob Pike, Steve Wozniak, and so on…at the same time, for every one or two of them, there’re thousands who just kinda surfed through MS certification classes and academia and whatnot. There are absolutely people I’d love to work with too, but let’s be honest: a we’re more likely to end up with the bad ones, because there aren’t enough good ones to go around.
In some fields, say finance, embedded development or chemical engineering numerical coding, things are maybe not so different.
There are absolutely people I’d love to work with too, but let’s be honest: a we’re more likely to end up with the bad ones, because there aren’t enough good ones to go around.
This is true of the young and old.
The appeal of the young to the MBA fuckheads is that there will occasionally be one very good programmer who doesn’t know what he is yet, and who’ll accept a crappy salary and bad work conditions. MBAs play for status differentials (hiring a 7 and treating him like a 4 is a 3-point win) rather than money differentials (hiring a top programmer and getting $2.5M of value for a $300k salary is a $2.2M win).
This is actually a stupid economic strategy, because while that young catch might deliver $250k of value for only $70k, hiring an experienced programmer at market salary (or even 50% over market salary) is much more of a gain, because the really good programmers are the actual bargains, and it’s not even close. But these MBA idiots don’t realize that. It’s like a poker player who’s aiming to win hands rather than win money.
This status metric is odd to me…are you suggesting literally hiring a 7 and treating like a 4 for the sole purpose of getting off on the mistreatment?
Not “mistreatment”, but “bargain”, as they see it. Rather than financial profit, they’re more interested in the status profit. This isn’t surprising because MBAs can’t actually tell what programmers are worth. It’s not conscious.
Ok, I think I see your point there, but I guess that just boils down to the fact that there are a lot of bad coders out there, both then and now. I don’t think age necessarily makes a difference, except that great coders seem to get better with age.