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.”