You need some data engineering and analytics? → Databricks. You need some APIs → API Gateway. Mobile apps? → Firebase. Deploying applications and CI/CD? Configure Git and have your apps build with a configured Jenkins to then have it all deployed by a configured Ansible/Terraform onto a configured Kubernetes Cluster. Assuming you don’t use some cloud tool that does it all like Azure DevOps. Need monitoring and logs? → Graphana, Prometheus, ElasticSearch. Need backend services? → go serverless use Lambdas. Need workflows? → Airflow and your DAGs in Yaml hook it up with Redis and you got it. You get the point. If you ever need to write code at this point it’s probably some glue code just to hook it all together.
I know some of you will say they have some special custom app with very custom logic that is so unique that can only be done in code. Honestly chances are it’s already a solved problem by a standard tool out there and your team leads are simply unaware of it or don’t have the skills to operate those tools.
I’m a backend dev and still write code but a lot of my time goes into configuring some of those tools and more and more of the code is being migrated into them.
In 10 years are we all going to be some sort of devops yaml configurers?
Even more so 25 years ago when various GUIs became ubiquitous.
About 20 years ago, Flash and Dreamweaver were promising the same.
You see where it's going.
Do those solutions run on your smartphone? Your car? Your IoT devices?
Custom code can also give businesses a competitve edge because they can do things that others using existing code cannot.
Basically that's the way it is.
As an Architect I have to look for no code solutions, then low code and if non fit only then do I have a justification for a custom build.
Sometimes a solution is a combination of those techniques.
It wasn't until 1924 that the modern circuit breaker was invented to protect electrical circuits from overload.
---
The computer was invented circa 1946 by Von Neuman. It was back ported to the ENIAC, which made the machine much slower, but easier to program. Since that time, many standards have emerged, EBCDIC, ASCII, UTF-8, etc. All the basic technologies are in wide use, so standardization occurred. What we don't have yet is the equivalent to fuses or circuit breakers, or the common household outlet.
We have no way of allocating only certain resources to a computing problem, and being sure of the lack of side effects. In effect, no standard for insulation from side effects.
---
All of this written to point out that nobody has a sure way to prevent unwanted side effects from a given line of code, and we're building stacks upon stacks of layers. Someone is going to have to sort this mess out and build standardized, UL certified (or equivalent) components for connecting up data sources and sinks. (Events are data, with timestamps)
Once that happens, some of us will be the ones turning out modules, and the rest of us will be electricians, hooking all the bits together. I expect there will always be a need for programming, as we know it now, because it takes a rich expressive grammar to make interesting and useful things happen the first time. Once it's figured out, in can be productized, and shipped.
An API Gateway doesn't make APIs?