Hacker News new | ask | show | jobs
by dasil003 5499 days ago
Of course this is a good message to send to big clients with big projects who merely "don't get it". On the other hand, there are a lot of small businesses and other clients with very limited means who have maybe $1000-$10000 for a project. Web development is new territory for them, and they have no other way to approach the problem other than to put a fixed-budget stake in the ground, and of course their requirements are going to evolve as they learn.

One of the reasons I joined a startup was because I was sick of working under those conditions, and writing an FU blog post like this is the luxury afforded to those of us who can more or less pick what we want to work on.

That's great, but there is still a pool of small clients who can be profitable, but you have to understand how to work with them:

- Learn to use off-the-shelf software to build lots of functionality quickly in a predictable fashion (WordPress, Drupal, Expression Engine).

- Charge a flat fee only for something you've done before, and make sure it has padding. It's not unethical (as suggested by another commenter) because this is how you are able to afford a flat fee. You'll be churning out hundreds of these so you need to work the law of averages. This allows you to be a bit accommodating instead of going into conflict mode every single time.

- Turn your creativity to your own systems. Face it, on a $5000 budget you are not going to do anything revolutionary for a client. You can however build your own systems that you leverage in order to serve a hundred clients better. Do it well enough and you actually build a business that scales better than top creative agencies working on 6-figure budgets.

- Be customer-service oriented. Face it, someone paying you $1000 a year is just not very important to you and it's easy to let that attitude show. The thing I've found is that small clients actually are more accommodating than big clients as long as treat them with respect. That said...

- Dump toxic clients. There are always those with unreasonable expectations and no respect for what you do. The worst is when they are sort of borderline stringing you along, but you end up losing time and money over the long haul. How you get rid of them is a matter of tact; maybe you say you are all booked, maybe you raise your rates for them to an exhorbitant level, maybe you just give it to them straight ("I am not profiting from having you as a client"). I don't have a one-size-fits-all solution, but get rid of them you must.

3 comments

  Learn to use off-the-shelf software to build lots of
  functionality quickly in a predictable fashion 
  (WordPress, Drupal, Expression Engine)
Bravo. This is the way I look at it: if it has been done before, somebody, somewhere has productized it. If it isn't a full-blown CMS, it's a bundle of Rails plugins and all I'm doing is writing glue code.

If it hasn't been done before, because it's really specific to a client's domain and idiosyncratic processes, it's R&D and we shouldn't pretend we know how to do it with enough rigor to provide a competitive quote.

In many cases, the problem is that it has been done before, buut the client doesn't want to "colour within the lines" and run with the limitations of an existing CMS or other platform, they want a bunch of customizations that have little or no ROI.

The Big Sell in those cases is convincing them to scale back their expectations about customization and live with having the 20% of the features baked into the off-the-shelf system that deliver 80% of the ROI. Even if they want to pay by the hour, it's not a good investment to build what amounts to business chrome.

Interesting tangent to this, after doing PHP from 2000 to 2005, I hopped on the Rails bandwagon full-bore and was using it even for small clients. 6 years later I feel that it was a bit self-serving because those old Rails sites are creaky and painful to upgrade—or even to find someone else to work on—compared to my PHP sites from the same era.

Now that I have ample outlet for my creativity I can be a bit more objective and admit that as much as I love Rails, it's a terrible platform for build-it-and-forget-it. Rails shines for core business apps under continuous evolution.

What do you consider to be a good "build-it-and-forget-it" platform?
PHP, Java, Cobol? It's all relative I suppose.
You're recommending COBOL as more maintainable than Rails? I don't know Rails, but I find this very hard to believe.
The times, they are a-changing. COBOL has its own agile framework:

http://www.coboloncogs.org/INDEX.HTM

Where did I say maintainable? This is about stability over time.
It's not unethical (as suggested by another commenter) because this is how you are able to afford a flat fee.

I agree and want to expand a bit. Even if a change or addition only takes me 10 minutes of my time now, it's important to remember the months and often years of experience that I'm drawing upon to make that change so quickly. Explain to the client that they are not only paying you for your exact time, but also for your skill set and ability to do a job quickly AND correctly. All of those qualities cost money and clients who don't want to recognize that fact are toxic and should be dumped (as suggested by the poster I'm responding to).

That's right. In flat rate contracts, the client is paying for the value being delivered, not time.
All great tips, thanks for sharing. I didn't put a disclaimer in the post, but our experiences are indeed based on larger projects, typically at least in the $20,000+ range. Those are always tailor made apps, nothing off-the-shelf (apart from the framework and all the open source components we use, but nothing like Wordpress). What we do is often pretty specific.

I think your comment, as you said, has some great insights when it comes to smaller projects.