We order restaurant food to eat at home, work through collaborative platforms from the home office while our kids take online classes from the kitchen table. The Covid-19 pandemic has forever changed many of our behavior patterns, which is enforcing a shift in how we approach software engineering after the crises.
The Covid-19 pandemic has turned typical consumer behavior inside out. Digital business is now a requirement, not a choice. The pandemic will pass at some point – but the impact of new behavior patterns will live on, forcing changes to the way we approach software engineering.
Responding to New Behavior Patterns
Consider these impacts of the Covid-19 social distancing and, in some countries, a total lockdown.
• New workloads. Grocery chains are experiencing unprecedented volume for online and curbside pickup. When the pandemic is over, some consumers will return to stores, eager to once again eyeball the bananas and squeeze the avocados. But others, drawn by the convenience, will continue buying day-to-day essentials online. In response, retailers will need to make their software faster, more intuitive, highly resilient and always available.
• New breaking points. Transaction volumes in many online retail sectors rose 74% in March 2020 compared with the same period in 2019. This has stressed IT systems and supply chains: Amazon Prime customers can no longer order AA batteries and pasta on Monday and receive them Wednesday (or even the following Wednesday). Cloud collaboration software like Microsoft Teams has experienced outages that poke holes in the myth of infinite scalability. Pandemic-induced demand spikes are spurring retailers and cloud service providers to improve their software – and press their suppliers and third-party sellers to do the same.
• New collaboration and service delivery models. Before the Covid-19 crisis, software engineering teams (pods and squads) for businesses and IT service providers typically were co-located. Now they collaborate from home using cloud services like Google Meet, Cisco Webex Meetings, Microsoft Teams and Facebook Workplace. When they return to the office, they’ll have the tools and processes in place to continue collaborating remotely, whether occasionally or usually. The new mantra is “software engineering and support anytime, anywhere.”
Reimagining Software Engineering
To adapt to these new behavior patterns, companies will need to 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 and highly adaptable software requires three strategic imperatives:
1. A cohesive business and software product strategy. The Covid-19 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. A few questions to ask as you re-visit your software strategy:
- Can the customer do business with us anytime, anywhere?
- Do we have the right channels of engagement (e.g., browser, mobile app and voice)?
- Is the experience so intuitive that customers can use it with little or no training? Look beyond your usual digital-channel customers to your Great-Uncle Seymour, suddenly thrust into an online world.
- Is the customer experience both functional and elegant?
2. 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 include:
- Can our applications take full advantage of cloud scale, automation and elasticity? If you’re simply lifting and shifting monolithic applications to the cloud, the answer is no. To answer yes, you need a cloud-friendly or cloud-native application architecture.
- Are our applications secure? Cloud-native architectures make deployments more distributed – and therefore more complex. This requires a holistic approach to security. You’ll need technologies that can secure thousands of containers and web application firewalls or more sophisticated runtime application self-protection.
- Can we detect and resolve issues quickly enough to avoid 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.
3. A nimble and modern development methodology. It’s time to embrace DevOps. With Agile and DevOps, working code can be released to production in a fraction of the time needed with waterfall development. Also 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 current crisis highlights the need to enable developers to work anytime, anywhere. Make sure they have collaboration tools (e.g., Microsoft Teams, Slack, Miro), conferencing tools (e.g., Webex, GoToMeeting, BlueJeans), independent developer environments (e.g., Visual Studio Code, Eclipse, NetBeans) and pair-programming tools (e.g., 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. Get a head start now by:
• Stepping up transformation and modernization efforts in digital channels and supply chains. If you don’t already have a digital channel for customers and suppliers, start building it now so that you can respond swiftly to new business patterns. Treat internal and external access the same, making sure that authorized users can access them anytime, anywhere.
• Accelerating cloud migration and modernization to take advantage of cloud scale, automation and elasticity. Set your sights beyond simply “lifting and shifting” applications to the cloud, which provides limited benefits. Instead, modernize legacy applications by re-factoring monolithic code into microservices, making it faster to adapt your service to address new user needs. Think about application security holistically rather than focusing just on edge security.
• 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.
For more information about how business is affected by the crises, visit our special section on Covid-19.