Developing software is difficult (I should just start every blog that way). Figuring out how to meet your user’s needs and at the same time, your business goals, building a system that is both scalable and maintainable, all while making it easy to use – that takes a lot of hard work.
Developing software is difficult (I should just start every blog that way). Figuring out how to meet your user’s needs and at the same time, your business goals, building a system that is both scalable and maintainable, all while making it easy to use – that takes a lot of hard work.
But you know what makes it impossible?
Not knowing what resources there are to work with. In this case, the resources I’m talking about are budget and time. Since time is money, it really comes down to budget. Not knowing the budget makes our jobs impossible and wastes a great deal of everyone’s time.
If I had to write out an equation for the cost of software development off the top of my head, it would be something like this:
Cost = Complexity * Features * Quality * Some Coefficient (every equation needs a coefficient)
When you remove the Cost from the equation, it becomes unsolvable since you can’t pick the correct values for the other variables to get the desired outcome. Basically all software is built to a budget (because outside of a few specialized areas, there are few real technical challenges in day-to-day development… it all comes down to skill and hard work), so it’s critical to take budget into account in all aspects of the project.
Not having a reasonable budget target is as bad for us as it is for our clients. Without that, we’ll end up either designing a system that won’t be built because it costs more than it is worth, or (just as bad) build something that underserves your needs and will get clobbered in the marketplace and simply is not useful.
Given this, why is getting a budget like pulling teeth sometimes? I always like to get some idea of the budget we’ll have to work with from the very first conversation with a client, so I can get our team pointing in the right direction. Unfortunately, it seems that everyone likes to keep that hidden until the very last moment then spring it on us like it’s the Price is Right.
Here are the typical reasons, we’ve found, that people like to keep their budget under wraps:
I’m sure in a 3-day negotiating seminar somewhere they explain that knowledge is leverage, and the more knowledge you have, the better deal you’ll get from your opponent partner. That’s true, if you are buying a used car… getting that car for a few grand under blue book feels great! But software isn’t such an easily defined and quantified asset. If you ‘negotiate’ your development partner down $10,000, make no mistake, you didn’t just save $10,000, you just got $10,000 less software. Features (or corners) will be cut to meet the new budget. It’s just the way business works.
If you haven’t figured out the value of what you want to build, stop right there. You need to have some idea of ROI before you do anything because budgets should directly relate to the ROI you expect from your product.
The “secret price” phenomenon is usually strongest with RFP-style time wasters processes. Without that critical piece of information, there’s no way to possibly compare the bids. To continue with the car shopping analogy, how are you going to compare one company offering a base model Hyundai and other company offering an AMG Mercedes? Sure they are both cars, but clearly solve different problems in different ways. Both have doors, wheels, an engine and transmission, but what they look like and how they operate are completely different and have very different associated costs. My suggestion: Put a suggested budget range in your RFP, then let companies respond with the plan that makes sense for them. This way, you can actually attempt to compare apples to apples.
(And don’t be afraid that the companies responding will just be inflating their solution to match your budget because you already hand-selected qualified, trust worthy potential partners before you even sent out your RFP, right?)
So now that you know how it works, also know this: We are great software designers and developers, but absolutely terrible mind readers. So next time we are talking about a project, let’s agree it’s not taboo to talk about the budget, OK?