Lots of people want BS projects and lots of people also only really learn through experience. That $10k project that is "obviously doomed to fail" might give them a fairly cheap education in business that will lead them to their next, more profitable project. Or, perhaps, they'll figure out they're not getting the results they want, ask why, and make the necessary changes to make it work with that $10k thing that's been built. Not everybody is irrational or unreasonable in the face of failure. (Also, that BS project might actually succeed too.)
Bear in mind that most businesses fail, and someone's first and second businesses are even more likely to fail. Trying to save someone from failing in this way is depriving them of the experience that they need to be successful later. It's akin to trying to stop a toddler from falling but also preventing them from learning to walk. Experience is a valuable teacher and we don't need to be out trying to save the world from failure. Failure is necessary.
One more example: if I go to my hair stylist and ask for it all to be shaved off, I'd hope that he'd tell me I wouldn't look good with a buzz cut. However, if I insisted, I'd also hope that he'd do it anyway.
Perhaps the only three good reasons that spring to mind for turning away a prospect are a lack of ability or willingness to pay, an inability to complete the project, and a severe personality conflict that's going to lead to lots of drama in the working relationship.
However one rule my Dad made sure to remember was that although someone deserves "a real beating" (obviously figuratively speaking here) you should always avoid being the tool used for that.
I've built plenty of things for clients that I thought were of dubious value, but I always tell them my concerns and push them to iterate through the project to avoid getting in too deep.
Sometimes, I've been wrong about the value.
And sometimes, as the post suggests, I've said no.
I don't think either is a wrong, as long as you are honest from the get go.
Will that hair project also require months of work?
If so, your hair stylist would be very, very smart to say "No, sorry," to your request, because then there will be at least one more client of his/hers out there with a negative result. Which makes the hair stylist's portfolio success rate that much lower.
And the sign of somebody who won't say "No" is the sign of somebody who's not dedicated to results. As consulting god Weinberg would put it, they'd fail the Orange Juice Test: http://blog.intercom.io/the-orange-juice-test/
If you ask me, a better metaphor would be whether a person will go out with absolutely anyone who offers them a free dinner (even if they think the potential date is dumb as a box of rocks)… And what other, later, more desirable potential dates would think of that person's choice to not exert choice.
So, flipping the allegory now, if a client comes to me and asks me to develop a Twitter, would it be OK if I deliver an eBay instead?
My conclusion is that it's probably time to treat our hairdressers like they're developers and instead of just saying "yeah, that's perfect" when we really hate the cut, tell them that we are not happy with the results and that we will be back once the hair grows for another iteration, and that we'll pay once we can go live with the haircut as we specified it.
Either that, or stop using irrelevant allegories.
If you are working on something you don't believe in you'll be working at a lower fraction of your capacity, whether you know it or not. Better to leave that job for someone who does believe in it, and who by virtue of that fact will make it a little bit more likely that the project succeeds anyway.
There is absolutely no harm in being honest, with your customer and with yourself. Working for a long time on a project you don't believe in won't have a happy ending.
Saying "No" is a way to honor yourself, protect yourself from hidden opportunity costs (both real & psychological), and feel good about what you're doing.
Obviously I'm not their target demographic ;-)
One of the downsides of the tech bubble is that some programmers get a sense of entitlement because they are such a precious and valuable genius. Not really. Programmers are not more special than other professionals (or even more special than the people who pick up my trash). Don't believe the hype. You might one day find yourself working at Burger King after the bubble bursts.
And "stupid" clients without an obvious business plan, etc. are not the sole reason to say "no". Much more common is the client who you can work with, but it's not the best option for you or the client. Because they're looking for the lowest price, not value received. Because they're looking at something that's only 60% in your sweet-spot, and isn't interested in the other 40% of your skill set. Because they don't have the budget for your current rates. And so on.
If a potential client come to you with a questionable business and asks you to do work for them _as an investment_, you probably should walk away. If they want to pay you, then do what you think is best.
Consultant's generally have to spend a lot of time persuading their customers to follow their advice, and charge high rates to make sure that they do. Contractors focus more on efficient delivery of their work, and let the customer sort out what to do with it.
Note that I'm using the titles consultant and contractor in their extremes. Most people who have one of these titles actually do both jobs during the course of a customer engagement. It helps to be aware of which one you're doing when you're doing it, though.
I would clarify what I can and can't do for them: "I can build a working product that will scale to 10,000 concurrent users assuming you're prepared to pay $5K per month in hosting costs. I can't deliver millions of users, protection from patent infringements, etc."
Also, if I think the idea is going nowhere, I would be careful about being paid up front.
If their happy with my terms, I'm happy to receive their money.
If I were so good as to be able to tell which ideas are going to succeed as products, I'd be sitting next to Mark Cuban on Shark Tank and making fun of how poor he is. Until I gain that expertise, I think I'm going to let my clients follow their dreams and help them out as much as I can.