The decline of the average level of experience in the software industry
I remember a very striking experience I had when I was at PyCon Australia 2018. Keep in mind a community conference like this has a filtering effect that tends to select for a certain demographic, people who have no interest in Python don't show up and as a result the numbers skew towards professionals and enthusiasts. So expectations of who you will run into here tend to be different from the people you'd encounter in the industry. I remember during the first day at the conference being surprised at just how inexperienced many of people I was running into were. It only hit me later that the inexperience was a direct result of the booming growth of Python and the associated influx of people this had brought. The realization of why I was running into people who were inexperienced came at dinner when someone said Python had more than doubled in adoption in 5 years. Later when I was at PyCon USA 2019 I saw the many of the same dynamics, which is likely because many of the causes of the trends are global in nature.
The only way in which there can be downwards pressure on the average duration of experience people have across an industry is by having new people join the industry at higher rates or having experienced people leave the industry at higher rates.
The meteoric rise of the tech industry worldwide has led to an influx of new people. Not only has the insatiable demand for tech talent caused people to switch careers it's also spawned a huge "coding bootcamp" industry designed to get newcomers into tech jobs as fast as possible. This has had an enormous impact on the industry because it has done a huge amount to change the demographics of those working in the industry. In the Python case if you had a doubling in the size of the industry in 5 years you now have a mathematical upper bound on the average experience of professionals at 5 years. The average doesn't really convey the gravity of the change either since it's heavier at the lower end and it's the distribution of the overall experience levels that matters. The situation with Python is just an indicator of what's happening more broadly in tech.
The impacts of a decline in the average amount of experience across an industry is huge and has far reaching impacts that extend beyond that industry. In the case of software and IT which has seen an enormous boom in demand the impacts of a decline in experience in an industry of growing importance has big impacts on the world. This is a large part of why we have computers that are thousands of times faster than before yet take twice the amount of time to complete a common task. 1
Working as an educational consultant to technology firms over the last few years has made me realize that these days many people are working with an insufficient amount of support and guidance from senior people. Terrifyingly, this situation isn't limited to those working on unimportant tasks, many mission critical tasks are now being undertaken with inexperienced staff lacking sufficient oversight from experienced engineers. This is something that external educators can help with a bit, but there's important reasons why having skilled people internally is not substitutable in many circumstances. Many companies are increasingly having difficulty with senior to junior staff ratios in programming and software engineering just because there's so many new entrants into the field. Combine this with high demand for skilled people and there's never all that many people like myself, let alone more experienced, available on the open job market. A friend of mine is an industry veteran who's been working hard for the last 25 years, the department he was working in closed partly as a result of the 2020 pandemic. But even in a pandemic situation I doubt he would remain on the open job market for more than a couple of weeks.
Some of the things we see in the modern software industry are enlightened by looking at some anthropological research.
Many tribal cultures had the idea of a "big man", this would be an individual who had influence in that tribe. In such a culture, many of which were formed in an era of extreme scarcity of goods, a way to get influence would be to bring material wealth to the tribe for which status would be conferred as a result. Economic exchange in non market societies always acts as a part of other cultural acts with reciprocity often being a key factor. In some forms this cultural structure still exists in many places.
When some of these island cultures encountered foreign industrial nations a variety of things happened. One cultural phenomenon of note was that the foreigners brought with them a huge amount of material goods which were built by an industrialized process which was at the time completely unknown to the island tribes. Some of these groups referred to these material possessions as "cargo".
In the 20th century a number of cults popped up in the pacific. After seeing foreign armies arrive with large amounts of cargo goods in a short amount of time some of the locals thought that the way to get great wealth was to get cargo. These cults devised rituals like making make runways and performing dances that looked like the movements of air traffic controllers. The idea was that if they performed things that looked like the process that brought in the cargo that they would themselves get more cargo.
While it's extremely easy for people to make fun of this sort of behaviour, it's actually incredibly common when you look more closely at how people behave. And I'm not talking about the worship of material goods, something that is still absolutely rampant today and might even eclipse that of the tribes. People only make fun of informational asymmetry situations when they are in the know, when they aren't no jokes are made. When you realize that you are almost always not in the know about a huge number of topics it definitely makes you less inclined to joke about how other people aren't in the know. Specifically when people engage in activities where they don't have a deep understanding of what's actually going on you'll see many behaviors that resemble those of the cargo cults.
With lower levels of experience being far more commonplace there's been a huge rise in cargo cult like behaviors in the industry. A large part of why this happens is due to a lack of confidence in the skills of those making decisions. Another large part of why this happens is because we as humans have a tendency to mistake progress with intelligence. Many of the people who were our ancestors were no less intelligent than us, they just were living in a different era. Those who see the actions of the island tribes being described by them being more stupid are mistaken, their actions were driven mostly a lack of experience and knowledge not a lack of intelligence. Living in an era that's seen progress from past eras it's extremely easy to think that we are in some way superior to those who came before us because we can claim general progress as our own personal successes. We see the impacts of this in tech all the time.
Decreased confidence because of decreased competence
Perhaps the biggest concern I have is situations where people with limited experience are giving themselves senior titles and running teams. Now I don't particularly care what people use for titles but there are huge consequences organizationally when seniority indicates someone can lead others and run a team. Recently I've heard of people with less than 5 years of experience running big teams and people with less than 3 years of experience being called senior. A lot of people in tech have a bucket of crabs response here where the main objection is that these people are paid too much, but likely they aren't and the real situation is that the broader industry is brutally underpaid as a whole. What is an issue though is the inadequacy of many of these people to lead a team, especially so if difficulty level of the product being made is high.
A while back there was time when the topic of Impostor Syndrome came up in many talks including the 2015 PyCon keynote. My perhaps unpopular opinion is that frequently the causes of this aren't a psychological issue for many people but are more a support issue (There are some genuinely skilled people who have difficulty internalizing their accomplishments so if this is a recurring theme please talk to a psychologist/mentor/coach for some advice since this can be a serious issue that can really hold you back). For many people in the industry a lot of this comes about because people don't have skilled people to ask for guidance or in extreme cases anyone at all to ask. Doubts are easy to have if you don't have people you can trust for a second opinion, given enough time this can turn into a serious source of anxiety which can then make things like cargo culting by copying other firms approaches a very tempting way to manage the anxiety. If you have a team with not a lot of experience then you'll end up spending a lot of time bumbling around and this can be unsettling to people who care about being good at their profession. I think when some of these people who don't have a lot of experience and end up getting rapidly promoted because the rest of their team has even less experience are put in difficult situations and sometimes can start to feel like impostors. When you know that you don't know there's cognitive dissonance, when other people know even less you'll often be found pressured to give advice and look confident if only to save the other people who are also bumbling around. If there was suitable guidance and leadership I think a lot of these problems could be avoided, but again due purely to the numbers it's hard to find enough senior people to be able to do this.
A large part of the problem in the industry is that many people are on teams that really are full of impostors which makes them feel like impostors. Teams that promote incompetent people tend to experience what Bruce F Webster calls the "dead sea effect" where incompetence causes the other competent people leave in a hurry. This leaves behind teams that are very bad for a new entrant in the industry to get started and learn the skills they need for their careers.
I think a good way for building healthy confidence, as opposed to unhealthy expert beginner type of confidence, is to enable the new developers to get the guidance they need to be the best contributors they can be. Without this it seems the confidence people will be building will be shaky at best and outright dangerous at worst. A great way to get rid of feeling of inadequacy is to actually learn the relevant fundamentals of your industry to a good level. If you have that base of skills you'll feel a lot better about things and be in a position to offer guidance to people less skilled.
Incidentally the whole Python programming language is a prime example of this since it values the fast creation of software so much more so than software that performs well. ↩