Summary: As technology evolves, web application development is playing an increasingly important role in the business world. More and more, development speed directly contributes to a company’s competitive advantage. The problem: Many companies still struggle in this area. Learn which problems slow them down, and how to fix each one.
As digital technologies transform the business landscape, we’re seeing web development become increasingly important. As Forrester states, “The software you deploy, and especially the custom software you create, will increasingly be part of your competitive edge.”
How important is development to the modern business? McKinsey recently conducted research on the importance of software development. What did they find?
- Software development has grown into a strategic differentiator. As businesses rely more on software than ever before, those who ignore its importance pay a steep price.
- Despite it’s growing importance, development still gets little attention from the C-suite.
- Massive differences exist between the highest and lowest performing organizations in terms of software development. The top companies developed software 3x more productively than the bottom companies. They also experienced a 70% shorter time to market.
What can we learn from their findings?
First, many businesses still haven’t recognized the importance of efficient development. They’re still creating software applications using the same (slow) processes they used a decade ago.
Second, the differences between the highest and lowest performing companies is massive. Those who can deliver software quickly have a huge advantage over others.
The big question: Why are some businesses delivering applications/software 70% slower than the others?
Today, I’d like to focus on this question. What problems create these development delays? What are some of the most common inefficient web application development practices? While the list could certainly be much longer, here are 6 of the most inefficient practices to watch for:
1. Starting work without a clear understanding of needs
“The number one inefficiency that we see is to begin coding without a clear understanding of how the software will be used and for what purpose,” says Ryan Englin, Partner at Inspire Business Concepts. “We’ve discovered that too many people want developers to read their minds. The problem is that developers aren’t business people and business people aren’t developers. Without a clear understanding of how the application will be used to support the business, unnecessary features are added or necessary features are missed.”
As any developer knows, user communication and expectations are the biggest hurdles in most projects. Oftentimes, what the user/client requests is far different than what they want or need. Or, maybe they don’t know exactly what they want, and assume the developers will just fill in the blanks.
Starting a project in this way leads to wasted time, angry customers, and frustrated developers. How do you avoid this inefficiency? As explained below, the initial discussion lays the groundwork for the entire project.
“The number one biggest way to set yourself up for disaster is to not sit down with a client and nail down everybody’s responsibilities and expectations before starting anything,” says John Nesler, web developer at Creative California, LLC. “It’s pretty common for web development jobs to start off with a conversation that boils down to, ‘Okay, so we’ll put together a couple ideas, get together with you in two weeks to review them, and then go from there’.”
“That first meeting is when you lay the foundation for everything that comes afterwards. It allows you to catch possible mistakes and understandings early on and nip them in the bud, it gets clients up to speed very quickly as to what they need to provide to us if we are to meet the agreed upon deadlines, and it allows us to capture the voice and presence of the business as a whole.”
2. Poor communication
Let’s take the last point one step further. While many developers do a great job of understanding the client needs upfront, they fail in another critical area: ongoing communication.
It’s a common issue. Once the developers have the specs, they develop the requested application–or, at least what they believe the user wants. When the user sees the finished application, it’s nothing like they envisioned.
“Poor communication with the client leads to excessive feature creep,” says Max Sullivan, Lead Web Developer at ARTCO by J. “It also creates situations where work is done unnecessarily or incorrectly and ultimately turns into a delayed project and unhappy client. I’ve seen development companies have to redo a project two or three times simply because they refused or were incapable of staying in contact with their client.”
How can you avoid this problem? Frequent communication. Keep everyone involved informed on the project status throughout the duration of the project.
3. Taking shortcuts
In any development project, you’ll inevitably face a decision: Choose the fast way, or choose the right way? You’ll run into opportunities to take shortcuts–knowing full well that it’s not the best solution.
Sure–when you’re under a tight deadline, the fast way is tempting. It’s so easy to throw something together that works short term. But, these “quick fixes” create far more work down the road.
“My advice is do things right the first time,” says Tyler Wassell, Software Development Manager at mrc. “It’s easy to take shortcuts, but those shortcuts add up over time. You spend far more time maintaining the application than you would’ve just building it correctly in the first place.”
4. Focusing on low priority tasks
In any development project, the Pareto Principle is in full effect: Only 20% of the features will solve 80% of the problem.
However, many developers make the mistake of focusing on the low priority tasks. They spend their time working on the 80% of the project that only delivers 20% of the results.
“A great amount of time in software development is allocated to features not beneficial to the primary objective of the project,” says Michelle Payne, Director of UI development, MWI Inc. “Prioritization should be based on the highest impact features vs the lowest impact features; this is often switched allowing too much time to be allocated to low priority tasks while high impact tasks remain on the sidelines. Low impact tasks are often prioritized over high impact because the tasks are easier and less intensive. Software is frequently released with many addons while the primary product remains unfinished or full of bugs. Switching the focus to high impact priorities sets the project up for a higher success rate. Prioritizing by high impact features, allows for better use of the budget; in the instance where budget begins to diminish towards the end of a project it is more important the budget has already been allocated to the right features.”
How can you avoid this problem? Focus on the Minimum Viable Product (MVP). Determine the minimum you need, and get it out to the users. From there, you can build your product out based on user feedback–which ensures that you’re not focused on the low priority tasks.
5. Building from scratch
Another common inefficiency we see in development projects: Building everything from scratch. Just because you can build a feature yourself, doesn’t mean you should.
Do you need a specific feature built into your application or site? Do you need a responsive foundation? Chances are, these pieces have already been built and tested by someone else.
With all of the available frameworks, tools, and open-source projects available today, building an application from the ground up is impractical. Instead, look for libraries you can include in your project, or other applications that offer integrations.
6. Using the wrong tools
When you have a hammer, every problem looks like a nail. When some developers find a tool they like, they try to use it in every project…even those where it’s impractical.
The fact is, tools can improve efficiency–but, using the wrong tool for the job will actually slow you down. Maybe the project isn’t large enough to warrant a tool, or maybe familiarizing yourself with the tool would take longer than the project itself. Whatever the reason, choose your tools wisely.
“We’ve noticed that when we bring on a new developer to do a site with us, so many of them want to use sophisticated tools when such tools are just not needed,” says Alan N. Canton, Managing Partner at NewMedia Create. “Take CSS pre-processors like SASS and LESS. These are great if the scope of the project warrants them. But most really don’t. Creating a bunch of small LESS files all imported by a ‘super’ LESS file just makes something simple into something complex.
We’ve found that often learning to use the tool is harder than the ‘problem’ the tool is supposed to solve. Another way to say this is to make sure you choose your tools wisely… do a good job in assessing the need for the tool, and if the need is there, fine, go for it.”
Now, these are some of the most common web development inefficiencies, but the list could go on. If you would like to add anything to this list, I’d love to hear it. Feel free to share in the comments.
If you enjoyed this article, sign up for email updates
We value your privacy. We will not spam you or share your email address with anyone. You're free to unsubscribe at any time.