I think this highlights the interesting lack of fundamental understanding by the general public about software and how complex and expensive it is.
Intuitively people understand things like cars and laptops are expensive, time consuming and difficult to build requiring complex tools and machinery.
This is not the case with software, where we see time and time again requests like "same as Facebook..." or "Same as Amazon". People have no idea of the time, money and expertise that has gone into making these sites function.
I wonder if we can change that lack of understand, or if the general public will always be at a loss to understand the complexities of software ?
Education can also be dangerous in the hands of a potential client. I've had to explain to clients why they were paying what they were paying for a website when one of the owners of the company pipped up saying "But it's just a bunch of HTML, I could do that, so why are you charging us so much?" In this situation, you really want to say "then go do it yourself if it's so easy", but that's not the best way to put it.
They know what HTML is, but then when you explain that while the output might be composed of HTML, it's dynamically rendered from the Server using a programming language along with data stored in the database and also on the frontend with JavaScript and CSS. At that point, you kind of lose them and they're not any better off than a client that didn't know HTML (other than they now think you're trying to BS them for more money).
I explained the above more eloquently than the short summary above and the other owners were less distrusting. However, what people are educated on can also easily backfire to be worse than if they stayed ignorant.
I've also had clients that were actual developers and way too busy to do all the work they had. Those sort of clients go pretty well and they know what they're paying for. Not saying that education won't help, but we should be cautious to how the average person is educated on the behind the scenes details of software development.
If they're intelligent enough to run a small business successfully, they're intelligent enough to understand that even if they're just having a leak in the plumbing fixed, anything they do themselves will be a joke compared to what a professional will take care of in a fraction of that time. Even if they've been to Home Depot and know what parts to buy.
> But it's just a bunch of HTML, I could do that, so why are you charging us so much?
This is just a bullshit ball-busting test they throw at every contractor they talk to, regardless of the industry or work. Trust me.
Answer: Well, I'd love to charge less, but then I get overwhelmed with work. The prices I charge are there to keep things reasonable. (look at watch) I have a meeting with another client in about 30 minutes. Are we proceeding with the project?
You charge what you charge not because it's HTML or complex server code or whatever. It's because there are people there who are willing to pay your price because they appreciate what you do. This is a meeting to determine if this person can appreciate what you do. So ask them. Don't waste time in techno babble.
The general thing that people find both in pricing products and in pricing services is that at the low end of the scale you deal with people who perceive less value from you, less value from your offering, and have more and more unreasonable demands. Like if you’re writing iPhone apps, you’ll receive reviews like “This 99 cent flashlight app didn’t do my taxes, one star!”
That particular client was from my earlier college days of starting out in freelancing. They didn't give me any real issues after that point, but yes, they were not the ideal client to what I would want now :)
Patio11 also has some great articles, so I have to agree with your link.
Relevant quotes from clients who've commissioned web developers/designers (previously posted on Clients From Hell):
---
“I want to create a rival to Twitter. So I want it exactly the same except where it says What’s Happening? I want it to say How are you feeling?”
"There’s one thing that our social media site will have that Facebook hasn’t even thought of… People can rate each other! Out of a possible five stars, depending on looks and talent… We’re gonna put that Mark Zapperburger out of business, I know it!"
> “I want to create a rival to Twitter. So I want it exactly the same except where it says What’s Happening? I want it to say How are you feeling?”
Well... if "exactly the same" includes stuff like "data is stored on Twitter's servers", you could probably write a greasemonkey script for this in about ten minutes.
I've done my share of software developer hiring. And, I've had my share of sticker shock. What always makes it a little more palatable is seeing the number of (man)hours a project will take. People understand wages, and can also easily mentally compare them. When I see what you're making per hour, and it isn't gut-wrenching, it's easier to swallow.
Of course, you'll still have to deal with idiots who can't understand why it won't be done in an afternoon.
Unfortunately, working lots of man hours for a smaller or set fee is still tantamount to underpaying. A project where you are overworked is not worth the hassle.
"the interesting lack of fundamental understanding by the general public about software and how complex and expensive it is."
The reason why many people have a good understanding of other complex stuff, like a car, is because they are able to tinker and service it. You can't tinker with the internals of Amazon.com. Without a frame of reference, there's no way to know how complex a system is.
The amount of stuff you need to sit down at your computer and try to build a "site like Amazon" is pretty trivial. In fact, all you need is a computer and a net connection.
You'll discover quite quickly that you can't build Amazon by yourself, but there's little barrier to entry (there's a huge barrier to completion).
Agreed, developing software is complex and expensive, I think sometimes we jump the gun in thinking we do actually have to expend that effort.
Not referring to this request specifically but sometimes people just need pointing to something like webstore.amazon.com. This may well be a sufficient MVP for a customer who needs an e-commerce presence.
Sometimes it is a lack of communication. A client has no better way to explain what they want than to point to another site they have seen recently and say I need that. They may not need all that, but they want some aspects of it and can't describe it in more technical terms because they lack the experience to do so.
At the same time, we're sometimes quick to take what they say literally and scoff at the rate they want. While some clients really do want what they're asking (and a smart developer will run away quickly in the opposite direction), there's some that are just lacking the knowhow to describe it better. It all depends on if one wants to deal with such clients.
>I wonder if we can change that lack of understand, or if the general public will always be at a loss to understand the complexities of software ?
Considering that one of the base tenets of software engineering is to create abstractions, those abstractions work against communicating complexity because they are meant to hide/control/abstract the complexity. It's easier to see and explore the complexity of a physical object.
In some sense, software is more like the useful abstraction of the model of the atom (with the electron levels, etc) which help explain the nature and interaction of it even if it's not physically like that. A car doesn't have abstract abstractions like that, what abstractions it has are easily exposed and physical entities.
I think the thing with cars and laptops is that people understand that they don't know how to make them. Cars are big, and when I open the hood of an older car (before the nice, clean plastic emblazoned with the manufacturer's logo to keep me away from the engine), I knew I couldn't do what someone else had done. Likewise, laptops are small - I can't possible build that. But them someone looks at the output of Word or PowerPoint, and can't tell what makes a web page so different. They can make their screen look like a website, so how hard could it be?
Design has always existed in this sort of gray area, especially with the introduction of Photoshop and desktop computers. Many people think graphic design is as simple as selecting a font and picking some colors to go with it.
I doubt software/web development will ever get past the same hurdle in the minds of the general public.
I think there's this conceit floating around, perhaps, that the web is supposed to be some kind of overunity money engine for which the laws of supply and demand need not apply. Photoshop, SaaS sites like Wix and Business Catalyst, and freelance sites like elance, play a bit part in fostering the idea that what we do (at any level) isn't necessarily work, and seem to cater at various degrees to the desire to outsource or eliminate developers altogether while still gaining all the fruits of the development.
After all, freelance sites like elance exist based on the premise that developers will claw over one another to underbid for a project, and they will. Just try to win a contract there charging more than twenty dollars an hour. It's absurd what rates people (on both sides of the table) will accept just to get any business done at all. It's terrible, and unjust, but on the other hand enough of us are willing to participate in a system stacked against our own interests that we prove its efficacy to business owners, because we need the work.
Intuitively people understand things like cars and laptops are expensive, time consuming and difficult to build requiring complex tools and machinery.
This is not the case with software, where we see time and time again requests like "same as Facebook..." or "Same as Amazon". People have no idea of the time, money and expertise that has gone into making these sites function.
I wonder if we can change that lack of understand, or if the general public will always be at a loss to understand the complexities of software ?