Why app development projects go over budget and take forever to complete
A common stereotype of software development projects is that they are going to go over budget and not be done on time. This stereotype is well earned as a significant amount of projects do go over budget and take longer than expected. The million dollar question is why? I think it boils down to a few factors depending on who you partner with to do the development work. Below are the top factors I have found to cause budget overruns and missed deadlines.
- The software development company knowingly underestimates the project
- The software development company is incompetent to do the project
- The person putting together the estimate is too optimistic
- The project isn’t scoped out properly
- The client changes direction frequently
- Scope creep
- Estimating Software is very hard to do
- Having to estimate new tasks when taking over a project from another company
- Developing apps is hard
The software development company knowingly underestimates the projectI wish I could say that this doesn’t happen, but unfortunately it happens all the time. When I put together an estimate, I try really hard to be conservative in all the hours. Often after submitting a proposal I will be informed that my bid was significantly higher than other companies’ estimates. A certain degree of variation in estimates can be expected. When another company’s is several factors cheaper than my estimate, I know something is off. We have been doing app development for 10 years and I have a very good sense of how long most tasks take. While a really low estimate can be attributed to any one of the items I listed above, I know that underestimating projects happens all the time. Some companies just want to get you in the door and get a signed contract in place and then don’t care if they go way over budget.
The software development company is incompetent to do the projectIncompetency can factor in several different ways. If a dev shop doesn’t know what they are doing for part or all of your project than any estimate they give you is just made up numbers. So the numbers aren’t based in reality to begin with. The length of time it takes a developer to do a task that they are unqualified for can vary dramatically. A really good senior level developer that has a broad development background can usually pick up the skills needed to do an unfamiliar task pretty quickly. An average or bad entry level developer may spend days or weeks on a task trying to figure it out and may never make progress. Another big factor is the knowledge level of the company. If a developer has a mentor to help them through a challenging task, it can exponentially speed up their ability to get the task done quickly. If the overall knowledge level of a company is low or you have an independent developer that doesn’t know what they are doing than you might just get a huge unexpected bill for some or all of the tasks worked on.
The person putting together the estimate is too optimisticOptimism in regards to estimation is a widespread character flaw of many developers. I see this at my company all the time when I ask different developers to help me estimate a task. The problem happens when a developer assumes that everything will go perfectly when they code the task. In their mind they think of the quickest path to completion. The reality is development rarely happens without any issues.
- Bugs happen even to the best of developers.
- Developers get stuck on an issue for longer than expected.
- The development tools have a bug in them.
- Apple’s or Google’s software has a bug in it that you have to work around.
- There is poor documentation on what you are trying to do.
- The client makes more tweaks than normal.
- These are just a couple of the endless factors that can make a given task take longer than expected. When estimating a task you have to draw upon experience and know the ability of your team to come up with a realistic estimate for each task.