If you’ve ever considered having custom software created for your business, you’ve probably realized that this can be a pretty complicated process. And its not just the technology piece that makes things complicated. The time and cost required to complete a software development project are difficult to accurately estimate, for a variety of reasons. This article covers a few things that make software projects difficult to estimate and how you and your developer can avoid them.
As a business owner, if you’re considering having custom software created for your company, two questions that immediately come to mind are:
1. “How much will it cost?” and
2. “How long will it take?”
If you choose a professional software developer, one of the first things they’ll do is talk to you about you’ll need your software to do, the features it should have and the “in the weeds” details about how you want the application to work. This will allow them to create an estimate which will give you a sense of the cost and timeframe needed to build your software application. Here are a few things that make coming up with those estimates more difficult and how you and how you can avoid them.
1. Rough requirements without enough detail: One of the biggest problems that comes up in many software projects is when there isn’t sufficient detail to describe what the software should do. For example, it’s one thing to say something like:
• “The app should show a list of upcoming events”
But its totally different when you also include constraints like:
• “Only admins should be able to edit events”
• “Users should be able to see events that they’ve signed up for”
As the client, you have the ultimate vision for what you want your software to do. But it’s up to your developer to ask the right questions to help tease out the details of what you need. They should rely on their experience building similar applications and their understanding of software to help ensure the most common use cases are covered. In doing so, they’ll have enough detail to accurately build the exact features you need.
Solution: Make sure your and your developer cover each feature in detail to be sure you describe exactly how you need each feature to work.
2. Poor communication (from either the developer or the client): One of the worst things that can happen on a project is poor communication. And no matter whose to blame, the project ultimately suffers.
Some common problems from developers are that they:
• Don’t follow up to questions quickly
• Don’t provide frequent updates
On the other hand, common client problems are that they:
• Are slow to provide feedback or answer key questions that only they can address
• Can’t decide how they need a certain feature to work
One way to help avoid this is to keep project details organized. Using a project management tool can help by ensuring that everything related to the project, the current status, the work to be done and any communications related to the project are kept in a single place. This helps avoid having to dig through email to find that one message from the client with the change they needed or that update from the developer on the feature currently being worked on.
Solution: Make sure you and your developer use a project management tool to organize communications about your project. Be sure everyone involved uses this tool to provide updates and feedback related to the project.
3. Too many features in the initial version: Another common cause of estimates being off the mark is when too many features are included in the initial version of an application. It should be no surprise that simpler, smaller projects are easier to accurately estimate. For example, a simple small business website could be done in WordPress in a matter of weeks at most, likely a matter of days depending on the client’s needs.
But complex applications with many features and complicated interactions can make the project difficult to define in detail. Having too many features adds complexity, prolongs development and delays the launch of your application. And because of that, you also have to consider the opportunity cost of not shipping your product sooner, even if its a more basic version of the product.
Solution: Decide on all of the features you ultimately want to have in your application. Then, work with your developer to narrow down the list of features absolutely required for version 1 of your software. You can work together to get that initial version launched as quickly as possible, then add additional features as small, frequent updates.
4. External dependencies: Software projects can also be difficult if they have lots of external dependencies. By “external dependencies” I mean software or services outside of your core application that your application depends upon. For example, if you need to connect with Twitter or other social media sites in order for your application to function, those would be external dependencies.
Your developer will still need to integrate your application with the services it depends on. Depending on what those dependencies are, the integration might be as simple as finding an existing library (like integrating with Twitter). Or your developer may have to get familiar with how the service works and build a library from scratch.
Solution: Be sure to discuss any external dependencies with your developer. This can help them determine how simple or difficult those integrations will be and will help make your project’s estimate more accurate.
5. Too many stakeholders: On larger projects, there can be many stakeholders that are part of the process. This is especially in larger companies. This can mean getting support and approval from multiple parties for certain features or for certain changes to be made.
Solution: Try to limit the number of stakeholders to a reasonable amount. Or have certain stakeholders responsible for certain features or functionality that is part of the application.
Written by Kenton Newby. This article appeared on business2community.com