I didn't foreseen that my rant ( Why Software is Expensive) would generate a huge response on the Internet ( over 100 comments and 89 points in reddit, 25 comments and 23 points in hacker news). Most comments agreed with the points I raised. While it is nice to find that the netizens out there agree with me, but it would be nicer if all the IT-illiterate guys wake up to the truth.
But wait! There are some dissonance that are worth addressing here:
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.
Well, software is not something that you can write once and forever derive revenue from it without putting in extra effort. Anyone who believe this is grossly mistaken. Unlike a lot of products on the market that don't innovate for a decade but still able to pull in revenue just because they have something valuable to sell, software is built entirely upon innovation. Version 2 of a software application is usually a vast improvement ( and rewrite) over its predecessor. The corresponding line of code usually grows at geometrical rate but the price doesn't . Windows 95 has 15 million lines of code and Windows XP has 35 million, but the price is about the same. Without actively innovating the software applications as we know them will not be as user friendly and as powerful as they are now. All these R&D needs funding; to say that the developers are lazying off their days at beach while collecting cheques are simply distorting the truth.
Not to mention, software is far more full of bugs than hardware is, and hardware development is EVEN HARDER. And yet the price of hardware is plummeting every month while the price of software is staying constant.
That's because no one is ordering their own custom made hard disk and everyone is trying to commission their own software. Custom made things are always more expensive than standardize products before the latter can be mass produced but the former isn't. The reason why hard disk is so cheap is because it comes only in a few flavors and that people all around the world are sharing the cost of developing these few flavors of hard disk. Software, on the other hand, doesn't enjoy this luxury and that's why the price cannot plummet. As to the accusation that software is more full of bugs than hardware, we the developers can make the software bug free provided that you treat software development like hardware development: rigid specs, adequate funding and time.
Software consultants are exploiting the naive because software projects are delaying and the cost is ballooning all the time.
More often than not, the clients don't have a clear idea of what they want at the start of a project, so any estimation based on that are at best tentative, at worst egregiously inaccurate. All the estimation that software developers can provide at that stage, are only as good as the clarity of the client requirements. So later as the project understanding increases, software developers can of course provide better estimation which will often result in an increase of the amount of work needs to be done.
But really, who is to blame here? The clients who don't know what they want, or the software developers who have to provide an educated guess out of the most uncertain situation?
I can't pay for your research time, and I can't pay for speculative work; I don't know what modules/design I like or need, so I need you to provide me with choices, but I can't pay for the thing I don't use.
Creating design and writing code takes time regardless of whether you are using them or not. So if you are not paying for them no one can do the job for you. I can understand why business owners are reluctant to pay for something that will be discarded away eventually, but without those throwaways there is no way to discover the portion that you need and want to keep.
I don't need a website ( or the software application); it's expensive and I can see no real benefit out of it.
I don't know how to answer this one. This stumps me.