Fog Creek Software
Discussion Board

Why is software always free?

Is it just me or do customers always think that software is free?

Charging for modifying software or writing a report for a customer where you are only charging for your time is always met with a hostile response.

And yet they charge their customers for even single change e.g. artwork alterations.

Is is because software is not tangible?


Mike Grace
Monday, February 18, 2002

I think it has to do not so much with the tangibility of the software so much as with the tangibility of the work associated with making good software happen. Joel's recent piece picked up on this pretty well: when you show a customer pixels, that's what they see. They think that pixels == product, when in fact the relationships between pretty pixels and the ammount of work you have done is tenuous if not inversely proportional.

Also, if they don't have any in-house developers, they won't _ever_ become familiar with the ammount of work it really does take to get stuff done.

Or they could just be skinflints. =)


Alex Russell
Monday, February 18, 2002

Seems like it depends on how much they know about it-and most of the time it's not too much.  I'll give you an example.  About 6 months ago I worked on an inventory tracking system for a small business.  They had two stores, and they wanted it to be web based so they could pool the data.

Anyhow, me & another guy worked on it.  He did all the "front-end," as in designing the look of the pages and the how the clients would interact with the pages.  Keep in mind that these were going to be pages that were protected from the public web (well-a hacker could break in with some persistance, but they didn't keep any credit card info-so it would be pretty useless)-so it didn't affect how their stores were viewed in terms of professionalism.  I did the db schema and all "middleware" or "business logic" or whateverthehell they're calling it now.  From what I remember it took the design guy a day to figure out how he wanted to lay the pages out (not too hard as they were all basically going to be table grids and forms)-and he either did it himself (the presentation layer was done in PHP so he could fill in his part pretty easily) or gave me general instructions.

I spent a better part of a week following their specifications and getting their webhost to give me a database and some permission to fiddle with it.  I also had to beg them to add some cron jobs so that I could automate some of the db functions.  They also gave me the nice little task of "converting" their excel spreadsheets and loading them up one by one.

Anyway, we split the money 1/4 going to him and 3/4 to me seeing as how I did so much more work (the client insisted that I have a designer along since I admitted that it wasn't my specialty).  But he told me later sympathetically that the client complained how it was a jip that he only got 1/4 seeing as he seemed to have done all the work and was much faster.  She told him she really didn't see what I did aside from putting the excel spreadsheets online so she could view them.

All I learned from this is tha the joy of being a freelancer can wake up whenever they want to gets old after a while when you have to deal with people like this....

P.S. I did give her a small lecture on how database driven websites work-but I don't think she listened too closely

razib khan
Monday, February 18, 2002

The big issue of software development IMHO is that the customer do not understand and cannot think in abstract thoughts such as databases, middleware and webservers.  They think in terms of the old fashion "seeing is believing" idea.  They also cannot understand the work unless they can see it being accomplished.  If they cannot "see" progress they assume that none is being taken place.  That is why I always like to design and develop software in an Onion Method type of work.  Develop something and show it off.  Don't care if it is only one screen.  It makes the clients/sustomers think that progress is being made.  You might think it is a waste of time but it makes the client have a nice warm feeling to have more and more of the project to see.  And the best part is that most will pay for the little extra time it takes to do this.  That is because they get feedback.  I know if I couldn't see my house during construction and had to wait until it was done I would be nervous also during the construction period.  Giving the client once a week or biweekly product showoffs can lead to better relationships and take pressure off you.  If there is a delay then you can reassure them that progress had been made and that a single piece of the puzzle may be taking longer to finish but that something is there.  It may not be functional but they know that the invoice you send them is worth paying.

Chris Woodruff
Monday, February 18, 2002

The whole thing about showing the client the product...I've only worked freelance or in a small business situation of 4 people tops.  So I've always had to do some of this.  After two years of doing this-I've decided to look for a 9-5 (or 7-7 in this job climate) job where I work for someone that has people assigned to spout reassuring goobleygock to clients-cuz I know I sure feel like a moron when I try to (if I stay technical they think I'm incomprehensible-if I try to be more folksy they think I'm being patronizing-either way, I don't have the knack)

razib khan
Monday, February 18, 2002

I think the customer's notion that software is always to expensive comes from not being able to see the work behind the scenes, too.

When I give my car to a mechanic for repairs and he charges 200 $, € or whatever, I get suspicious, annoyed, outraged and grumpy (usually in that order) and then pay anyway because I have no choice but to believe him. The situation is much the same, I guess. I doubt that he is rightfully charging that much and he probably thinks: "Why do customers always think repairing a car is for free?" For a normal customer without insight in the industry it is hard to judge the amount of work necessary for building a software (or just adding another software feature).

Jutta Jordans
Monday, February 18, 2002

The car is a good analogy.

One customer in particular will not pay £400 for 1 days training on part of our system that will earn him thousands. But he drives a BMW and would probably think nothing of spending £500 for a service.

Mije Grace
Monday, February 18, 2002

There is, of course, the hard business ethic.

If you can use guilt to leverage someone to work for you for nothing or less than they should, then you have saved money.

Monday, February 18, 2002

Well maybe it's got something to do with those Open Source people.

So, if an OS with a few millions lines of code is free, why shouldn't your little software be free to?

Monday, February 25, 2002

How about Important Corollolary Number Six - Always update the UI when you update the code.

A major re-write of the code deserves a major update of the UI - menus that scroll down instead of pop open, icons next to each item in the menu, flat buttons that change state when you mouse over instead of raised buttons.

Microsoft and AOL both seem to do this. Perhaps they know something we dont?

Mark W
Friday, March 1, 2002

Hey - there's a plus side to all this as well remember - when people think things are magic they also have no idea what they should cost. Admittedly you sometimes get gipped when fixing or ammending code, but at others you can do *very* well by copying and pasting from your library.

I've always thought the key is not to be ashamed to charge slightly over the odds when a client thinks something is great (but not hard to do).


Tuesday, March 5, 2002

*  Recent Topics

*  Fog Creek Home