IDC analyst Stephen Elliot estimates that 30 to 35 percent of IT projects fail. Other studies put the figure higher, approaching 50 percent. Across the board, one of the reasons cited consistently for why custom applications fail to deliver their intended outcomes is misalignment with user and business needs.
‘Outcomes’ is the key word here. Historically, criteria such as on-time, on-budget, and to-specification delivery of a solution were the predominant measures of IT project success. But that definition of success is evolving, as enterprises place greater emphasis on IT’s ability to enable—and, in many cases, drive—the overall business strategy.
The Project Management Institute’s 2017 Pulse of the Profession report captures this shift nicely:
The traditional measures of scope, time, and cost are no longer sufficient in today’s competitive environment. The ability of projects to deliver what they set out to do — the expected benefits — is just as important.”
So how can IT leaders prevent IT project failures and ensure their teams build applications that fully realize the expected benefits? One approach that has seen a recent surge in popularity is design thinking. The design thinking process calls for a high degree of empathy for, and understanding of, end users; a creative, test-and-learn approach to new ideas; and constant iteration toward optimal outcomes.
Leverage the Design Thinking Process to Ensure Successful Application Outcomes
What many enterprises have realized is that the design thinking process helps address the underlying, non-technical causes of IT project failures — lack of IT-business alignment, poor communication, and rigid thinking. Here are five principles for how design thinking helps ensure better outcomes, both for an application’s users and the organization creating it:
Traditional development processes, with specialized roles working in silos, perpetuate the gap between the development team and the business/users for which they’re creating an application, leading to lackluster results or outright failure. The design thinking process, on the other hand, promotes cross-functional teams that work collaboratively and comprehensively to deliver solutions that delight users and meet business objectives. Rather than technical specialists, these teams are typically comprised of individuals that are tech-savvy but also understand the business. Just as important, they’re creative and motivated to solve problems, not deliver a set of requirements.
While methodologies like agile can provide an effective way of solving problems, they don’t guarantee you’re solving the right problems in the first place. That’s because humans have an innate tendency to accept suboptimal environments, and often can’t articulate the capabilities needed to deliver the intended outcomes. The design thinking process seeks to overcome this challenge through the process of developing a deep understanding of an application’s intended users, their behaviors, and their intrinsic motivations. These user insights are used to define an actionable problem statement that is continuously tested, validated, and refined (or re-defined), culminating with a solution that realizes the desired benefits.
It may sound counterintuitive, but design thinking helps prevent IT project failures by creating an environment where failure is encouraged early and often in the process. Recognizing that it’s extremely rare to get things right the first time, the approach calls for teams to go wide and explore as many options as possible in the Ideation phase. Most ideas will be discarded, but through this process of learning, the team can narrow in on the most impactful solution to develop further. More often than not, this isn’t the solution that was envisioned at the onset of the project.
Prototyping is one of the core design thinking principles. The explorative process of making tangible prototypes, whether high- or low-fidelity, makes the team think deeply and ask the right questions—in a way that abstract documents simply can’t. Organizations like ADP take this a step further, eschewing prototypes altogether and building working software that they put into users’ hands as quickly as possible. This approach allows them to start collecting feedback early to validate assumptions, uncover new user insights, and rapidly iterate toward the desired outcomes. Frontloading feedback cycles dramatically reduces the chances of needing substantial, high-cost rework to fix an application’s purpose or user experience, which could put the project in jeopardy altogether.
It’s present in each of the points above, but bears repeating: the design thinking process helps prevent IT project failures by ensuring the team keeps users’ needs front and center at all times. This starts in the Empathy stage, for sure, but ultimately carries through the entire process, with user feedback serving as the bellwether for whether the application is meeting expectations (and if not, what’s needed to course correct). At any point in the process, the team should be prepared to jump back to the Empathy stage to uncover new user insights, reframe the problem, and continue development with a renewed sense of “why”.
Successful Outcomes Require User Focus, Rapid Iteration, and Instant Scale
The one IT project success factor that design thinking doesn’t directly address is the ability to operationalize and scale applications once they’re proven. Within enterprises, too many great ideas never make it past the prototype stage, leaving project goals unfulfilled. The obstacles are often organizational, particularly for enterprises that haven’t embraced DevOps. There may not be a clear process—or operations may simply lack resources—to move new solutions into the core of the organization. They may also be hampered by the length, complexity, and cost of on-premises deployment.
Either way, it’s important to plan for how to operationalize applications early in the process. Taking the first steps towards DevOps can help tremendously. In addition, selecting the right platform upon which to build these applications can help ensure a seamless path from prototype to production. Capabilities like a cloud-native architecture, with out-of-the-box high availability and failover, ensure that applications can be deployed at scale—and thus realize their full potential.