There are no estimates, only budgets

Filed under:

“How much does it cost to build my website?”

“How much does it cost to build my mobile app?”

“How much does it cost to build our IoT analytics portal?”

These are very reasonable questions, but there are few morally responsible answers. The only responsible answer is: “Well, what’s your budget?”

Over the years, I’ve gathered a list of common features that have a surprising range of costs:

Feature Lowest I’ve Seen Highest I’ve Seen
Login form $500 $850,000
Navigation menu $200 $500,000
Content editor $50 $900,000
Video player $100 $2,100,000
Image cropper $400 $700,000
Grid layout on a homepage $1,000 $600,000
Analytics charts $500 $2,500,000

The challenge of estimating software projects is that software is a creative act: you can paint a line, or you can paint a Monet. Every person involved has a different opinion about the amount of creativity needed for every minuscule feature.

I’ve noticed there is no way to predict where people will fall on the scale. I’ve seen small businesses desire the million dollar login form, and I’ve seen global enterprises be fine with the $500 version. This is why estimation is so dangerous.

What to do

Highest Impact: Get yourself a Product Manager
Product Management is a career field that specializes in finding the right value for your business given your constraints and priorities.
Second Highest: Don’t go cheap on talent
A senior engineer, years into their career and a history of holding a job, has seen it all before. They know the best way to implement a feature given the constraints.
Third Highest: Dedicate a business decision maker to the project at least 25% of their time
Every single feature, no matter how small, needs to be considered given the budget constraints and priorities of the business. There are thousands of micro-decisions to be made on virtually all software projects.
Fourth Highest: Kill your darlings
Budgets are a hard constraint. Time is a hard constraint. The only thing that has any slack is the scope. Every software project that ever launched on time involved stakeholders swallowing their desires and respecting the reality of their constraints.

The Most Important Thing

The most important thing in software is to launch as quickly as possible. Unshipped software is like having a stockpile of inventory wasting away in a warehouse. If you want to celebrate a successful launch, focus on collaborating with your product teams, changing the scope of features based on budget, and letting go of your darlings.

Date posted: December 8, 2017

Add new comment

Restricted HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <cpp>, <java>, <php>. The supported tag styles are: <foo>, [foo].
  • Web page addresses and email addresses turn into links automatically.
  • Lines and paragraphs break automatically.

Metal Toad is an Advanced AWS Consulting Partner. Learn more about our AWS Managed Services

Have questions?