Search This Blog

Loading...

Sunday, October 4, 2009

Why Software is Expensive

I hate to write this post, but my recent conversation with my IT-illiterate friend prompted me to do this.

My friend wanted to build a CMS website, "to earn a nice part time income". Given that he trusted me quite a lot, he asked me for an estimation of the cost. He mentioned that he wanted a CMS solution, with some mix-match of static-dynamic content. Also, he wanted some distinct flavors in the theme.

Given that he is quite a detailed guy ( read: loves to fuss over minor detail) and quite fickle mind, I told him that probably USD 200 is a minimum. We are living in Malaysia, so that works out to RM 700.

He was startled.

"What? How come it costs so much? I thought the underlying CMS framework such as Drupal or Joomla is free and open source?! A Windows Vista Home Edition is only costing RM 400!"

My friend is by no means the only one who grossly misprices the true cost and value of software. There was a client who asked us to implement a spreadsheet component because "Excel has it" at zero price. Yes, you hear it right. Zero . The reason? Because "Excel has it and so it must not be so difficult to implement".

Now, for the benefits of those who are clueless, and for the benefits of my poor developers who are stunned by those arguments, let me enumerate here why software is so expensive:

  1. Software is expensive because there are huge overhead costs associated with software development. Computer equipments are expensive. And the fact that software developers need to stay on the cutting edge of the technology means that they need to always upgrade their hardware. Also, software methodologies and tools change very often, software developers need to invest a lot of time and money to just to keep up with the development so that they can provide better service to their clients next time.
    For those of you who think that hardware cost is "just of small fraction of the total cost", let me tell you that hardware is not cheap in third world countries; a mere acer laptop is costing as much as a programmer's one month salary here in Malaysia.
  2. Software is expensive because there are a lot of research going into it. Some express puzzle at software developer apparent "low productivity" (20 lines of code per day). Assuming that you are charging USD 50 per hour, your rate is USD 20/line. This is awfully expensive to the business owners who measure productivity in terms of quantity produced. What they miss out is that programming productivity is all about writing less code to get your job done. A programmer could spend one billable month reinventing the wheel and produce a 10 million line-of-code ORM  that is buggy, or spend one non-billable month to look for an open source implementation that is mature and well-developed, and endure the complain of low productivity. The way business owners complain about "research time" is encouraging the wrong type of behavior.
  3. Software is expensive because the product owners don't know what they want. Imagine if you go to an  architect, asking him to provide a blue print, and after he comes out with that you ask him to change it according to your latest taste-- even though it is contrary to the original specification, and you repeat this process,..  No one would dare to do this, but everyone seems to have no problem asking the software developers to change their code at last minute and expect everything to work just fine and the product ships in time and worse of all, is not willing to pay extra. 
  4. Software is expensive because it is customized only for you. The reason why Microsoft Office and Windows Vista is so cheap, is because the development cost is spread over million of users. The consequence of this is that there is no competitive advantage associated with the ordinary office or Windows Vista users. Your customized application, on the other hand, is designed especially for you, and you-- and no one else-- can enjoy the returns and benefits bring forth by the application.  

23 comments:

Lucian said...

Well said!

caseyjenks said...
This comment has been removed by the author.
Casey said...

$200 for CMS, although basic, is a f'ing joke!!! He thought THAT was expensive??? That's DIRT F'ING CHEAP!

Anonymous said...

the product owners don't know what they want
======================

real guy, real story !

Anonymous said...

#1 is nonsense. I don't know the situation in Malaysia, but in most of the industrialized world, the cost of a computer is a very small fraction of labour costs in software development. Also, for many kinds of software development, you don't need the latest and greatest hardware. Games, video editing and such are exceptions, but you can certainly do CMS development on nearly anything these days.

Shaun said...

Nicely said.

Regarding #2, if you have someone measuring your productivity by lines of code produced I'd run - not walk - to the nearest exit. I think its pretty well understood by now, even by non-technologists, that fewer lines of code written = fewer bugs and faster production times. I can honestly say I'd have absolutely nothing to do with a customer who doesn't understand that. I can maybe see coming into a conversation with that perspective, but after we've talked if they still hold that that "ideal", then thank you, but no thank you!

Anonymous said...

yeah, USD200 is super cheap. In the US I'd guess it'd be at bare minimum $5000-$10000 if you want it to be polished and it really does have to integrate dynamic features with his static content.

That is, unless you only set up the bare basics of the site any your friend did the rest. In that case though, your friend should be billing out at about the same rate as you, so we're back to the same amount.

Soon Hui said...

yeah, USD200 is super cheap. In the US I'd guess it'd be at bare minimum $5000-$10000 if you want it to be polished and it really does have to integrate dynamic features with his static content.

Yup, we the software developers understand this. But I'm not sure our IT-illiterate friends understand, or not.

Anonymous said...

My wife is an architect. I'm a software developer. You are so wrong when you say that things are different for them. People all want a ridiculous price and ask for change all the time. (And an architect IS responsible decades after for the buildings, we are not)


Try to find a better exemple !

JS said...

Point #3 that the customer doesn't know what they want is largely our (software development's) fault. In architecture, how this problem is handled is that the customer is made to sign off on each part of the design work as you go along. Once you sign off, if you want to go back and change something you can but it will cost you more to do so. This is accepted because you're dealing with a physical product; whereas, programmers have been touting for years that software can change into anything you want.

Anonymous said...

Myth 1. Software is expensive because there are huge overhead costs associated with software development.
Reality: Developers typically use either their own equipment, or older corporate equipment. It is not uncommon to do development on equipments that's eight or nine years old.

