3 Common Problems with Custom Software Development
Software development isn't always perfect. Learn some common issues and how to avoid them.
Custom software is a great way to increase efficiency and revenue for your organization. However, creating custom software means more risk for you. Here are a few common problems to avoid when building your next mobile or web app.
1. Cost Overrun
One of the biggest challenges of custom software development is gathering requirements. The process of scoping out business needs and determining the cost to implement each of them is difficult. If your development team misses requirements during the initial phase, you may be at risk of paying significantly more for your desired app. For this reason, working with a partner that understands you and your business is critical.
When you decide to move forward with a project, there are a couple different ways of paying for it. Whether fixed-bid or hourly, costs going beyond the initial budget are still common.
Fixed-bid projects are the most common way of structuring the cost of development projects. In a fixed-bid project, development companies determine all requirements up front and create features based on them. The developers then estimate each feature, along with project management costs and QA costs, then they propose the total price. Once agreed upon, each change in requirement or feature will cause a change order and increase the cost of the project. Development companies typically add in some extra room for comfort in fixed-bid projects because there is less flexibility than in hourly arrangements.
Hourly projects are becoming more typical in software development to solve the cumbersome change order process we just discussed. In this model, you and the developers agree on an hourly rate, and they create an estimate based on their knowledge of the requirements. You then receive invoices for each hour worked, so you’re taking on the extra risk of the project not sticking to the budget. Billing this way gives you the opportunity to pay less for the project, so it’s an attractive option for small businesses. In the same vein, nothing says you won’t pay more than the estimate, so it’s a game of risk.
How to Save Your Money
To solve cost overrun in a fixed-bid environment, it’s important to not rush through the requirements gathering stage. Work closely with your future development team to determine as many requirements as possible. We believe that this still isn’t good enough, as it’s near impossible to get every requirement right the first try. Because of this, we split larger projects into small projects to de-risk both parties and make sure we focus on delivering individual points of business value.
Solving cost problems in an hourly project is different. It’s entirely based on transparency and communication. You should receive constant updates on the number of hours used, the expected hours remaining, and any items that may or may not cause trouble later on. Frequent communication and constant re-estimating is the only way to prevent and prepare for costs going over an estimate. Reports every couple of weeks and detailed invoices help solve these problems, so ask your development team how they handle these items before the agreement is signed.
2. Poor Implementation
Another common problem with custom software development is a poor implementation because of time, cost, or knowledge constraints. It is commonplace for development companies to be build each application to function well for the known requirements and current demand, but not built in a way to add features or scale for a higher demand. As firm believers in software never being “done,” this is a red flag and something you should always inquire about.
Fixing Poor Implementations
Poor implementation can be solved several ways. The easiest way is by contacting references of the development company to talk with people of similarly sized projects. Talking about projects similar in size or scope to yours will help you determine if the current development company is right for you and your project.
When working with your development team, make sure they design each feature in a way that scales to where you believe it will need to be. If you’re paying for a new B2C web app, discuss features in terms of thousands of users, not dozens. Find a development team that focuses on the long-term viability of the software and not about maximizing their profit.
We solve poor implementation by having a team of diverse skillsets so knowledge is never a constraint. Our focus is on building great user experiences, which means scalability and ease of support are top-level concerns.
3. Ineffective Results
The worst of the three issues is entirely too common. You pay a company or individual a lot of money to build you a new app, but the app they delivered doesn’t deliver the business value you expected. It may not sell well, or it may not help your business internally. Unfortunately, many development companies will build whatever they are told to, without asking the critical questions of why things work a certain way.
With custom software being so expensive, this problem can devastate an organization. Your competition may have a better app, or you may have created a new mess internally. We see this all too often, and have seen it set people and companies back further than they were before the project started.
Get Your Money’s Worth
This is the most critical part of selecting a development company. Before agreeing to any projects, make sure everyone involved in the potential project is part of the discussions about the requirements. Ensure all involved understand you, your organization, and what you’re trying to do. Solving this problem grows in complexity with the size of your project and investment.
We solve this by doing our favorite thing: listening. We try to learn your business long before we try to build software for you. Finding a true business partner in your development team will drastically increase the likelihood of success. It also pays off in the long-term by having a trusted individual or organization to bounce ideas off of without any pressure of paying for another project.