Some clients are evil and their work is toxic
hossgifford.com
hossgifford.com
- You will constantly wait for them to make a decision.
- It will be your fault they took so long to make a decision.
- They will have emergencies of their own making.
- It will be your fault they have emergencies.
- They will commit to little or nothing on paper.
- It's not their fault because they never committed to that.
- You think you have specs; they think you're prototyping, so...
- You will do much work 2 or 3 times.
- They will constantly change priorities.
- They will forget they changed priorities, so...
- They will complain when a lower priority isn't done.
- You won't get paid on time.
- You will spend lots of time trying to get paid.
- They will always find some excuse to not pay.
- You may never get paid.
- If it's good, it's because they thought of it.
- If it's bad, it's because you suck.
- You can't win.
Honestly, I wish we could tattoo these people to save the next developer all the heartache. Listen to OP; as soon as you realize they want it fast, good, and cheap, run the other way.If you can educate your prospect on why it's not possible, they'll usually come around and even be reasonable about things.
So I would say if the prospect wants it fast, good and cheap, and it smells like they're going to be clueless dicks about it, then run the other way.
With respect to many of the bullet points above, I would also say that you have to vet your prospects just as much as they are vetting you, and protect yourself with a contract that isn't heavily in favor of the customer (i.e., you're entitled to stop work if you're not paid on time, that you have an exit clause, etc., etc.) More often than not, you also have to put your bad cop hat on and manage the customer. I've seen so many projects fail because the Account Manager or PM was too scared to say anything to control the scope of the project.
If the economic relationship, however, between you and the client is genuinely fair (i.e., they need you as much as you need them) then you're actually in a position to push back and get balanced results.
I tend to find that most services companies are more obsessed with the 'close' than they are with making sure the relationship is going to work (i.e., vetting them, asking tough questions back) before signing on the dotted line. You also have to acknowledge that a high percentage of those who take on toxic clients and projects did it to themselves.
You're assuming they don't already know. I wouldn't lump the ignorant in with the Toxic, Evil bastards discussed in the article. They know full well what they're asking for. And what they're really shopping for, is someone desperate enough to take the work, because that will mean they have them by the short-and-curlies and can continue to take advantage of the relationship.
I'm sure that if I was dealing with a more commoditized service offering in a buyer's market the case may have been very different.
The quickest way to accomplish this is to tell them your rate upfront. They'll go "ouch", at which point you can gently point them towards rentacoder, safe in the knowledge that they'll be back in 6 months time with a bit of perspective and a willingness to pay your extortionate rate so long as you promise never to put them through anything like what they just suffered ever again.
That's a big if. For most projects, the work is not that difficult in a technical sense. The hard parts are accurate communication and managing change over time. IMO these factors are much more likely to cause project failure than some pure technical hurdle.
...however, getting those good results takes a serious commitment of time and effort on the part of the client, some of which has to happen before the project even gets started, and some of which has to continue throughout the project's lifespan. Ensuring that they (the client) actually know what they want before trying to tell somebody else what to build; establishing good communication, documentation, and development practices within their own organization before trying to collaborate with extramural contractors; spending the time and the energy to really dig into it with the providers, and keep them on the phone until you're 100% sure that both you and they are reading from the same page about what needs to be done, no matter how confusing their accents are to you (or yours are to them). These sorts of things are absolute prerequisites for a successful offshoring experience, especially if it's the first time that the client's tried it.
In my personal experience, the sorts of people who are turning to offshoring as a way to "triangle the circle" and get good+fast+cheap are not the sorts of people who are going to be willing or able to put the necessary time and thought into the project, its planning, or its management. These jokers are a big part of why offshoring gets such a bad rap, in my opinion. Of course, none of this is to say that the burden rests entirely on the clients- the providers, and the relative quality of their communication/management/etc. practices obviously have a ton of influence on how a given project turns out (or doesn't turn out, as the case may be).
However, I say that decent planning and project management practices on the part of the client are absolutely necessary (but not sufficient conditions) for a successful offshoring experience. When I hear offshoring horror stories, the majority of the time the problems had their roots in client-side troubles rather than provider-side troubles.
The projects that I've been on that had offshore resourcing struck me as slower and more difficult to work on. There are only so many times that I can ask someone to repeat themselves on a conference call because his/her accent is too thick for me to understand.
Some western companies want to do it ridiculously cheap. To hire really good programmers in Eastern Europe you need to offer bigger than market salaries (which are still lower than western salaries).
The other problem is, even if they hire good people they outsource the most boring jobs, because western programmers keep the interesting stuff for themselvs. The result in this case: Phd-s doing the user interface programming in Eastern Europe. The server is developed in the U.S.
Political stuff: western guys don't want their eastern colleagues succeed. I can understand why: they are afraid that their jobs will be taken.
And sometimes communication is hard to do right. In fact depends on the project. I think it is better to outsource highly self-contained tasks which do not need an exteremely high amount of interactive communication.
I've never seen anyone afraid that another outfit would take their job-- after all, who would fix the code they got back from offshore? :)
The urge to offshore software development at that level is strong, and the management sees it as a megatrend which "we'll have to follow because everyone else is doing it".
The feedback loop is broken, the decision maker who offshores a certain project is no longer there when a couple of years later it's clear that the whole thing was a disaster. He's busy offshoring some other project.
But the sort of Indian you find in Silicon Valley (or more generally, the sort of person from country X you find working in another country) is generally not representative of the average worker where they come from. As far as Indians go, there are the cream of the crop who can work anywhere, and you never see them on the open job market. There are the regular Joes like you and me who generally work for Indian companies in India, you only see them in the West when they're on holiday. Then there are "the rest" and those are the ones who do outsourcing gigs.
I felt totally burned out after the launch and there was not even a big financial neither emotional reward in doing this exhausting mess to save my customer's back from his angry client. Three days before my contract ended, the general manager had a conversation with me in his shiny office. He told me, that they wanted to extend the contract for 6 months (~60.000€).
I answered: Thank you, but not under this circumstances.
Best decision for my physical and mental health in the last 5 years. If you've a choice: DONT DO IT.
Life is simply too short do work for such types of (in the end) losing companies and ruin yourself.
The general manager even told me that most things I said were true but he's not able to change it. As the company is inside a large publishing group and they've some large portal sites running, they're quite job-save for the next 5 years I guess.
I'm probably caring too much telling Z-Players how to improve rather to improve myself to get a A+ player. As I love programming and this is my biggest "hobby" since school I can't really do mediocre work for a longer period.
Well, 3months is okay but everything that takes longer makes me emotional sad. The only option I know is to leave for other work.
Before I clicked, I thought they were talking about doing work for cigarette or oil companies. I worked at a company that was pitching services to a cigarette company, and --nobody-- involved felt good about doing the pitch.
But back to the point, one of the speakers at the Business of Software series once said "When someone tells you the work you do is easy, they probably have no idea what they're talking about". Being in services, I think there's at least one person at every client who thinks that everything I do is overpriced and easy.
You can't blame clients for wanting to get the 'most for the least' from their vendors. Interesting that they know they're not capable of doing it themselves to hire a vendor. Yet after that decision, they don't seem to know enough to not disrespect the work you do.
Without a patron, everyone competes on fast, good, and cheap. It drives efficiency and innovation, e.g. Google.
The responses to clients with unrealistic goals is the same as to those with practical ones -- find out the "why?" and provide a detailed proposal with realistic terms.
If your proposal is rejected,being indignant is counterproductive. It's just business.
Everyone in the middle is fighting for the rest of the market, which, as the Jersey Shore boys put it, is full of grenades.
I will outsource anything that the stakeholders are being unreasonable about. Specifically to show what an "easy/quick" project will cost. I won't throw you to the wolves but there are many IT people that will.
So always protect yourself, even from the in house technical staff. Yes they'll understand the challenges you face, sometimes all too well.
If someone says to me 'I'd like to build X, and my budget is Y, and my timeline is Z' and they're not completely obnoxious in their approach, it's not very difficult to have a conversation with this individual, ask a few questions, and get a better understanding of what 'X' really is and how 'Z' came to be (assuming Y is either non-negotiable or you don't have the experience to know what you're worth). You might find that this individual isn't even aware that a product (yes I'm mostly talking web properties here) can be broken down into pieces to fit into a continuous timeline, where those smaller pieces are easier to manage and deliver on.
With all this in mind, I've avoided doing consultancy work for the better part of the past 6 years because I got worn out at the time of dealing with what the OP had described about. After 6 years, I have learned a lot more about myself and have acquired soft skills that I didn't have before (and learned from a great PM). Those 6 years have also helped me realize that humility, when used properly, can help distinguish between the arrogant and the naive client.
Clients had absolutely no ability to gauge what stuff should cost. So the company overcharged heavily on a lot of technical stuff (like renting out lights or speakers), but could offer a supreme service. (One other `trick' was to make sure that their hired hands always wore suits, did not smoke, and looked respectable in general. They hired the same students as anybody else, but could charge much more for their work.)
- How you dress - The language you use - The presentation of your proposal - Once you have the gig, the manner in which you conduct business
It's no secret that if you want to charge more than your competitors, one of the best ways to do so is to build an image that compliments that idea.
(And on of they ways to charge the high price was not too charge a high price only for the staff that really matters and costs, but may not be visible to the client beforehand---but they charged a lot for the stuff where the naive client can _imagine_ that it's expensive. If they did not offer the high quality in the rest of what they did, this would have been a rip-off, but it turned to be more of a cross-subsidy. (And since they only sell packages anyway, it does not really matter, how the invoice explains the high fees.))
What does this mean?
'Fast', 'good', and 'cheap' are all subjective terms. Each one works against the other two, for sure. That's a fact that your client will have to discover. I completely agree with the suggestions in other comments to prompt your client to use offshore talent -- then they'll truly learn that Fast+Cheap != Good.
I've worked with these kinds of clients, and their opposite: large, established financial institutions who insist on working with 'Big Name' consulting firms: IBM, Accenture, etc. These firms make projects that would be 6 months of interesting effort into 2 or 3 year-long efforts, costing multi-millions, with a ratio of documentation/artifact to useful code being about 5:1. In the end, the deliverable is generally of mediocre quality. Great software does not come from financial institutions, nor from those operating on the fast and cheap. You won't change that reality, and I think you'd grow weary trying to do so.
I'll warn you now: 90%+ of your clients will be some combination of the above -- mostly the fast/cheap type. You'll learn, over time, how to work these kinds of gigs. Think of your bottom-line (money, experience) gain. Don't look to your client to fulfill your career goals -- 'tis not their role. Apply your own sense of 'fast' and 'good', and remind your client that your expectations are to be paid in-full and on-time, every time.
...and keep looking for that next gig.
We just had a quote in for some mailshot work for us that looked awfully highly priced for what it was as everything on the quote had things that we could do ourselves with mailchimp, but the key thing that we would've relied upon for them to do that we couldn't do ourselves (mailshot template design, modifying the content to maximise attention) wasn't even mentioned on the quote.
When bidding, it's sometimes easier to justify your prices by highlighting the value in the things your potential customer can't do, rather than the stuff they can and try to do it cheaper than their internal guys. There are toxic clients out there and they should be avoided, but sometimes cheap, good and fast means cheap enough, good enough, fast enough and (most importantly) takes care of my pain.
- In the beginning, a writer should accept all work he can get, because he needs to develop his skills, and any work will do that, regardless of how well paying etc.
- But then the writer needs to learn to turn down bad work - that's the first bump.
- And later, he needs to learn to turn down good work, because there's a limit to how much you can handle - that's the second bump.
The submission here is talking about the first bump. It's not necessarily right for everyone, at every stage; though of course it's good advice and worth knowing about (btw: I always interpret the "fast" as meaning performant - ie. fast software not fast development - but the latter makes more sense for work in general.)
Note that most writers have a day job (or are independently wealthy, as Niven was - for a year), so it doesn't apply to a professional full-time contractor... but it may apply to you if you are a student, hobbiest or moon-lighting contractor.
He is not evil and toxic, he just needs someone cheaper and may need to adjust his definition of "good" and "fast" accordingly.
There are good reasons to take work for less than your normal fee. I do it to learn sexy new technologies I would not have access to otherwise. (i.e. if you have Exadata and need a cheap, good and fast DBA send me and email!) As long as you know what you are getting out of the deal, all is good.
Calling someone a douche-bag, evil and poison because he asked for reduced rate? Giving a condescending rant about it? I don't think its professional and I'd never treat potential customers like this, even if I disagree with their way of doing business.
Any manager who doesn't want work done fast, good and cheap is a bad manager. Fast, good and cheap are all good things and something that everyone involved should strive for on all projects.
You can't have them all in the real world, of course. And good managers will be realistic - I think that's what this article is saying. But even given that you have to trade off some of these points doesn't still mean you don't want it as fast, cheap or good as possible given the constraints.
Even if you decide to sacrifice "cheap", for example, there's nothing wrong about negotiation to still get the best rate possible.
Oftentimes the people you're working with don't know how much you're being paid (their superiors don't talk to them about how much you're paid because they're afraid members of their team will just want to leave because they think they're underpaid). Those people will still waste your time.
At the end of the billing period, you'll be asked to shave hours because you didn't notify someone higher up that your time was being wasted.
I was thinking of bringing up the point that it is impossible to get all three but didn't and accepted the job.
What a big mistake. I ended up leaving half a year later although it was a good experience learning the types of people I don't want to work with.