I recently had the pleasure of talking to Nimrod Kramer from daily.dev about how software development has changed, and how it’s going to change in the years ahead. It’s easy to criticize the Software Engineering industry for not changing enough.
In his talk called “The Future of Programming”, Bret Victor jokes about how all the great things that people predicted for programming – like auto-parallelism and structured code editors – never really happened.
But if we compare software engineering now to software engineering 20 years ago, it has changed.
Think back to the development standards of the early 00s They probably sound pretty awkward to you – waterfall planning, documents with UML diagrams, software installers on CDs… those last ones were not only uncomfortable, but also error-prone. Manual installation caused the Knight Capital software bug, and no-one wants to relive that mess. Agile and CI/CD aren’t just fancy buzzwords – they changed the field for the better.
In these past 20 years, software made the final shift from exotic to ubiquitous. Nearly every big company is a software company, to some degree. The Accelerate book shows evidence that ties companies’ bottom line with IT excellence. No wonder developers are the new gold.
So how will the software industry develop in the coming 20 years?
We can only guess. Michael Bar-Sinai speculated that more software domains will be regulated, like medical software which currently requires FDA approval. And with more devices becoming autonomous, it also raises the question of who is in charge of them. In fact, more and more think tanks like this one are dedicated to in-depth research into ethical practices around emerging technologies.
Another fascinating trend revolved around no-code and low-code platforms. Even today, you can develop software services like ETL or reports using little to no code. Will the scarcity of developers force software development to become more accessible wherever possible?
And taking it a step forward – will software development become more automated?
One one hand, AI-assisted software development will not disappear. There are already large public datasets with annotated code available. If the last few years in data science have taught us anything, it’s that t whenever there’s is data available, researchers will find ways to leverage it.
On the other hand, machine learning models learn from repeating patterns. Could we find other ways to generalize those patterns? Ideally, smarter compilers and low-code platforms would allow for writing more high-level code – leading to code models learning more high-level patterns. This type of interchange between AI assistants and programming languages could lead to a software spiral effect of programming innovations. I’m certainly waiting to see that!
You can find the full recording here