Vertical integration is the natural next step in a capitalistic society. Cut out the middle man, increase profits. This could be a bad thing like Comcast acquiring NBC; where the service and content provider are vertically integrated to reduce competition. Or a good thing like Tesla trying to vertically integrate the manufacturing and sale of a car.
I read that Tesla is taking it a step further. They want to integrate the cost of maintenance and insurance with the sales price of the car. Image that – not having to pay insurance or worry about the cost of changing your brake pads. Telsa, and moreover Elon Musk, have been using technology advancements and vertical integration to change entire industry paradigms. The same thing is happening all across the IT industry. This got me thinking about the vertical integration of developers.
Software engineers are becoming vertically integrated; the full-stack developer.
A full-stack developer is someone who can work from the operating system to the front-end. As I briefly touched in previous articles, these are the types of developers you want to hire and cultivate. They understand reliability, scaling, security, web services, data models, UI/UX, load balancing and everything else that makes up a great application. If you have an application problem, they can solve it. Advancements in technology have made it easier than ever. It all started with Amazon Web Services. The revolutionary Elastic Compute Cloud (EC2) decreased the time to provision a new virtual machine from weeks/months to minutes. It abstracted all of the normal infrastructure duties (racking, cabling, networking, installing software, etc.). A developer can now build, test, and destroy a VM all by themselves without any sysadmin support.
It’s hard to overstate just how revolutionary AWS was and continues to be. EC2 and Simple Storage Service (S3) are fundamental in how modern software development is accomplished.
This power provided to the developers is literally how game-changing start ups began. Start ups like Dropbox, where two college students (Drew Houston and Arash Ferdowsi) built a GUI on top of S3 and turned it into $10 billion dollar company. S3 was released in March of 2006 and Dropbox was released in June 2007. In 16 months, two people conceived, developed, received seed funding and launched a company. A company that has a top 50 Alexa rating in the US and top 100 world wide! There are many similar stories from companies like Uber and Airbnb. What did they all have in common? Full-stack developers.
In the same way that AWS integrated the sysadmin and developer, open source databases like MySQL, Postgres, and MongoDB integrated developers and database administrators (DBAs). Launching, clustering and backing up databases has become trivial even for self-hosted applications. Developers have consumed the role of testers by adopting automation tools like Jenkins, Travis and CircleCI. And for as much trouble as I give Agile/Scrum, it integrated the business analysts. The developer now takes requirements directly from the customer without any middle man. We’ve begun democratizing highly technical and specialized skills.
Design is a double edged sword. It’s more important than ever with multi-platform applications and so much competition. Need a great design because your full-stack developer doesn’t have an eye for good UX? Easy. Use an open-source library released by a billion dollar company (like Bootstrap). Still need help? Use one of the hundreds of crowd-sourcing design websites (CrowdSpring, DesignCrowd). Or you could hire a great front-end designer.
Why is any of this important?
I’m focusing on developers because they can do everyone else’s job. Through technology they can do the jobs of the sysadmin, DBA, tester and analyst. But the converse isn’t true. You will rarely find a sysadmin who can do more than scripting. Next time you talk with an Oracle DBA (there are still a lot out there), ask them to build you a simple web app. And so forth. I’m not belittling these professions or individuals with these skill sets. I’m pointing at the writing on the wall, the frog bones in the cauldron – these jobs are being consumed by the vertical integration of developers. And in my industry (Government IT consulting) it’s about to drastically reduce the need for large teams and specialized skill sets. This will be the most drastic reduction in a workforce we’ve seen until autonomous vehicles make truck/taxi/delivery drivers absolutely redundant.
The U.S. Government is the largest employer in America. They employ nearly 22 million people at the federal, state and local level combined. And they are just starting to adopt cloud services. Let that sink in for a little bit. The largest employer in the U.S. is just starting to transition to cloud-services. Couple that with the climate in America is calling for the reduction of Government budgets across the board. So we have the pressure to reduce budgets and the ability to do so. Jobs normally done by IT professionals for the last thirty plus years will now be done through cloud services. An application that used to take a team of twenty can now be reduced to five. Government websites and applications will be faster and more reliable and built for cheaper.
But this is a good thing!
Consulting services will need to get lean. The Government and taxpayers will get more for their money. The application users, often mission critical systems used to keep us safe, will have a better, more reliable product. These full-stack developers will be able to add new features daily. I’ve seen it with my own eyes – by golly it really works! These specialist haven’t necessarily gone away for good, but transitioned and dimished. You better believe Amazon, Microsoft and Google still need excellent sysadmins, DBAs and testers to actually build the cloud. We just don’t need them much anymore in application development. What we do need is more solution architects.
I think I just heard the collective groan of the internet.
Yes, solution/enterprise architect is a term that is thrown around way too much. And often by people who give it a bad name. But a true solutions architect (SA) should be able to work with the client and developer to make the most cost-effective design possible. Just like AWS actively tries to save its customers money through better design. SAs need to replace the knowledge lost by the subject matter specialist, through superior solutions utilizing full-stack developers and cloud services. (I could and maybe will write an entire article about how a true SA is a combination of a project manager, data scientist, engineer, business analyst, coach, cheerleader, therapist, zen master and developer. Maybe I’ll call it, “The Death of a Project Manager.”)
But how do I become a full-stack developer or a kick ass solutions architect? Read and watch online, whenever you can. Learn. There are billions of articles, videos and trainings available for you to get educated on modern application development. And so many of them are free. The top companies in the world all have engineering blogs where you can follow how they build solutions. Smaller startup companies are giving away their frameworks and guides on how to install full applications (like setting up your own search provided by Elastic.)
Again, the writing is on the wall. You might be a little behind the curve but still have time to jump on board with the new way business is done.
Just in time for the serverless revolution…