3 ms·
Software requires problem solvers, deductive reasoning and logic these are higher level traits that not everyone possesses. Possibly 30% of the general populati
by kls 11y ago
Software requires problem solvers, deductive reasoning and logic these are higher level traits that not everyone possesses. Possibly 30% of the general population fits that mold.
Out of that if even a third went into software as a trade there would still be a shortage as software is eating the world and 10% of population cannot fill that void. Upping that numbers comes at the cost of stealing from other trades such and research, medicine and engineering thus fueling shortages in other constrained markets such as medicine.
This does not even account for the guy working at the local gas station who clearly is too bright to be there but under-motivated. If you actually factored those individual out the pool of possible talent contract even more.
Long and short of it, there has always been a shortage and will always be a shortage until software salaries pay to attract that upper 30% away from more lucrative career paths, but doing so will further strain other upper end markets that require the same mental skill sets.
So how do we fix it, in my opinion medicine hold a good example. Developers who are creative by nature tend to not be good at assembly line type thinking and are very prone to meritocracy.
e.g. I know developer A is a good developer I will let him take this and he can get it done. Where developer B is a bad developer so I will ignore him. Meanwhile if we delineated based on ability developer B could take a lower order role say writing unit tests for A.
This works in medicine by having the role of doctor, nurse, medical assistant. There are roles that can be filled by people that don't quite make the cut to be a good developer the problem is management is not that great at delineating development roles and developers (as a generalization) don't suffer fools very well (hell we even go thru massive amounts of effort to try to come up with BS interview trivia and code tests to filter bad developers out).
So what happens is we end up giving very good junior developer C the task of working with A because he has merit. But the dirty secret in the industry is given the pace of change you would be hard pressed to tell a good junior from a senior after a year on the job. So we end up wasting the juniors talent by keeping them artificially repressed in a roll that developer B could fulfill for everybody as a constant resource that provides only the skill-sets they are capable of fulfilling. then we lose that junior because he can make more money jumping ship due to his artificial deflation that does not reflect the reality of his skill set.
If you notice a pattern, the above is a recipe for bad developer B becoming the lead over time, as attrition takes good developers and B is promoted because he cannot find another position based on merits.
- humbleMouse 11y agoThis is a really good summary. At my job we always talk about how much we wish we had a developer B just for assigning tasks such as you mentioned