We are becoming less programmers and more… who?

A few years ago, it seemed that proficiency in a programming language was enough to work on most software products.

Even in embedded Linux, I remember monolithic applications that handled everything: from logging to software upgrades. Most problems were solved by coding, and a significant part of our work involved coding.

Technologies have changed, new methods have emerged, and most importantly, there are more challenges.

One of the major changes was the adoption of Continuous Integration. Often, this change was driven by developers, and we needed to learn new tools and some scripting. After all, working with GitLab CI or Jenkins is different from coding, but it’s still an important part of the work. In this case, we needed to learn how these tools work, what the best practices are, and how to integrate them with the programming language we use. Working on that isn’t exactly coding, at least not in the core of the application.

Automated testing is a bit debatable when it comes to how much developers are involved. Often, testing is done entirely by the testing team, but sometimes they need developers’ support. Sometimes developers need to prepare some testware and tools that will then be used in tests. Again, this is work that needs to be done and is not related to the core application.

Another must-have for modern software projects is secure development. We have to consider security at each step, and we all share the responsibility of delivering a secure product. This means that we need to learn a lot and do a lot of analysis during development.

Over time, software systems naturally became more complex. With this complexity came new challenges. Scalability, availability, maintainability… These are topics that need to be considered not only by software architects. Developers are involved too because they are the ones who will ultimately write the code.

Finally, there’s the cloud. It’s being adopted more and more, and the transition always requires learning about the cloud. And this is different from learning a programming language. Of course, there’s an SDK for a language, but all of that is useless without understanding the technology.

All of this proves that there’s less coding in a developer’s work. I think this is a natural evolution in the industry, and it only proves that we must never stop learning. And the things that we are about to learn next will probably use something that we already know.