Developers have long been unsung heroes of corporate innovation, but these days, developers and their enterprise architect partners are increasingly in the driver's seat.
These crucial stakeholders are setting the technical strategy that enables innovation and helps empower organizations to remake themselves.
Simply stated, the ability of organizations to enter and successfully complete a digital transformation is heavily dependent upon their enterprise architects, developers, and the tools and services they leverage when building new applications. This is not a trivial concern, and the sheer magnitude of this challenge is quantified by IDC's projection that over one-half billion new logical applications will be created by 2023—equal to the number of applications that were created over the last 40 years.
Having developers become a critical resource for successful business operations is not such a surprise; indeed, developers and software enablement have been transforming the industry for (literally) decades. What is different today is that many industry sectors are hitting a critical mass where the companies that compete through technology enablement are increasingly moving away from traditional industry participants and setting the stage for a two-tier competitive environment.
Digital haves and have-nots
A less pleasant way to say that is that there will be digital haves and have-nots. The haves will be technically competent and technologically enabled, and enterprise architects at these companies will be willing to bet on their technology choices to deliver a tangible return on investment. The have-nots will find themselves in a thought-followship role, as they fall behind the industry disruptors turned leaders.
One of the more interesting aspects of this transition is that it is related to—but not purely dependent upon—a data-center-to-cloud transformation. To be certain, there are capabilities available on public cloud platforms that are simply unavailable from on-premises solutions, including some machine learning, artificial intelligence, and broad geographic reach.
IDC's research shows that virtually all organizations today use cloud for some services, whether the services being used offer platform services, application deployment environments, software as a service or for other purposes, such as external storage and disaster recovery. IDC's Cloud Pulse special report also shows that in 2019, only about 26% of application workloads are currently deployed in public cloud infrastructure.
We expect that, eventually, the vast majority of applications will move to public clouds, but that's not the only opportunity available to organizations today. The larger and more immediate opportunity is associated with developers and building agile, modern applications that can be run wherever makes the most sense.
The benefits of modernization
Some of the benefits of modernization are obvious, and modern code that is written in a modern language, produced in an agile manner that also embraces DevOps practices is a proven successful end state—one that delivers a competitive solution that supports business agility and typically a measurable ROI. Today, we see the industry rallying around this approach, with modern development tools increasingly designed to integrate tightly with Kubernetes container runtime platforms.
IDC research on DevOps finds that nearly 2/3 of organizations use DevOps practices to develop and deploy code. The less good news is those companies that have embraced DevOps apply those practices to a relatively small portion of their applications—usually under 1/4 of their overall application portfolio.
In addition to extending DevOps practices to the remaining 75% of applications in use today, there also stands the daunting task of addressing those 500 million legacy applications with one of three outcomes:
- Containerize and run: The simplest way to address legacy applications is to pull them forward into a modern deployment platform. For many applications, it is becoming realistic to containerize those applications and then deploy them onto a modern container runtime platform. That way, the applications are on modern infrastructure and benefit from attributes like mobility, scalability, and operational reliability. The process of moving virtualized legacy applications into a container is becoming increasingly easy, with solutions in place today that allow x86 virtual machines to be migrated into a container and operated alongside new container-native applications.
- Containerize and modernize: The more compelling approach for many organizations is to go through the containerize and run process, but subsequently take actions to peel off portions of the legacy application and modernize those components. Modern developers have a broad range of tools that makes this a viable approach for existing applications, including using artificial intelligence and machine learning features, as well as serverless and function services to replace some components of legacy applications.
- Replace with new applications: If cost, time, and risk were of no concern, replacing legacy applications with modern code is the way to go. Realistically, there are few organizations that can find a return on investment story that will hold water for this approach for more than a small portion of their application estates.
Steps you can take today
If your organization is like the majority of operations today, you probably have a mix of modern applications and legacy applications, with a plan to shift to producing new applications using modern development techniques and tools, along with a corresponding effort to modernize some portion of your legacy applications.
Some of your priorities should include the following:
- Evaluate modern development environments: Even if you have a well-established set of tools that are satisfactorily serving your needs, you should still be evaluating new solutions being released by major players. This is an exercise that involves all stakeholders, including business stakeholders, enterprise architects, developers, and the site reliability engineers. Chances are good there are unique benefits offered by some of the more recent product releases.
- Triage your needs, prioritize your investments: Mission-critical apps and business survival get the highest prioritization for investments, especially during the disruptive environment of today's world. After those most critical solution needs are addressed, the next priority should be to identify technology areas where there is a viable return on investment, or a justifiable new business enablement made possible through new application development.
- Establish a beachhead and expand: As your developer workforce gains competency and expands skill sets, leverage that expertise to seed change across your larger developer, DevOps, and operations teams. Most developers are anxious to modernize their skill sets, so chances are good they will embrace the opportunity to expand their skill sets around modern application development.
For more information about the options IBM offers, we recommend that you try the following: