What percentage of IT projects fail? It’s hard to say. I’ve seen surveys that put the number at 25%. Others surveys push it closer to 70%. While that’s quite a range, the point is this: those numbers are far too high. Even if it is “just” 25%, that’s still 1 out of every 4 projects. That’s too many.
How can we bring those numbers down? Today, let’s focus on ways to reduce failure for one common project type: web application development projects. In this article, we’ll take a look at mistakes that hurt web application development projects. These are chronic bad habits that turn web application development projects into disasters.
What deadly sins do even the most experienced web application developers make? What common web app development mistakes crop up over and over again? We posed those questions to a few experienced developers and have compiled these answers below. Without further ado, here are 7 deadly sins of web application development:
Sin #1: Forgetting your audience
“Don’t forget your audience,” explains Walden Leverich, CEO of Tech Software “It doesn’t matter what the makeup of Reddit’s audience is; it doesn’t matter what the most popular browser on Google is; the adoption of mobile technology by Facebook users is irrelevant. What matter is your customer base. Look at the analytics for your web application and make your code decisions based on that. Our user base took a good 12-18 months to decide IE6 was dead after the ‘internet’ decided it was dead.”
It’s an excellent point, and highlights the importance of understanding your users. What browsers do they use? What problems are they trying to solve? It’s easy to get caught up in the latest technology or the latest trends–when in reality–those trends may not apply to your users.
Sin #2: Re-inventing the wheel
These days, coding everything from start to finish is usually unnecessary. With all of the available frameworks, tools, and applications that exist today, you can probably find something that gets you most (or all) of the way to your goal. Why reinvent the wheel and build everything from scratch when you don’t have to?
“Purchasing and integrating solutions is much faster than developing them,” Douglas Karr, CEO of DK New Media. “Developers can be an ornery bunch, always wanting to take on too much and badmouthing canned controls. But purchased solutions often have better support, a greater user history, and can be integrated much easier than paying a developer to build it from scratch.”
Sin #3: Building without clearly defined requirements
What one issue causes more problems than any other? Communication…or, a lack thereof. It destroys relationships, kills IT/business alignment, and ruins development projects. How does this apply to development projects? Don’t start projects with undefined goals or unclear instructions. For instance, if a user asks for a scheduling application, figure out exactly what they mean by that. Their definition may vary greatly from your definition. Vague requirements almost always lead to disaster.
Ken Bodnar, CTO of SelectBidder.com, sums this up clearly and concisely: “So many times I have been asked to “Build me something wonderful” and when I did, it turned out not to be the wonderful that they envisioned.”
Sin #4: Assuming your code is obvious
Some developers make the mistake of assuming their code is so well-organized, it doesn’t need comments. While it may seem obvious at the time, what happens when you (or someone else) need to maintain that uncommented code a few years down the line? I guarantee you, it won’t seem quite so obvious then.
“Good applications will live for years, even decades, and will need ongoing maintenance,” explains Leverich. “Don’t curse the poor developer that has to fix something at 3AM with code that has no comments, poor variable names and cool programming shortcuts that are all “obvious.” When it’s 3AM, production is down, and your boss is looking for updates every 10 minutes nothing is ‘obvious’.”
Sin #5: Skimping on the user interface
“The biggest problems with applications, both on the web as well as mobile apps, is that there is not enough thought put into how the end user interacts with the application,” says Hamid Shojaee, founder of Axosoft. “Developers often assume the user knows too much about the inner workings of their applications. This is by far the deadliest sin.”
For developers, a confusing user interface is one of the most dangerous, yet difficult problems to identify. It’s dangerous because a confusing user interface will kill an application. It’s difficult to identify because the developer has spent weeks working on the application. They know it inside and out. The interface isn’t confusing at all to them. The hard part: Looking at the interface from the user’s perspective.
So, how can you avoid a confusing user interface? First, as explained in this article, involve the users from the beginning. Understand what problems they’re trying to solve. Second, as explained below, don’t ask the developers to handle design.
Bodnar explains why it’s a mistake to make developers also handle the graphics and design: “Those are two different functions and skillsets. Web developers are the mechanics that deliver the artistry. Brand designers and graphic artists are the creative control and possess the knowledge base to transmit the messages of the web [app].”
Sin #6: Ignoring test cases
In an effort to get their application shipped, or meet a deadline, proper testing is often bypassed. Don’t make this mistake. The assumption that everything “just works” is a recipe for disaster.
“Sadly, too much code is still written without even creating any test cases,” explains Klaus Sonnenleiter, CEO at PrintedArt. “Instead it is handed over in the hopes that everything works and nobody will find any problems. Even if it works initially, any later change can break the system in unexpected ways and the only protection is a good set of test cases that tells whether or not a change has broken existing functionality.”
Sin #7: Focusing on an arbitrary “release date”
Tell me: What makes a successful web application? Would you rather have one that’s released on time, or one that does everything it’s supposed to do? Of course, it’s the latter. Yet, so many web apps suffer because the developers rush through the final stages in an effort to meet the release date.
“Focus on the goals of the application, not the goals of the timeline,” says Karr. “We see too many companies fail because they worry about the launch date over the functionality. A launch date can be moved later, a missing feature can destroy your chances of having a workable application. User stories that provide detail on where a customer starts and finishes with your web app are critical. You’re launch is successful when the user can do what you said they can do.”
What do you think? Would you add anything to this list? If you can think of any deadly sins of web app development, feel free to share in the comments.