Developers are the indispensable soul of software. They're the -real- builders behind the modern tech company. And, assuming they know their worth, are powerful. Why? It all comes down to factors surrounding supply and demand. Here are some.
Supply of Developers:
High "Learning" Barriers to Entry
Learning the "programming language" is just the tip of the iceberg. Understanding APIs, frameworks, security, deployment, version control, team workflow, using an IDE, oh and the list goes on. Here are some reasons that stand out in this area:
The learning path is very ambiguous. Where does one start?
Most modern resources ignore all of the "soft skills" needed.
Learning has to be habitual. It never stops.
The learning curve is difficult. It combines what's difficult about learning a language with instensive logic.
What's ironic about this one is that development has arguably the MOST free resources online to learn. Which leads to...
High "Personality" Barriers to Entry
It takes a certain type of person to sit in front of a computer for hours and...
Tediously sift through thousands of lines of logical text.
Debug one error for hours only to "catch" up to where the program is supposed to be.
Pile through book after book learning.
Pile through article after online forum learning.
Experiment constantly, often through unpaid projects.
Be okay with no one understanding why what one builds is so cool.
Learn constantly and QUICKLY. Development tools and knowledge changes rapidly and must be kept up with it.
Do all of the above in isolation...and like it.
Those of us who happen to be extroverts (draw energy from other people) will find this path quite difficult. One of the few ways to bypass it is to get into a psychological "flow" with it. However, in a society where extroverts are the praised and popular personality (nurture wise), this predisposes many of us to have difficulty with this area.
This is becoming less and less as modern tech companies become cultural icons more and more. However very few kids (especially in the working generations) we're brought up to think that being a "programmer" or "developer" is "cool".
Let me reiterate this. "Cool".
Not "Will make a lot of money." That's known.
"Cool" as in you're an adolescent, teen, or college kid with your peers discussing interests. The impact of peers and life decisions is pervasive and intense in career decisions.
There's a ton of other areas where this is evident. For example, female developers.
Demand for Developers:
The Startup Hype
As tech "startups" and "entrepreneurs" receive more and more hollywood hype, the demand for those of us who do the actual work spikes. Fresh, starry-eyed, business grads (like I once was) leave thinking they can find their own "Steve Wozniak" to build their dream.
In addition to the younger generations looking for the, the older ones with more capital see opportunity...and thus...
Low Capital Requirements
Older more established companies, entrepreneurs, business owners, etc. see opportunity in the fact that all they must do is hire a "person." Deploying and distrubting software is VERY low cost in contrast to physical products. The experimental cycle is also far less costly and thus allows more accuracy.
This should be obvious. Consumers go through software rapid fire. This creates a demand for tech products and thus thoose who build them.
If something technical like programming can be automated, couldn't it be easily outsourced? Sure.... It could.... but...
The world of development is already a foreign language in and of itself. The entire ecosystem requires a translator which is often the developer. Therefore, adding another layer of communication difficulty in there (dev from another country) is immensely difficult.
Developers that have the soft skills to communicate almost always eat up demand far quicker.
Clientele that procure developers that communicate effectively almost always deploy faster.
So if you're a developer. Don't undersell yourself. Please.
How many "strictly business" people does it take to make an MVP?
J Cole Morrisonhttp://start.jcolemorrison.com
Developer Advocate @HashiCorp, DevOps Enthusiast, Startup Lover, Teaching at awsdevops.io