The COVID-19 has turned consumer behavior inside out. We order groceries online and takeout from restaurants. Retailers offer online ordering with no-contact pickup. Students take their classes at the kitchen table. All of these are stark reminders that digital business is now a requirement, not a choice.
Naturally, these shifts will force changes on the way businesses approach software engineering. To adapt to new behavior patterns, companies must reimagine the way they build software. There is a plethora of architectures, design patterns, technologies, infrastructure possibilities and development methods from which to choose. Regardless, building resilient, highly adaptable software requires three strategic imperatives:
A cohesive business and software product strategy.
The pandemic drives home the fact that software is now core to every business in every industry. The goal is to create software products built with customer needs in mind.
Organizations must ask themselves several questions as they revisit their software strategy. Can customers do business with us anytime, anywhere? Do we have the right channels of engagement (browser, mobile app and voice, for example)? Is the experience so intuitive that customers can use it with little or no training? (To get an honest answer, we advise enterprises to look beyond power users and their usual digital-channel customers to their Great-Uncle Seymour, who’s hardly tech-savvy but has been suddenly thrust into an online world.) Finally, is the customer experience both functional and elegant?
A robust, secure and scalable cloud strategy.
The question isn’t whether to move to the cloud; most companies are already somewhere on that journey. The more pertinent question is how to get the most value from the cloud. Considerations here include: Can our applications take full advantage of cloud scale, automation and elasticity? For businesses that are simply lifting and shifting monolithic applications to the cloud, the answer is no; to answer yes, they need a cloud-friendly or cloud-native application architecture.
Moreover, enterprises must ask if their applications are secure. Cloud-native architectures make deployments more distributed, and therefore more complex. An honest “yes” answer requires a holistic approach to security, with technologies that can secure thousands of containers and web application firewalls or more sophisticated runtime application self-protection.
The final question here: Can we detect and resolve issues quickly enough to avoid a major loss of revenue and customer trust? Application monitoring (observability) and troubleshooting support are important for all complex, distributed applications – and especially for cloud deployments.
A nimble and modern development methodology.
It’s time to embrace DevOps. With Agile development and DevOps, working code can be released to production in a fraction of the time needed with waterfall development. Additionally, businesses must continue to think about where developers work. Over the last few years, the norm has shifted from in-sourcing to outsourcing to offshoring to co-location. The COVID-19 crisis highlights the need to enable developers to work anytime, anywhere. Teams must be equipped with collaboration tools like Microsoft Teams, Slack or Miro; conferencing tools (Webex, GoToMeeting, BlueJeans); independent developer environments (Visual Studio Code, Eclipse, NetBeans); pair-programming tools (USE Together, Visual Studio Live Share).
Transforming while performing
As the COVID-19 pandemic subsides, the strongest businesses will be the ones that get these recommendations right. We recommend that businesses get a head start now by:
Stepping up transformation and modernization efforts in digital channels and supply chains. If organizations don’t already have a digital channel for customers and suppliers, they should start building one immediately so they can respond swiftly to new business patterns. Within these channels, internal and external access should be treated the same way, ensuring that authorized users can access them anytime, anywhere.
Accelerating cloud migration and modernization to take advantage of cloud scale, automation and elasticity. Companies should set their sights beyond simply shifting applications to the cloud, which provides limited benefits. Instead, it’s important to modernize legacy applications by re-factoring monolithic code into microservices, thus reducing the time required to adapt to new user needs. Businesses should think about application security holistically rather than focusing on edge security alone.
Tapping into a global workforce – either directly or by partnering with an IT service provider with established processes and a culture for working anywhere, anytime.
A black swan event, while tragic for many, always brings opportunity for those who are able to see it. As the world continues to address the COVID-19 crisis, forward-looking organizations will alter course to continue to address customer needs.