These days, everything is connected. From smart houses filled with smart appliances to connected cars packed with hundreds of sensors, the Internet of Things (IoT) has moved beyond disruption to become a mainstay of daily life. With this massive opportunity, device makers are attempting to rush all kinds of connected products to market.
Getting there, though, is a challenge. The data-intensive IoT brings increased development risk, especially for companies that are creating particularly innovative products — things that haven’t been built before. And despite advances in the tools, languages and hardware available to developers, IoT and embedded software projects still run into trouble. They miss deadlines, hit intractable technical obstacles and run over budget.
RELATED CONTENT: IoT is the next digital transformation
The potential for project failure is so profound that companies actually expect a poor outcome. According to one industry study [Geneca], 75 percent of business and IT executives suggested their software projects were “doomed” from the outset.
I understand this pessimism. I’ve seen promising products stumble because the decision-making is far more complex for these types of devices than the “dumb” or stand-alone devices of years past. From where I sit as CEO of a software firm that has helped companies build more than 500 high-impact connected and embedded devices and applications, these are the three most common reasons — unrelated to budget, as that’s a topic for a different article — that software development projects fail.
1. Unclear objectives
Without knowing precisely your aim, meaning you have objectives that aren’t well articulated, it is too easy to build something your customers don’t want or need.
2. Overly optimistic expectations
Overly optimistic expectations get you when a project turns out to be harder than you anticipated. Which is always. If you’re not prepared, what happens when the project’s goals prove too ambitious for the allotted schedule? One tiny speedbump and you’re way off track.
3. Excessive complexity
It’s often difficult to identify, understand and effectively manage risk if a project is overly complicated. And even projects that seem simple can quickly turn complex. Take the example of what appears to be a very basic development task — building a coffee maker. Your plan is to develop a commercial coffee brewer with a touch interface, to be used in a trendy new restaurant chain. So, no old-school blister buttons, just a sleek, modern touchscreen UI. Easy enough. All the device needs to do is brew and dispense a perfect cup of Joe. Your developers can code this in their sleep.
But once you dive into the project, complexity quickly escalates — for instance, because your product development team decides to add new features that weren’t part of the original spec. Like accommodating different size coffee cups. Or offering customization options like sugar, or a sugar substitute.. And how about some milk in your coffee? What kind? Whole? Skim? Perhaps half caff grande cappuccino with Stevia and almond milk? So many choices!
Development is more complicated now, but still relatively straightforward. But then come myriad other decisions. Does the coffee maker need internationalization, say, a UI that works in six languages for use in 28 countries? Maybe it needs a companion iPhone app. What about Bluetooth connectivity? Alexa integration so it can re-order its own supplies? A high-end and a low-end model based on the same code? Can the discount board you originally spec’d even handle this?
Point is, what starts out simple typically doesn’t end that way and each add-on brings more risk, more possibility for something to go wrong. As devices get smarter and even more complicated, something is bound to go wrong.
Sure, developers will have new tools — like AI platforms and deep-learning search engines for coding — yet their jobs won’t get any easier. Different certainly, but not easier. As data science and programming converge there will simply be higher expectations.
Succeeding with IoT initiatives
There are many measures organizations can take, for instance, identifying risk early while they still have the ability to influence it. And starting software development projects with a surge — staffing robustly with senior engineers who can quickly uncover unknowns to add buffer time before scaling back with less-expensive resources who can manage the project once it’s headed in the right direction.
But in my opinion, the one element that can have the most positive impact on a project is to lead with UX or the user experience — meaning, do the most difficult thinking up front and keep humans front and center. While this has always been important, in the age of the IoT when algorithms parse data from the network’s edge to the cloud, it is absolutely essential for business success.
Human-centric UX design involves creating solutions that are both functional and engaging. Not only does UX design provide a structured way to identify problems before engineering encounters them, it allows you to break a project into manageable pieces, and it serves as a proxy for a more detailed spec.
Most important, thoughtful UX design ensures that you’re not only building well but building right — as in building the right thing, something your customers actually want.
Stakes are high for today’s businesses as they search for new ways to please customers by creating innovative new digital products and by adding connectivity to legacy products that were not originally developed with this functionality in mind. Certainly, technological innovation — from AI, machine learning and robotics to VR/AR, gesture technology and intelligent apps — will bring more intriguing and hopefully more usable connected products. Yet, many of the fundamental reasons future software development projects will fail are the same as today.
What’s the takeaway? While addressing risk and staffing will continue to be as important as ever, by also developing a clearer understanding of and more meaningful focus on users and their experience with your product, you’ll dramatically improve your potential for success.