Summary: Many businesses face an application development bottleneck. Application development efforts can’t keep up with business demands. As a result, business users are often stuck waiting around for the applications they need. In this article, we’re looking for common problems that create this bottleneck, and ways to address them.
Let me ask you a question: In your organization, can your application development efforts keep up with the business demands? When users request a solution, how long do they wait for it?
It’s a common source of problems in many businesses. Development lags far behind demand. Users wait weeks or months for new solutions.
What happens as a result of this development bottleneck? Typically, it hurts the business in one of two ways.
First, it harms overall productivity. When users are stuck waiting around for the solutions they need, the business cannot operate as efficiently as possible.
Second, it creates Shadow IT. Some users get tired of waiting around, and find their own solutions, without telling the IT department. I won’t get into all of the details here, but you can learn about important Shadow IT facts in this article.
So, if your business faces an application development bottleneck, you must answer two questions: Why is it happening, and how do we fix it? We answered the second question in a past article, so today, let’s explore why it happens. What problems create this bottleneck? While the list could certainly be longer, here are 5 common problems:
1. Lack of detail in the requirements
Have you ever tried to explain a task to someone else…only to have them do something completely different? They interpreted your request in a way you never could have imagined.
This happens all the time in development, and is probably the biggest problem behind the development bottleneck. The users don’t adequately explain their requirements to the developers. Or, like a game of “telephone”, requirements get passed through multiple people before making their way to the developer. By the time they’re explained, it’s nothing like the original request.
When this happens, the developer creates a solution that doesn’t meet expectations. As a result, the application (which should’ve been completed already) goes back and forth between the developer and the user until it’s complete.
Meanwhile, the other projects that the developers were supposed to be working on get delayed.
How can you address this problem? First, make sure developers sit down with the actual users to learn their goals/requirements before the project. Second, as explained below, show progress to users throughout the project to ensure you’re on the right track.
“One area to consider is lack of early documentation, whether that is in the form of ‘old-school’ written documentation or rapidly developed prototypes,” says Matthew Brogie, COO of Repsly. “If there is not enough detail in the specification up front, developers may be left to ‘fill in the blanks’ on their own. We use a practice where development presents their progress to the business user on a regular basis for confirmation and feedback. This enables any misunderstandings about requirements to be identified early.”
2. Too much detail in the requirements
On the other side of the coin, too much detail in the requirements will create a bottleneck as well. Does that sound confusing? Let me explain:
In any development project, the Pareto Principle is in full effect: Only 20% of the features will solve 80% of the problem. Oftentimes, the features that require the most effort only deliver minimal value.
However, users have no idea how long each feature takes to implement. What may seem like a “simple” feature to them, may actually take days of development. As explained below, this creates a bottleneck when users include every feature they can possibly imagine in their requirements.
“Some users get overly ambitious when they write up requirements,” says Tyler Wassell, Software Development Manager at mrc. “They include a long list of features, without ranking their importance. This can add weeks or months to a development project because the developer can only assume that every feature is essential. To combat this problem, sit down with the users beforehand, and make them rank the requested features. This gives you a good idea where to start, and dramatically reduces the time it takes to deliver a working application to the users.”
3. Technical Debt
Does your company run on legacy systems? It’s a common issue. You run on outdated systems because they’re vital to your business–and they just work. Replacing those systems comes with cost and risk you’re not willing to swallow.
However, these systems don’t always fit well into the modern world. A modern application might not integrate well with your old systems. Or, your legacy systems are filled with so much spaghetti code, that every change you make could impact ten other parts of the system.
The problem is, every new application you create must integrate with this system. This integration is not only time consuming, but only further adds to the complexity of the system.
“Most of the software created today is not born into vacuum,” says Alex Merkulov, Founder and CEO of 8th Sphere. “It usually has to interoperate with existing code base, cringing under the weight of the existing technical debt. The more debt you have, the harder it is to deliver a new feature. Get rid of technical debt by frequently refactoring existing code.”
4. Quality Assurance is done at the end
In every development project, you’ll find many different areas where things can go wrong.
As mentioned above, requirements often get lost in translation. The finished product doesn’t meet the user’s expectations.
Other times, users see the finished product and realize it’s not what they wanted. It’s exactly what they requested, but not what they need.
Still other times, the users start using the finished application, only to realize it doesn’t work exactly as they had hoped. Maybe there’s a bug, or it’s just built in a way that doesn’t meet their needs.
What happens any time these problems occur? The application goes back to the developer for more work. The project gets extended, and the developer’s other projects gets pushed back. The development bottleneck grows tighter.
How can you address problems like these before they get out of hand? Involve users from the beginning. Start the quality assurance process early in the project, and you’ll catch these problems before they slow you down.
“The first place to look is QA,” says Brogie. “Many organizations believe this should be at the end of the process, but involving QA during the planning phase of a development project can shave huge amounts of time off the project. Involving QA early allows them to develop a test plan based on requirements that developers can use as a basis for their own unit testing. This helps align expectations and prevents rework.”
5. Over-reliance on a single department
Oftentimes, businesses face a development bottleneck because one department is overworked. There just aren’t enough hours in the day to complete the backlog of projects.
For instance, development projects typically go through the IT department. But, they also handle reporting, hardware, the company network, and more. They can’t dedicate all of their resources to completing development projects, and the business can’t afford to hire new staff.
If you’re in this situation, are you just stuck with a development bottleneck? Not at all.
To relieve this bottleneck, look for tasks that the IT department can offload to others. For instance, Business Intelligence (BI) and reporting is a common IT burden. But, with the rise of self-service BI and reporting tools, it’s now a task that’s easily performed by end users. While it varies by company, you’ll find many other tasks like this that you can remove from the IT department.
The fact is, you have access to more end-user tools than ever before. Relieving the development bottleneck often comes down to giving end users the right tools to perform tasks that were formerly IT-specific.
Summary
These are just 5 problems that create a development bottleneck, but the list could certainly be much longer. If you would like to add anything to this list, I’d love to hear it. Feel free to share in the comments.
Nice post and Your website are very cool. Well thanks for the article. Web design and development is a field where happens trends time to time. So the designer or the developer should keep update himself with these trends. So the post you have shared with us is very useful. Please keep posting such nice information.