The evolution of enterprise application development
In 2011, the well known article “Why software is eating the world” by Marc Andreesen was published in Wall Street Journal. As most industries now experience, the ability to digitally transform operations and customer experiences is becoming a core capability and often a competitive advantage for businesses who excel at it. However, the nature of software development is continuing to evolve – as it has since its birth.
Coding – a necessary evil?
In order to make computers do what we want them to, they need instructions. The applications that millions of businesses use every day consist of enormous amounts of code, carefully put together by specialists trying to make the computer do what we want them to.
However, the act of coding has never been an especially desirable or efficient exercise. More than anything, it has been our only mean to instruct the electronic circuits in our computers what should happen if something else happens.
Outside the IT-department few people know what developers actually do, other than experiencing the result in terms of business applications. Executives, concerned about their competitive strategies, market shares and business performance, rarely want to be in the business of “producing software” in the first place. However, the entire organization needs good software to run their business and support their processes and operations. And, as there is always a limit to what can be purchased off-the-shelf, developers have entered almost every organization as a powerful and business critical IT department. The result has become a continuous tug of war between IT and the rest of the organization, where the organization requests more and better software at lower costs.
The rise of the IT department
In the 1980s and 1990s, personal computers became a natural part of the office desk, and the demand for better and more user-friendly software went sky high. To reduce the amount of time-consuming coding required to meet these needs, some organizations made it a clear priority to purchase commercial off-the-shelf (COTS) software. For others, the same requirements led to experiments with CASE-tools, RAD-methodologies, code generators and other approaches to speed up the programming process and reduce the required amount of coding.
IT leaders soon realized that none of these approaches were sufficient to solve the problem. As the 2000s came, software development capabilities was recognized as a competitive advantage and enabler of digital transformation. As a result, the IT department regained its trust and continued to swell with new developers. Coders became a critical resource for organization, and software has become ever-more critical.
However, the business landscape has also changed to become more dynamic. With growing, international, competition, the business dynamics of most industries required more rapid changes to underlying software. In order to properly support the business, IT must deliver software more rapidly and change it more dynamically. Unfortunately for coders, this also means that the time- and resource consuming custom coding projects has come under scrutiny. Even so, the scarceness of talent combined with the ever-growing need for software has led to increasing salaries and fierce competition for the best programmers.
As a result of the challenges with coding, there is a movement towards a new direction of application development called “low-code”. While some low-code platforms are mainly “rebranded code generators”, others completely eliminate the concept of code.
Low-code promises higher productivity, lower costs, and reduced risks compared to traditional hand coding. Further, they enable a new group of talent to participate in the development process: tech-savvy business people without the formal programming background. These advantages respond to the industry dynamics and rapid shifts that executives are experiencing for their organizations.
But what about DevOps?
The natural response from a programmers perspective would be “but we do better now with DevOps”. Unfortunately, while DevOps is a philosophical approach, it has become synonymous with “coding plus automation”. This misinterpretation of DevOps leaves behind the core of its philosophy: bringing teams together with a mission to develop, deploy and support applications at velocity! Seeing it this way, the question becomes: “How do we achieve that mission most efficiently?”.
Combining the DevOps philosophy and low-code, teams can enable faster development and deployment, as well as improved support, in a controlled environment. However, to really harvest the benefits, the low-code platform must be comprehensive enough to deliver on complex challenges, as well as capable of meeting enterprise needs at scale.
The road ahead
Does this mean that the era of coding is over? Definitely not. However, it is clear that low-code platforms are disrupting software development by tackling more and more complex application scenarios. As a result, there are still fewer use cases where organizations must actually hand-code the solution.
Software development will continue to be a critical capability of organizations, and more so in the years to come. However, the nature of software development is changing – the same way that the software crisis of the 1960s to 1980s resulted in better tools, better languages, and better methodologies. As a result, both developers and organizations need to adapt to these changes and adjust their organizations and skill sets accordingly.