As we’ve talked about before, there are plenty of options for developing your custom software. You can build the system internally, outsource development to contractors, or partner with a software development company (like us).
You may look at one of, all of, or some combination of these options for your custom software project. No matter which route you investigate, we have one piece of advice that applies across the board:
Don’t automatically choose the cheapest option just because it costs less.
Let’s use a hypothetical example where you’re evaluating contractors and software development companies. You get three estimates with the following characteristics (these are realistic based on our 11+ years working with clients who get multiple estimates):
- Low-cost compared to the others. Fixed scope, flexible timeline, flexible budget. No discovery/analysis phase. You’re responsible for defining what features should be built.
- Middle-of-the-road cost compared to the others. Fixed scope, flexible timeline, fixed budget. Features were defined at a high level collaboratively in the estimate process, but any additions or adjustments go through as change orders.
- High-cost compared to the others. Flexible scope, flexible timeline, flexible budget. Includes an analysis phase to define features with input from you and your users.
While cost is inevitably going to be a factor in your decision, it shouldn’t be the sole consideration. None of these three example options are objectively right or wrong in every situation. It’s about choosing the option that’s best for your needs under the given circumstances.
Here’s how we would look at the three estimates above:
- Low-cost: A fixed scope without an analysis phase and with you defining features is a perfect storm for a product that doesn’t meet your users’ needs. But if you really have things nailed down and just want someone to code exactly what you tell them to, this may be the right option for you. Because we know so well what goes into good software development, we generally caution against looking for a “code monkey;” however, in some scenarios, this may be worth looking at.
- Middle-of-the-road: There’s a trade-off here. On one hand, since scope and budget are fixed, you know your costs (as long as you don’t change anything). On the other hand, if you learn new information that changes the direction of the system, your costs can become unpredictable. This option is best for when you know exactly what you need built and there’s very little uncertainty.
- High-cost: On its face, this option seems risky—no fixed scope, budget, or timeline. However, it actually provides the most flexibility, which lowers risk when your project has a lot of unknowns. As you learn more about what users need, you can adjust and reprioritize to use your budget on the most important functionality.
We’ve watched a lot of people instinctively go with the cheapest option, thinking the cost estimates they got were apples to apples. But no two developers provide bids the same way. Here’s how we do it. Normally our estimates include items others’ don’t.
Sometimes people even come back to us saying something along the lines of, “I should have gone with you in the first place. I would have saved a lot of money and hassle in the long run.” While we hate hearing about bad experiences with other developers, it reinforces why we do things the way we do: because we have clients’ best interests in mind.
If you’re ranking development options solely based on cost, you may be doing yourself a disservice.
In the end, the most important thing is for you to have all the information you need to make the best decision for your specific situation.