Developing a COVID-19 application? Design it the right way

Application developers with skills and an idea could design an app to combat the virus. Follow these insights to effectively design and deploy a coronavirus-related app.

Developers are in a unique position amid the COVID-19 outbreak around the world. They play a role in technological elements from data aggregation and analysis to messaging to community-building, giving back in meaningful ways through software projects.

"Developers are doing their part to help better our nation by creating simplified opportunities, putting humanity back into technology and helping us stay connected," said Malcolm Ross, vice president of product strategy/deputy CTO at Appian.

If you want to build a COVID-19 application to share data, foster communication or otherwise help fight the novel coronavirus, focus on collaborative projects, scalable apps and designs that will run with minimal maintenance.

Innovate through improvements

Look to join existing projects rather than start new ones to develop a COVID-19 application.

The best strategy lies in collaboration, since fragmentation is wasteful and can confuse people when what we need is easily discoverable, accurate, trustworthy information, said Benjamin Stein, general manager of developer experience at Twilio.

"Engaging your communities to offer your skills for collaboration will create a higher impact than creating redundant solutions in a silo," Stein said. Many developers already volunteer their time to create chatbots that inform while eliminating face-to-face communications. Another area where enhancements would be welcome includes video conference tool improvements.

Design for scale

Developers who build COVID-19 applications to help in their local community should evaluate if those assets would serve others as well. As this is a global pandemic, it's difficult to determine if one project in one location will generate results elsewhere. Design applications to be shared and implemented anywhere.

Scalability can play a major role for application use in the battle with COVID-19. Applications that can scale up and down without waiting for infrastructure builds are of the utmost importance. Turn to technologies like serverless that scale elastically and keep costs down. All major cloud platforms offer serverless, which makes for an ideal environment for global application deployment.

Design for the long term

Developing an application for an immediate and growing threat, such as this pandemic, means downtime and bugs should be minimized. Look for tools can run and scale themselves. Anything that is successful will also need long-term support.

"As builders, it's fun to create the thing -- less fun to maintain it. But if we're talking about life and death, things can't just be abandoned," Stein said.

Stein also recommends that developers prioritize COVID-19 applications with the following attributes:

  • single-page architectures;
  • distribution via content delivery networks; and
  • global scaling without the need for back-end database scales or new web server provisions.

These tenets of a design help get apps running quickly and can help minimize the ongoing maintenance burden.

Hack on open source

Another way to contribute to global efforts is to take a break from streaming services like Netflix and instead dedicate that time to the open source community, said Dan Murphy, senior principle engineer at Veracode.

While you can join open source projects dedicated to fighting the coronavirus, as described above, you can also simply improve the projects that you personally rely on. You'll find that helping others is a great way to help yourself.

Maybe you use a framework extensively at work and have been too deadline-driven to submit a patch. Maybe you can isolate a specific bug that has bothered you into a series of precisely reproducible steps and help make a developer's day a little better. Murphy asked, "Is that looking pretty crufty? Spruce it up and open a merge request."

Dig Deeper on Software development best practices and processes

App Architecture
Software Quality
Cloud Computing