Myth 2. Software is expensive because there are a lot of research going into it.
Reality: Research isn't billable.

Myth 3. Software is expensive because the product owners don't know what they want.
Reality: This is what requirements and a product spec are for.

Myth 4: Software is expensive because it is customized only for you.
Reality: Because Microsoft made Windows just for you.

Anonymous said...

"Imagine if you go to an architect, asking him to provide a blue print, and after he comes out with that you ask him to change it according to your latest taste-- even though it is contrary to the original specification, and you repeat this process,.. No one would dare to do this..."

um, actually that's exactly how architects work.

Magice said...

Frankly, you know about economics about as much as, um, um, um, okay, anyone who takes Econ 101 should know better than you do.

Software is not expensive. Heck, if you precious friend use his old computer, put on that GNU/Linux of some flavor, and install some CMS on that, it would cost him (aka him or her, I am lazy) 0 cent. None. Nothing.

Otherwise, he can pirate a copy of Windows, a copy of some professional CMS, and put on an expensive PC (because those things apparently cannot work on old hardware), he would still spend 0 cents on software.

Actually, I lied, he would spend like 10 cents on the traffic over then Internet. Sorry, so software can actually cost money. And 10 cents are so expensive.

Don't you see the biggest flaw in your reasons? Software is classic of long-tail phenomenon: the cost of first copy is expensive, but the cost of creating the second, third, forth, etc. is trivial. Oh, yes, we put on artificial barriers for that, and claim that these barriers are "natural." However, the true cost stands: 0.

However, SERVICE costs money. Eg, install on a server, fine tune, maintain, customize, design, etc. These things are expensive, simply because they cannot be reproduced. However, service is something you don't need (but you want, eh?), since you can always do these things for yourself. Of course, with the current culture of computer-using, this fact is hidden (programmers are all-powerful, and users are stupid n00bs who can do nothing), but it is there, waiting to be picked up.

All in all, next time you consult your friends, can you please tell them this: your website costs as much as your laziness; how much are you willing to work?

Anonymous said...

"However, service is something you don't need (but you want, eh?), since you can always do these things for yourself. Of course, with the current culture of computer-using, this fact is hidden (programmers are all-powerful, and users are stupid n00bs who can do nothing), but it is there, waiting to be picked up."


Yea, but the last time I checked most people could not (and did not want to) write software, play database admin and whatnot. That's not the way a modern economy works: People specialise. Just beeing barely able to attach four table legs to a board doesn't make me a carpenter.

For some reason a lot of otherwise relativly smart people asume that beeing able to set up their router or to install an OS enables them to make meaningful assumptions about our profession... "The Formulas are already in this Excel document. I just want to bring this to the web. Come on, its not arcane magic! I believe in you! You've got two days or else!"

Are you out of your mind to encourage this kind of mindset?Right, we are not wizards. We can do this stuff because we invested endless hours into learning it. And too often we fail miserably. Under this circumstances I consider your stance as plain evil, especially if you are giving advise to a friend.

CodeJustin said...

Very well said!

I find myself dealing with people that think everything is cheap too.

Kidino said...

RM700?? I'll give him a static-HTML with 5 pages max. OK, maybe I'll do it in PHP with nice includes for footer, header, menus, etc...

When I build WordPress sites, especially with custom theme, that's RM2000 minimum (around $500 USD).

fsilber said...

How much does it cost to buy a popular novel? Now, suppose you have specific desires for aspects about the plot and the characters -- how much would an author charge to write a novel to specification for you? How much does that come to, per line of text?

SEO said...

A blog site containing comprehensive blog directories on a whole array of topics is to be sought after if you are searching for blogs on selected topics and among the blog resources available in the cyberspace, Bloggersblaze is considered to be the best for including blogs on innumerable subjects.

Anonymous said...

Software is too expensive because people want to laze off all day and getting a nice income, because REPRODUCTION costs are ZERO, yet the price is STILL high.

Seems that the laws of supply and demand don't apply. Demand may not be high, but supply is almost infinite. Yet, software costs MORE THAN HARDWARE. A "medium-level" software (not amateur) costs around $300-$400, which is more than a high-end CPU. A full very good rig costs around $1000. In third-world countries, that's about as much as you can buy if you save off a few MONTHS. But without software, your hardware is worthless.

How otherwise can you justify that a SOFTWARE dev is the richest man on Earth, or at least was for a very long time? Right on, because the price is stupidly high for an item that has zero reproduction costs.

It's so freaking easy to get money from software without doing anything. Sure, it may require high skill, but so do other professions that are paid with a salary and can't "laze off" of your previous works. In software, you can make a product, charge $1000 for it, and if enough people buy it, be lazy for the rest of your life.

And people wonder why piracy exists...


Supply and Demand says that software cost should be nearly free, given the almost infinite supply. Who cares about research? OTHER PRODUCTS HAVE RESEARCH TOO, and they have LOWER prices, for friggin's sake!

Not to mention, software is far more full of bugs than hardware is, and hardware development is EVEN HARDER.

Software devs need to drop this "easy money" lazy attitude and work hard for their money. Not just "work hard once, laze off for a few years", but work hard CONSTANTLY, like the rest of us.

Anonymous said...

It is extremely interesting for me to read this article. Thank author for it. I like such themes and everything connected to them. I would like to read a bit more soon.

Anonymous said...

piracy for the win?

Waseem said...

Like the post and all the info..I appreciate you share it.

Church Software

Anonymous said...

Hmmm........... perhaps Linux developers are fool who are giving the OS free of cost.