5 converging software development trends

The two waves of software product automation.

Image for post
Image for post
Serverless, containers, big data, declarative frameworks and AI will all converge to make no code a reality.

Any person who has made a serious commitment to writing software professionally knows there is a hum of anxiety in the back of your head about becoming obsolete and or feeling like you are not good enough. Mix that with some well executed motivation and I’m confident you can stay ahead of the game.

I try to avoid cult like infatuations with people but I am a fan of sound bites. In this case Jeff Bezos has a good one.

“Focus on the things that will not change”

- Jeff Bezos

I would like to take that a step further and make the assertion that if you can spot trends that will eventually end up being foundational you can get really far ahead.

The trends

Taken individually these technologies make for a great $12.99 Udemy sale every other week. Fortunately, even surface level knowledge lets you see how they are all converging to make no code platforms and eventually automate business intelligence and product management.

For the individual developer learning these key trends will keep your career on track. If you are a small company adopting these trends is critical to survival. You have no room for non-differentiating work and you can attract “bleeding edge” talent.

This is the most buzz-wordy term here but it should not be overlooked in importance, ‘serverless’ is a spectrum.

Consider two PostgreSQL scenarios.

  1. You fire up an EC2 instance (already more serverless then owning your own servers), install PostgreSQL and maintain the system by SSH’ing in and managing patching, migrations, or authorization.
  2. Now take a look at AWS’s serverless PostgreSQL compatible Aurora product. It effectively automates away an entire IT departments job from 10 years ago and adds a globally distributed capability that was not really possible before.

You can have any number of combinations between those two scenarios which represents a serverless spectrum for operating PostgreSQL.

Indeed, AWS is the ultimate Backend as a Service (BAAS). Outside of prototyping BAAS made any software professional shudder 5 years ago. Now the term ‘serverless’ cements AWS’s value props and legitimizes letting someone else do your non-differentiating work.

Hopefully you have had a chance to build some sort of application as a container and ship it to the cloud. docker run <mycontainer> on an EC2 instance, wrestle with Kubernetes, or use Docker Swarm are all fun learning experiences but ultimately containers were meant for serverless.

Both AWS and Azure have managed Kubernetes and AWS has their ECS product. All these services can be running your container elastically and serverless with a few button clicks.

Containers breed microservices which just creates more examples of programs. What relies on examples? A whole host of machine Learning techniques. Code and program images are stored on central repositories (git hub, docker image repositories) and have meta data that tells you quality and functionality. You could not ask for a better data set to train Machine Learning models to write code.

You could argue that unless you are writing binary sequences or assembly code that you are using a declarative framework instead of an imperative one. To move on let us just say that declarative tools are also on a spectrum.

A great example here is Apples new SwiftUI. While essentially just a very light weight Swift struct each ‘view’ contains a portion that Apple will look at and then make your avocado toast for you. Gone are the days of writing step by step instructions like you probably did in coding 101. Just say you wan’t a menu with 5 options and clip art and then be happy. If you are not then build the custom modifiers you want.

Another great declarative tool that fits into the serverless concept is “Infrastructure as Code”. Terraform and Cloudformation are the declarative frameworks for automating your infrastructure to any point on the serverless spectrum.

I can sum declarative programming up as the current bridge between highly skilled and specialized software developers and a novice who had the patience to learn the details of a declarative technology over a weekend.

This one also feels buzz-wordy but data IS getting bigger. 90% of the data in the world was generated over the last two years according to this Forbes article.

Not only is data saturating every industry it is becoming cheeper and easier to work with thanks to the serverless world. Economies of scale is why serverless is so successful and big data came along for that ride.

AI is the trend that will bring in the second wave of software automation. Microsoft acquiring Git Hub is a long term strategic play to create AI that can make software.

Image a world where you could ask Alexa to make you a website about your product idea that captures user interest via pre-product email signups and A/B tests 5 different value props. Now ask Alexa to sign up for what ever advertising network and set a budget.

This does not sound like sci-fi to me and a frontend, backend, and marketing gig worker are now denied your 5,000$ budget for this idea.

Where this is leading?

No job is safe. Even developer jobs have a medium risk of automation.

Also known as rapid application development (RAD) platforms or low code platforms. These systems are the natural product of all these trends.

AI will automate declarative frameworks and generate program containers that can then be run serverlessly.

Ok, this is moving beyond the realm of “software development” but let’s face it. The majority of software development is done to make a profit. As the process for making a software product becomes automated AI will simultaneously enter the realm of business intelligence and product management automation. This could be further powered by advances in quantum computing which Apple, Google, Microsoft, Amazon, and Facebook are all investing in.

In the end humans are just labor in the capitalistic system. You can expect companies like Amazon and Microsoft to develop AI powered tools to further their grip on certain industries. Then they can use the same tools to explore new profit centers with automatically generated and managed software development lifecycles.

What can you be doing?

There is no immediate threat to a stable frontend or cloud solutions architect job but every developer knows they must stay on their toes. Luckily knowing how to write code already puts you in a position to learn new trends faster. Just make sure you make the time.

From a small business or startup perspective adopting these new trends is the only way to survive. 5 years ago spending 10 million to make some half baked B2B SAS solution might have turned a profit or given you an exit. Now if you can’t turn out a completely scalable, lean and adaptive MVP platform for less than 1,000$ a month in computing costs with only a developer or two you are not going to make it.

Whether you are an individual or startup you can get ahead of these converging trends by adopting some facet of AI. Get familiar with basic vernacular or try and make a pre-made model useful in some way.

We are in exciting times and there has never been a greater opportunity to re-invent yourself. Please clap, comment, and disagree with me if you so please.

Written by

I contribute to the start-up grind in Seattle as an iOS Engineer. I also used to fly airplanes.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store