It has become a rather interesting question to ponder over the years: What has drawn so many people into this field? Various estimates peg the number of worldwide software developers at 20 million. My middle child (age 14) shows all the signs: he takes great delight in taking timeout from flashy distractions and video games to create software programs, troubleshoot them and publish them to the cloud. For some, there is a triumphant bliss that results from creating things. Ever notice the high correlation between people who program to people with hobbies such as woodworking? There are certain personality types who experience happiness and euphoria as the motivator and intrinsic benefit of creating things. Catch a glimpse of this joy from my friend and software application developer, Joe Young.
But the title of this article is something of click-bait these days. The premise of software application development for business being “fun” is increasingly in contrast to the mental schema of those who code or work near software developers. Some exude a sense that it was indeed fun, once upon a time, but no longer. Not even close. Take a read of these two colorful quotes from those in the field. Specific programming technologies and names have been omitted to protect the innocent.
Fun software development has gone off the rails
… Sadistic Programming …
“[omitted technology reference] taught me how to write a functional application while standing in a volcano, hopping across a lava pool on islands of solid rock. Anything I did that was not the most efficient way of doing it immediately resulted in an unbearable slowdown. Anything I attempted to do that was more complex than the most bare-bones solution of adhering Data Object A to Display Element B was liable to send the entire place up in flames. Do not be alarmed if your dependency libraries occasionally issue breaking changes after altering a single property on a class you never use. You can just add a manual file editing step to every build process. Or you could freeze the library at a compatible version and lose all future improvements.”
Just Let Me Code
“I hate [omitted technology reference] with a [expletive deleted] passion. It sounds great on paper, but once your project grows, the mental recursive loops of passing data around becomes insane. Not to mention keeping consistency across a metric [expletive deleted] ton of components. How do you manage it?”
How did we get here?
To some, software development was fun. But what happened?
Here’s what happened: Software technology got a lot more complicated over the past 15 years. The advancement of software development methods and tools expanded to simultaneously accommodate changes in data security, cloud, networks, storage, APIs, form factors, mobile, remote access, offline access, massive concurrent users and so much more. However, the scripts, syntaxes and kits that answer these new requirements aren’t under one roof. Software industry challenges have been answered with new IDEs and programming languages, thereby expanding the complexity of software engineering to a degree that often requires skill specialization (larger and separate development teams) or the ever-elusive full-stack developer.
During the same time frame, complex and scalable systems running in the cloud with aesthetically attractive mobile apps have put the awesome power of automation into our pockets. Consequently, management and user expectations couldn’t be higher. They can open garage doors and deposit checks with apps on their phones. Why can’t they have a business app to check on an order status for a major client?
From the social media and software developer forum comments on modern software application development, “Hello World” (often the first step in learning a new language) has seemingly become “hellacious wonder”. Software developers once attracted to a field where they can achieve intrinsic joy while creating software might find the creativity outlet elsewhere, perhaps in another field. That’s okay, but it comes at a time when demand for software application developers is at an all-time high. Every industry is realizing that it must develop (at least some) software to better compete, and we need software engineers to be happy and engaged.
Let’s bring back the enjoyment of creating software
Necessity is the motherhood of invention. Low-code development platforms were crafted to address the tedious programming issues associated with creating and deploying an application across disparate technologies, maintaining and extending those systems over years of changing business rules and updating code to keep up with new technology standards.
Let 2019 be the year that your company experimented with a low-code development platform. Although not all low-code is equally capable, you can quickly get a sense that a significant portion of the effort and skill required to perform roundtrip software engineering has been automated. As a result, low-code has significantly improved software developer productivity and enables much greater focus on meeting business needs instead of integrating disparate software frameworks.