Less code does not mean that the complexity of the software is reduced, but the expressiveness of the programming language is stronger. Too many developers are obsessed with frameworks, seeking excessive software flexibility, composability, etc., and forgetting if they really need them.
Why Did It Cause the Current Situation?
The software has gotten simpler somehow. In recent decades, the software industry has been very successful in reducing the amount of custom code required to write most software.
“The process of application development is simply too fragmented at this point; the days of every enterprise architecture being three-tier, every database being relational, and every business application being written in Java and deployed to an application server are over,” wrote RedMonk analyst Stephen O’Grady in a 2020 blog post. “The single most defining characteristic of today’s infrastructure is that there is no single defining characteristic. It’s diverse to a fault.”
Which leads many to question whether this level of choice is a net positive for the average software developer.
At Teravision we have come across developers who have told us, compared to just rendering HTML, creating a similar single page application (SPA) does not increase overhead. We have also heard it said that all applications must be developed based on NoSQL databases, and that relational databases have gradually declined. Also, some developers wonder why applications are not written with CQRS and event provisioning.
What Needs to Change?
As professionals, we must find several ways to simplify the software creation process and not ignore the reasonable complexity of the business. We must admit that not all applications require the same level of interface complexity and operational scalability as Gmail. There are many applications that require a well thought out interface, complex logic, robust architecture, smooth workflow, etc. However, no microservices, AI, chatbots, NoSQL, Redux, Kafka, Containers, or similar tools are required.
The obsession with flexibility, composition, and agility is causing us great pain and forcing companies to steer clear of our favorite platforms and tools. The key to a good in-house development platform is to find that balance between self-service for developers who want to get on with the work at hand and abstracting off tasks that are less valuable, without making developers feel restricted, Humanitec’s von Grünberg wrote. in a blog post from 2021.
Teravision Technologies has a broad cohort of engineers, some who focus on building resilient systems and who deliver features to customers at velocity, and others who desperately want to tinker with the latest technology. Both have value and the key is finding the right balance.
The task for many developers and their teams is to identify where their expertise is most valuable and where it is being wasted reinventing the wheel. “The best hope we have is for companies to recognize this problem and to work to get developers out of the business of worrying about how the machinery works—and back to building software, which is what they’re best at,” consultant Simpson said.
There has never been more complexity and choice available to software developers than there is today, but there have also have never been more options to abstract it away. It just comes down to how much complexity you as developers can stomach in the pursuit of your goals.