No sane project manager or app developer wants his business project to fail, but inevitably, the majority of projects do just that. While success or failure is difficult to predict, businesses should put the right steps in place to mitigate potential for project failure.
Craig Johnston, VP of engineering at Web development firm Sudjam, recently spoke about four key reasons why app development projects fail during his presentation at Geekend Roadshow, a technology-focused portion of the DMA2011 conference, presented by digital creative agency BFG Interactive.
Johnston says that clarity, simplicity, complexity and constraints are the key areas that project managers should focus on when approaching an app development project.
In short, Johnston believes that "process is the solution." Having a set process in place enables all team players—from creatives to business types—to be on the same page. But process can only help to solve a problem if you know what the problem is, he warns.
Read on for Johnston's ideas on conquering the app development process and minimizing project failure rates.
1. Communicate with clarity
Communicating needs and expectations with designers and developers can be a difficult task for project managers and "idea people" who are not well-versed in technical areas. As a result, sometimes the biggest faux pas in app development is the lack of clarity when communicating ideas to developers.
During kickoff meetings, Johnston explained, project managers and clients often want to press developers to fork over details on the timeline and costs. The important piece of detail that they should be conveying, though, is what the idea is and what they want the developer to create in order to solve the business problem.
The project manager should have a clear idea of the solution in mind, so that he or she can clearly communicate it to the developer. "If you don't have a clear picture of the solution, you are not qualified to communicate it," says Johnston.
2. Aim for simplicity
When communicating an app idea and its desired features, project managers should start with the big picture first, advises Johnston.
When building assembly furniture—such as that from IKEA, for example—it helps to have the complete picture of the furniture on the front of the product's box, Johnston explained, as the black-and-white instructions are quite confusing without context.
In an app development project, the big picture provides developers with a gauge for context. While small details—such as image sizes, menu title names, colors and so on—are important, they should be communicated in context of the bigger picture.
It's rather common, though, for developers to experience a parsed-out flood of e-mails of minute details before the solution (i.e. what the app is meant to do) has even been communicated by a project leader.
"You need to sort out the details, and simplicity helps you find the context to sort out those details," says Johnston. "Details without clear context will create unnecessary complexity...and unnecessary details also multiply complexity."
3. Consider complexity
"Process needs to solve the problem of complexity. More importantly, though, process needs to help us cope with complexity, because it exists in everything we do, whether it's whittling a piece of wood or developing a large enterprise application," says Johnston.
As an app gets closer to being finished and the final product becomes clearer, simplicity starts to shine through. Suddenly, everyone can see the idea in action. "Now that they can see that picture," Johnston says, "[the project manager] can take [the developer's] simplicity and use it against [him], saying, 'I just want to one more simple thing."
What a project manager sees as simple, though, may not always be an easy fix or addition. "The reduction in complexity makes a simple problem look like it's going to be a simple change, but really it can sometimes result in a huge change needed."
"The underlying complexity of an idea exists regardless of our acknowledgement of it," says Johnston.
Acting as if complexity doesn't exist doesn't make it go away. Therefore, potential areas for complexity should be discussed fully. Johnston says, "Exploring potential complexity allows us to predict the magnitude of changes to an idea. Nothing is 100 percent predictable, but that exploration gets lost on a lot of projects, because complexity is the elephant in the room that nobody wants to talk about."
4. Know your constraints
"A lot of clients I see feel as though they're showing constraint with their project, because they've only incrementally screwed it up," says Johnston.
Incrementally pushing boundaries, though, isn't constraint, he reminds, pointing to the "just one more potato chip" conundrum as a metaphor:
"If you eat a human-size amount of potato chips, and then you say, 'I'm just going to have one more,' you can show constraint by just having one more. But then, you can eat that potato chip and say, 'I just want to have one more. I'll show constraint by only having one.' And you can repeat that process, showing constraint one hundred more times until you hit the bottom of the bag."
So, how do you recognize and handle constraint? Johnston says, "If an idea is changed after development has begun, the idea is unconstrained." Having an unconstrained idea makes development more difficult, taking up more time and money to finish the initial iteration. As a result, "An unconstrained idea necessitates an equally unconstrained timeline and budget," Johnston says.
"There can sometimes be an attitude that there has been a tolerance or an endurance by the business in the extension of the budget and timeline, when both have been extended based directly on what the business wanted," says Johnston. "If you want an extra feature, it costs an extra day. That's not tolerance; that's a fair trade. If you go into a restaurant, and you order a meal, and then you order dessert—the dessert costs more. The restaurant didn't put you over budget—you ordered dessert. You don't get mad and [fight over the bill]."
The same should be true in the business world. Constraint should be showed by businesses in the way of clearly communicating an initial idea and needs and sticking to those throughout the project. If additional thoughts are thrown into the mix, businesses should be prepared to pay more in the currency of time and/or money.