There are no estimates, only budgets

“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.

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.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.

About the Author

Tony Rost, Chief Technology Officer

Tony believes that customers' technology problems can be solved with deep respect, sound data, strong process, and adventurous teams. He uses data-driven methods to improve all stages of the development lifecycle – from design, to beta, to final deployment. With numerous ties to the open-source community, Tony also works to solve client problems faster and more effectively with well-tested open-source solutions.

Several dozen products have shipped under his guidance over the past 14 years: collaborative internal sites at Nike, social networking integrations with Adidas, server-monitoring websites at Hewlett Packard, open source contributions to Drupal, entertainment sites such as The Emmys, community sites such as FearNET, and HTML5 apps for tablets and Smart TVs.