Recognizing and overcoming development bottlenecks

Michael Gabrian

by Michael Gabrian on 06/09/2016

A quick breakdown of web development bottlenecks

What happens when a company’s input is greater than it’s output? What do you do when you lose efficiency because of capacity incapabilities? In this blog, I’m going to talk about some factors that affect development bottlenecks, as well as some ways to identify and fix them. Enjoy!

“You will launch many projects, but have time to finish only a few. So think, plan, develop, launch and tap good people to be responsible. Give them authority and hold them accountable. Trying to do too much yourself creates a bottleneck.”
-Donald Rumsfeld

A few common areas which cause bottlenecks in app development

Features of new application do not match real business need

It takes hard, systematic work on the business side to come up with useful software features. Random users should not be placed directly in charge of development teams. Otherwise, redundant or contradictory new features will push back the release of useful functionality.

Lack of quality assurance

Good software development is all about software testing. An entire "test driven development" (TDD) discipline exists for this reason. Each new feature should be covered with automated tests which can be run at any time. This will allow for faster regression testing and faster development times.

Difficult integration with existing code and systems

Most of the software created today is not born into vacuum. 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.

Client budget restrictions

What happens when the requirements exceed the available budget? The project then either gets scrapped because the client can no longer afford it, put on hold until the client decides to continue or cancel, or you continue to work but take the loss.

Skills gap, needing employees that know Java, Javascript and .Net

So you’re developing an app, or maybe you’re about to begin creating one for a client, but you don’t have a team member who knows a language or platform that you need. Now you need to have an existing team member learn the skill, or hire someone else. This process is costly and adds more time to the timeline.

Time

According to Kinvey , it takes about 18 weeks to develop an app. This doesn’t include the time it takes to come up with the idea and the planning behind it. The amount of time isn’t quite the issue, it’s the client’s expectations. You have factors to consider such as testing, last minute changes, etc. You really can’t rush the front and back end development and expect the same amount of quality. So when you have several projects coming in, each taking a handful of months, it’s going to add more and more to the developer's workload.

Why does this matter? What effects will they have?

When you face these obstacles and work production begins to slow down while tasks and responsibilities build up, there could be several implications. Obviously you’ll have a stressed out team trying to figure out solutions; but this could also force them to rush and create a poor quality product. In the web and app development world, this could mean messy code mistakes that are harder to find as they move on. These noticeable errors then lead to dissatisfied customers, and then to lost revenue.

Breaking problems down with the question “why?”

The Five Whys technique is used to address a problem by flooding it with the question “why?”, then breaking it down until eventually you have the root cause.

Problem: Client is dissatisfied with the first version on their new app

  • Why? There was difficulty integrating a needed feature
  • Why? There was incorrect/messy code
  • Why? Junior developers with little relevant experience wrote the code
  • Why? None of the senior developers were available
  • Why? The senior developers were preoccupied with other projects

Counter-measure: The team either needs to take on less projects, so that more senior developers will be available to help the junior developers, or the team needs to hire/train more senior developers.

The root cause here? The team didn’t have enough skills workers to work on this project. They took on too much work. There was too much demand on the skilled developers, so they had to pass it onto to junior developers with little experience, then leading to poor quality code.

Solutions: Increase efficiency, or decrease input

It’s possible that you’re taking on too many projects, or your workload is just too much; and that’s okay. In this case, just reduce the input. If you’re a small company with limited resouces, biting off more than you can chew will probably end up hurting you. Success in this case is knowing what skills your team is armed with, having a smooth process, and setting clear expectations.

For companies that can afford to invest in more resources, your other option is to increase efficiency. You’ll be able to see where the bottleneck is based on where the most work gets backlogged, or where the team gets stressed the most. You can expand that bottleneck and maintain efficiency.

Is your team facing a development bottleneck? Feel free to comment below or email us for some advice!