Thursday, July 2, 2015

"How much do you charge to make a website?"

That's a fair question, and as a freelance programmer, the very last thing I will do is roll my eyes at it.  It's just that, when it's asked, I am often the least qualified person to answer it.

Here's why.

But first, a story.

The real estate agent who schlepped us all over La Crosse, WI to help us find our house was an interesting--and instructive--character.  From him I learned the adage, "The head of the fish stinks first."  Also that home-canned beets don't taste horrid like commercial ones.  ("Look at me, Doreen:  I know food.")  And the location of the best coffee shop Downtown.

But he also hammered something into my brain that should have been learned while shopping for our first house:  The "true" price of the house is the price at which it's sold.

That sounds a bit like a solipsism, but it's actually a little more Zen than that.  See, when you buy a house, the price you will pay for it is actually the result of a number of constraints pulling in different directions.  And only one of those constraints, I must stress, is the budget.

For instance...

Constraint:  Family.  Who's going to have to share a bedroom?  How much schedule-Tetris in the bathrooms will be involved getting everyone out the door in the morning?  Is there enough yard to kick the kids off the XBox and into the outside during better weather?

Constraint:  Proximity to Work/School.  Long work commutes suck, which definitely puts a radius on the feasible options.  But if some schools have better reputations than others, that will shut down even more options.  Or maybe the converse is true--maybe you just want to put as much distance as possible between yourself and the rest of everybody.

Constraint:  Resale Value.  Most homebuyers don't plan on coming out the door the last time in a toes-up state.  Is the neighbourhood gentrifying or showing signs of hitting the skids? 

Constraint: Upkeep.  Really, how house-proud are you?  Are you buying it with visions of Norman Rockwell Thanksgiving dinners dancing in your head?

Constraint:  Amenities.  Is single-story required for someone less mobile?  How about shop space?  A dry basement for all those boxes you're not going to get around to opening...maybe not until the next move to see what the heck you put in them this time?  Is going off the grid (even if only after extreme weather) a priority?

The point is that a lot of different--maybe even conflicting--priorities have to be juggled.  Each non-negotiable moves the price up, while compromises often nudge it down.

But here's the thing:  You can't start house-shopping until you do two things:
  1. Identify your priorities--i.e. why are these things important?
  2. Sort out their pecking-order--i.e. why are some more important than others?
Think for a minute how silly it would feel to call a real estate agent and ask her/him, "How much does a house cost?"  (Because agents' commission is a percentage of the sale price, you'd also put yourself in dire danger of being sold more house than you could possibly want and/or take care of.)

Similarly, the cost of a made-to-order software application is (at least partly) a function of your priorities.  And until those questions are answered to your own satisfaction, the cost of matching them can't be answered, either by you or the developer.

There's one critical difference between a house and an app., however:  The "value" of your house is largely bounded by where, geographically, you are willing and able to hang your hat.  You may be able to move the needle only so much on that.  A secondary difference is that the math of determining exactly how much something (e.g. a baby barn) is really worth is pretty fuzzy because it's mixed up with so many other factors.

When, on the other hand, you have to turn away business because you don't have a way of keeping tabs on everything currently in the pipeline, "value" is mere accounting.  Ditto failure rates or schedule slips.  And if it's not mere accounting at this point, please don't waste your money/time by pulling in a software developer until you do have a price tag on that pain.

Now, it's possible that development and associated costs could add up to more than the problem they're meant to solve.  No matter what Silicon Valley tells you, there are still some things better done by human intelligence.  But the problem at least places an upper bound:  Any solution must provide a return on investment.

The best assurance of recouping that investment is to make sure that the developer has as thorough an understanding of the problem as you do.  (Pro tip:  If a developer leads off the meeting with more answers than questions, find another one.)  After that point, "How much do you charge?"  is a completely reasonable question to ask.  But not before, please.