Cloud Is Revolutionizing How Industries Develop Software

Co-development gives customers a seat at the table and a stake in the outcome.

By Paul Gillin

By Paul Gillin March 30, 2020

Customer co-creation is a tried-and-true technique for developing all kinds of products and services. It’s been adopted successfully by companies like Unilever, DHL, Lego and Anheuser-Busch. But when it comes to software, little has changed over the past 30 years. Software companies do solicit input from customers, but decisions about which features to include and how to expose them are often left to the discretion of developers.

That may all be about to change as the cloud, sophisticated collaboration tools, crowdsourcing and new development techniques combine to put end-users at the center of the process.

“We are witnessing a paradigm shift that will have a profound impact on software platforms and ecosystems and will give rise to new forms of software co-development,” wrote researchers from the University of Sheffield in Thessaloniki, Greece, in a 2012 conference paper.

That shift is towards software developers and customers working together to create and evolve applications.

Current Development Challenges

Most business professionals are familiar with the experience of submitting a specification for a software application to developers only to have the result come back looking nothing like what they expected. That isn’t necessarily the developers’ fault.

“Customers can’t fully articulate their exact needs and engineers typically develop a solution with only a partial understanding of how the software should work,”wrote Maurus Reidwig, CEO of Consulteer AG, in a LinkedIn post. “Humans can’t fully articulate their exact needs for products they have never experienced.”

A 2019 Standish Group survey of nearly 8,400 software projects found that nearly 84% failed partially or completely. The top factor in successful projects was user involvement, the research firm reported. To help improve outcomes, co-development involves customers at every stage of the software lifecycle, using continuous feedback loops to ensure that the resulting product precisely meets their expectations.

Perfect Storm?

A convergence of trends is making co-development more practical, particularly for cloud-native applications. One is the rise of platform-as-a-service (PaaS), a set of tools for developing cloud-native applications. PaaS can enable development teams to collaborate and work together, regardless of their physical location, according to the online technology encyclopedia Whatis.com.

The second trend is agile development; in particular, the increasingly popular discipline of DevOps that stresses frequent code releases, continuous reviews and constant collaboration. One of the core principles of the Agile Alliance’s Manifesto for Agile Software Development is “customer collaboration over contract negotiation.”

Finally, the popularity of open-source software has validated the effectiveness of crowdsourcing, in which people who don’t work together or even know each other can create software that is superior to what any one of them could build individually.

The new breed of cloud-native software is also designed for collaboration from the ground up. For example, rather than hard-coding enhancements and extensions inside the core codebase, cloud-native software uses application programming interfaces (APIs) to expose functionality in a secure and trackable manner. ProgrammableWeb, a news and information site covering Internet-based APIs, has documented an explosion of public APIs, from less than 2,000 a decade ago to more than 22,000 as of mid-2019.

Value from the Cloud

“The cloud has made it easier to drive value because multiple customers can benefit from common functionalities,” said Dave Messinger, chief technology officer at TopCoder, a software crowdsourcing company. “Cloud has also eased communication via collaboration tools like shared documents and video chats as well as the ability to quickly share prototypes.”

The combination of agile development and open collaboration can yield orders-of-magnitude returns in speed while also improving software quality. TopCoder customer Booz Allen Hamilton used a “rapid user experience” design challenge to build visual dashboards that the U.S. Navy uses to coordinate swarms of drones. The project reportedly yielded 23 unique design concepts in just three days.

“By being involved throughout the entire software co-development process, customers have more say to ensure their goals are kept in mind,” Messinger said. “We have not only seen faster time to market but faster time to value since milestones are tied to outcomes.”

Healthcare application developer PatientKeeper uses co-development as a standard technique to build and optimize electronic health records. Because customers are the ultimate end users of the product, they can specify details of the user interface that professional developers might overlook, wrote PatientKeeper CEO Paul Brient on the company blog.

“PatientKeeper users require no formal training on our products, just as you don’t receive formal training on a consumer app you download from the Apple App Store,” he noted.

TopCoder’s Messinger agreed. “Customers react positively to seeing actual interfaces instead of just rough drawings or charts,” he said.

The combination of cloud platforms and APIs has also broadened the ecosystem of potential development partners through the popular app store metaphor. Platforms like Salesforce.com’s Force and Google’s Google Apps provide rich tools for third-party developers to enhance and extend core functionality and enable co-development.

Cloud application platforms “allow co-development relationships to be formed not only among the platform provider and individual ecosystem partners, but most importantly among ecosystem partners themselves,” wrote the University of Sheffield researchers.

Tricky Business

Co-development isn’t easy, however, particularly when the customer is a large enterprise with multiple layers of approvals. When boutique web developer Sparkbox collaborated with the Knoxville Utilities Board on an overhaul of the 5,000-employee company’s 10-year-old website, it had to contend with “multiple systems being built in parallel, underlying infrastructure changes, plentiful feedback from stakeholders and diverse platforms being integrated,”wrote Ryan Cromwell, Sparkbox’s technical director.

“Being positive and optimistic, openly celebrating good work, and asking questions make it much easier to challenge decisions and recommend alternatives,” he wrote.

PatientKeeper’s Brient believes in involving at least two customers in any collaboration to hedge against the risk of aligning the software too closely with a single customer’s way of doing business. “It is unlikely that two will have the same unique processes,” Brient wrote.

He also recommends choosing team members who are collaborative by nature and who respect feedback from the customer, pointing out that “your co-development partners are providing critical perspective and feedback, even if it is not necessarily what you may want to hear.”

Co-development challenges many of the traditional conventions of the software industry, but cloud computing is a potential game-changer. If 84% of projects fail or under-deliver, there's a lot of room for improvement.

Paul Gillin is the former editor-in-chief of Computerworld and founding editor of TechTarget. He’s the author of five books about social media and online communities. Find him on Twitter @pgillin.

© 2020 Nutanix, Inc. All rights reserved. For additional legal information, please go here.