I was reading an article earlier that was a comparison between the automobile industry 50 years ago and the software development industry of today. It was a direct comparison where autoworkers 50 years ago enjoyed a degree-less job that paid enough to have a one-job household, to put kids through college and so on. A few disagreements were made (namely that their wages were artificially inflated through unions) and a few agreements were made as well.
When I entered the field of programming, I was amazed at how quickly I was able to rise. I was amazed at how my friends prospered as well. And hell, I was amazed how my skills could quickly turn into cash. You see, $2,000 of development time can quickly turn into $10,000 in profit at a company that knows how to use developers. It feels like I’m on a roller coaster that just keeps going up and I’m sure the sentiment is shared among many other developers.
So when will the “other shoe drop”? When will we see an “automation” that kills software developers’ high? And when will being a developer become “just another career” rather than a cash cow?
I think to clearly analyze the future of programmers and mainly web developers, it’s important to focus on the arguments that are made and the possibilities that can encroach on this territory and displace us.
Low Barrier of Entry
Web development in particular has a very low barrier of entry. It has even been proposed to have web development as part of standard school curriculum in the United States. Estonia is in the process of adopting it already. We, as developers, discuss how important and valuable this skill is.
Development at the junior level is super easy to get into. Sign up with Team Treehouse, Lynda, or whatever web development course you want to, and learn. Within a year, you’re able to enter the market as a freelancer. Another year and you’re salaried. No degree required. No four years of college, and no loan debt (which is becoming a huge deal).
This low barrier of entry is amazing. So is this what will happen? Will the market get flooded with fresh faces that will outnumber the current developer population by a factor of 10 or more?
Unlikely. Programming is difficult and many people who enter and try to learn drop out in the end. This happens both at the college level with CS, and at this level. Will the supply increase? Definitely. People who never thought of getting into programming are getting into it now because they see it as a very good choice of career. The supply will increase exponentially. If 1/10 entrants that never considered programming get into it, that’s a huge factor to consider. However, the issue is that the demand is increasing as well, and exponentially as well. The market isn’t going anywhere either.
- Most small businesses today require websites to survive.
- Mobile internet and apps drive an enormous amount of cash.
- “Life automation” through cell phones, iPads, computers, etc. is becoming a norm and is increasing its hold on our lives.
The golden age will take a while to be over.
Not only that, but automation (the next segment) is a reason why the “low barrier of entry” either stays the same or increases. The more tools there are to make things easier, the bigger the problems we tackle, the better the people need to be.
One thing that people are worried about is the automation of, well, automation. Basically, we have tools like Shopify and WordPress, and others that displace a ton of developers. When was the last time a web developer coded a custom CMS? I can’t even remember. Or if it was coded, it was part of something much larger. With tools like Laravel and other PHP frameworks, you can wire up a CMS pretty quickly anyway. Rails on the Ruby side, even ExpressJS on Node.js, the same pattern follows.
Work on all levels is being automated. No more updating “snippets” of code, we have Bower, Composer, and Bundler to update things for us. We even have automated testing suites that cut down on the QA work.
The problem with this argument is that it’s stale. When C++ came out, the heyday of programming could have been over, it wasn’t. When PHP came out, it could have been gone. Nope. NodeJS, over? No. WordPress? No.
Once solutions are found, people tackle BIGGER problems. The problem here is that automation doesn’t displace developers, it displaces people.
Manual data entry is replaced with scraping. Accounting is displaced by accounting software. Call centers are displaced with online form experiences and so on. Developers don’t lose their jobs, others do.
Once WordPress became a norm, developers didn’t code a custom CMS. They coded better UIs and more functionality. Small businesses went from “brochure” sites to lead generation and onto newsletters, and shopping carts, and orders, and a million other things. The demand increased with market expectations. Once a regular business could create a neat blog and conversion forms, people started expecting it everywhere.
A developer created Twitter. Once it caught on, it created a ton of jobs for people to integrate with Twitter. We have twitter apps, companies that rely on Twitter automation, etc.
Automation only frees up developers to do BIGGER tasks that bring in MORE money. And to automate other people’s jobs. And while it sucks that lots of people lose their jobs this way, I feel like it’s a natural progression. Yeah, I know, I can say it from my side because I’m not worried but it makes sense to me that people will try to automate as much as possible and free up resources to do other tasks.
Outsourcing was thought to be the end of it. Think about it. A developer for $50/hour in the US or UK or 10 developers for $5/hour overseas? It was supposed to be the end of us. Freelancers.com was supposed to kill WordPress developers everywhere, and custom solutions creators. Companies tried it until they found out that it cost more to hire someone to FIX the crap the outsourced developers came back with than to hire their own developer outright.
The fad of hiring a 100 people from another country has pretty much died down due to the granular nature of problems and the need for very good solutions. I’m not saying people from another country are bad developers, I’m just saying that companies that outsource are not looking for good developers, only cheap developers, which very often translates to bad developers. Do companies still do it? Yeah, but a professional developer with a high salary is probably already on staff, if not a whole team, and the outsourced part is something trivial.
Many other jobs can easily be outsourced but development is one that companies cannot do without a major loss.
The Crazy Amount of Return
If you hire developers and use them smartly, you’ll get an amazing amount of return. And it can be in any industry today as long as there’s some connection to the internet or computer. And there are increasingly less industries that do not.
I’ve said this before and I’ll say it again: $2,000 in development time can translate to $10,000 in profit, if done correctly. The awesome thing about web development is the minimal cost when it comes to equipment and starting up. The biggest bill is a developer’s salary. A computer, internet access, and other peripherals don’t come close to being a big expense, especially compared to other industries.
So what about the return? Wisely used developer time can do wonders for your company and can turn a profit for a business model. Note, it’s WISELY used time for a BUSINESS MODEL. Not every project becomes profitable, and that’s fine, but many projects become VERY profitable.
Throwing several developers together and telling them to “make something” will end up with a bunch of very useful open source projects, numerous pet projects, and probably little to no revenue whatsoever. So the return is there, the capital just needs to be invested properly.
Here’s the issue that developers do face that threatens their livelihood, the rapid development of --development. Here’s the thing: There are tools coming out every day, technology evolving every day, to the point that it’s part of our job to keep up. Hell, being on Reddit (/r/webdev), HackerNews, DZone and other similar sites should be part of our jobs. If I had stopped learning two years ago, I would not be able to find a job today. New conventions, new necessities, new requirements are imposed on developers all the time. This may not be true in other industries.
For example, NodeJS is rapidly picking up and it’s something I’m diving deep into. It wasn’t really a player two years ago. Neither was AngularJS. PHP was outdated and has come a long way since then.
The thing about development is that it’s continuously evolving. You start with the same principles of programming but every year, you have to take several steps forward. The only exception to that is enterprise programming for companies that run on Windows XP, ASP Classic, and don’t want to move. Or companies that think that Zend Framework (the first one) with PHP4 is the end-all solution to everything for the next decade. And good for you, you don’t have to keep moving forward with the rest of us. Well, until the company makes a switch or lets you go. Then you’re screwed.
On the other side, the “web” could fall out of favor, but it won’t entirely for a while. It’s become like books. Sure, we have movies now, and shows, but those are books realized. On top of that, books are still a huge driving force, a market that will not be easily extinguished. And when it is extinguished, writers will focus on writing scripts and plays and comics or what have you. Same deal with developers.
So what can topple the 'Kingdom of Programming'?
I don’t think developers are all high and mighty, and I think that one of the big reasons why we are here and we are well paid is just the nature of the market and its dependence on technology. If you either cut the dependency on technology or the market becomes saturated enough with solutions, the golden age will end. The problem is that developers and other tech people like to create new markets in order to keep growing. From the smartphone market to tablets to single-page apps, to business platforms (rather than “brochures”), to, well, just about everything. Even the gaming development industry got a huge boost from these. It’s pretty amazing. Then we have VR, and other concepts coming to fruition.
The problem, again, though, is that...
To keep up and to keep “living the dream,” one must continuously learn. To stop learning as a developer is the death of a developer, so to speak.
The ability to learn is the biggest asset of a web developer, and the ability for the development community to keep growing is the core of its strength and success.
If you really want to f*** up the developer market, you’d have to stop innovating, and let the industry go stale. A stale industry means that the barrier of entry keeps lowering without harder problems to keep it up. It means that more people enter the market and less fall out due to their inability (or lack of want) to learn. It also means that outsourced solutions take hold because it’ll be easier to keep up the “cookie cutter” sentiment and treat development more like factory work rather than skilled labor.