The key to survival in a client-based profession like software development is recognizing the signals of a project heading south despite your best efforts. Here, difficult clients can be a clear impediment to your success.
In fact, anyone who has spent time working directly with clients has probably come across a few that reminded them of mythological beasts. Maybe the project kicked off well but took a wrong turn into a bureaucratic fog, only to die a slow death. Maybe a powerful executive suddenly rose up from behind the scenes to kill your project midway through. Maybe an unreasonable demand late in the game burned to a crisp your chances of ever getting paid.
Here are 14 nightmare clients you may very well encounter on your quest for success as an independent software developer. May you have strength in recognizing, avoiding, and neutralizing them, when possible.
Nightmare client No. 1: The Kraken
Like the legendary sea monster for which this type of nightmare client is named, the Kraken surfaces suddenly, often in the middle of a project, to ensnare you in its multiple tentacles, also known as conflicting requirements.
On the one hand, you want the client to be satisfied and get the system they want. On the other hand, conflicting requirements are difficult to resolve. On the other other hand, more requirements means more billable work. On the other other other hand, unresolved conflicts are likely to cause the project to fail. On the other other other other hand -- you get the picture.
The Kraken sees no conflict among its multiple arms; after all, more often than not, each arm comes from a different department that's unaware of the others. Plus, the Kraken is so large that it is oblivious to the fact that its thrashing is breaking the mast and crushing your crew.
The instant you recognize that one arm doesn't know what the other arm is doing, call an all-hands meeting. Only by enumerating and exposing the conflicting requirements can you tame the Kraken. You may find that in a group discussion some of the conflicts dissolve, or you may have to work a little harder to disentangle what would otherwise end up destroying your project.
Nightmare client No. 2: Stirges
Much like its mythical, blood-sucking, mosquito-size namesake, the Stirge does little damage on its own -- a little prick that barely sets you back, leaving you to wonder whether anything untoward happened at all. But a swarm of Stirges is serious trouble. If you don't swat Stirges early, your project will soon be left bloodless.
The conversation starts innocently enough: The client has an "idea," and it sounds feasible, at least in theory, so you ask a question. In response to your question, the client calls in someone to help. This person sort of answers your question and brings up another possibility -- slightly conflicting, but perhaps resolvable.
You ask another question, and another person is brought in to help ... then another and another, each with more requests and suggestions and conflicts, generating more questions, and calling in more people. Before you know it, everyone is squawking conflicting, impossible requirements at once, and you're starting to feel agoraphobic.
Limit the number of people brought in to "help" in a conversation to only a few, especially if each person adds more confusion instead of answering your questions. At the point where you start to feel threatened, fake a phone call and exit -- before the trautonium music starts.
Nightmare client No. 3: The Hydra
The Hydra is a pernicious little nightmare of a client: Cut off one of its multiple heads, and two more grow back. The only way to defeat it is to cut off all its heads at once.
Hydras make themselves known in one of two ways: as a never-ending stream of request and conditions before commitment, if you're lucky, or a never-ending stream of also-must-haves and changes on a fixed-bid contract with insufficient boundaries for completion.
Cauterizing each head after you sever it is the key to preventing more from growing back. While I cannot condone carrying a torch into a business meeting, the next best thing is a contract with specific deliverables and a precise process for handling changes.
Nightmare client No. 4: The Minotaur
Half-man, half-bull, and hidden at the center of a complex labyrinth, the Minotaur is a powerful executive who remains behind the scenes, unknown, until you are close to commitment, then suddenly appears to throw the entire project into disarray.
There is no known defense against this creature, which is often armed by a pathological ego that cannot be assuaged, but you may be tipped off to its existence by oblique references made by others: "That won't get past Jim," or "Let's wait to loop in Jim before he puts the project off track." Any attempts on your part to involve "Jim" early the process will be met with terrified stares.
If "Jim" signs the checks, pull the plug on the project; you are doomed.
Nightmare client No. 5: The Dragon
This may come as a surprise, but Dragons do not make good clients. They hoard their gold, burn consultants to a crisp on a whim, and are generally disagreeable. And if you're looking for a knight in shining armor to slay them -- you're on your own. Dragons are quite vain and may be susceptible to flattery, but they are also treacherous and unlikely to keep any promises they make. It's much easier for them to devour you.
You can recognize a Dragon by its unreasonable demands, by the way it is never satisfied, by its reluctance to pay, by the fire that spews forth from its mouth and the terrible rending of its claws when it is upset. You most likely will not have to end a contract with a Dragon; the Dragon will fire you.
The best way to avoid a Dragon is to talk to those who worked with a client before you. Recognize the behavior patterns above, note the scorched earth and bones strewn about the entrance to its lair, give the job a pass, and live to code another day.
Nightmare client No. 6: The Unicorn
You may not think it, but the Unicorn is a nightmare. It manifests as a perfect opportunity ... that never happens. You get a tantalizing glimpse, and theoretically the Unicorn can be ridden, but mostly it appears and disappears, and you end up exerting an exorbitant amount of effort trying to track it down and tame it. If you get close, getting impaled on its horn is an option, but not a good one.
If an opportunity seems too good to be true, if it appears and disappears at random, if it can be glimpsed only at a distance, if you must complete quest after quest to prove that you are virtuous enough to deserve the project -- it's a Unicorn.
Move along, nothing to see here!
Nightmare client No. 7: The Werewolf
Most clients aren't monsters. They come across as friendly, and they collaborate well. But every once in a while, a client suddenly turns into a ravenous beast that tears you asunder. This is the Werewolf.
Worse, when the Werewolf changes back, it doesn't remember anything and doesn't believe you -- assuming you survived the assault. In the software world, it's not only the full moon that triggers this change. Questioning some sacred cow technology or pointing out an obvious less-than-ideal business practice can result in a sudden, gutting transformation.
You can survive a Werewolf client if you know what sets the Werewolf off. Prior consultants may tip you off: "Don't try to talk with him during month-end closing." "He's fine to work with unless you question his devotion to spreadsheets."
Nightmare client No. 8: The Sphinx
The Sphinx confronts developers and consultants with riddles and devours those who do not answer to its liking (not unlike the interviewers at certain pretentious tech companies). The riddles may not be obvious; they may, in fact, appear to be ordinary business problems, like employee morale, poor production, quality problems, and excessive turnover. The "wrong" answer will get you shredded -- and as is often the case with the Sphinx in the software world, there may not even be a right answer!
The Sphinx is difficult to spot in advance, but if you hear (or overhear) comments like "third consultant this year" or "pop the Pez dispenser, here's another one," then you may be heading for mysterious disaster. If you think you may be engaging with a Sphinx, get paid in advance.
Nightmare client No. 9: The Undead
In the software world, there are many kinds of Undead, with varying appearances and deleterious abilities. Some seem like normal, even charming people, then suddenly turn on you when you're vulnerable and suck the lifeblood out of you or your work. Others are nebulous, noncorporeal entities that pass through walls and other barriers, haunting your project and scaring your developers. No matter what form they take, Undead clients are particularly frightening because they are relentless, unstoppable, and worst of all: No one believes you when you talk about them.
Mythological undead can be defeated by different means depending on their kind -- a stake through the heart for a vampire, an exorcism for an evil spirit, removing the head of a zombie, and so on -- but in the tech world, the safest recourse is to fire them and find new paying work.
Nightmare client No. 10: The Troll
Trolls lurk in isolated places and spring up on the unsuspecting to attack them. Anyone who has spent anytime in a comments section on the Internet is familiar with the tech world equivalent.
As a client, a Troll takes offense at everything you say, no matter how you say it, even if you are quoting their own words and agreeing with them. The Troll delights in extended email conversations, hijacking the original intent into netherworlds of pedantically misconstrued arguments -- because they think it's fun or because they have a technical hobbyhorse they can't get past.
You can't get anywhere with a Troll. You cannot trick them into the light of your wisdom as an experienced tech pro and consultant. You must do as the wisdom of the Internet tells you: Don't feed the Trolls; ignore them.
If the Troll is your client, fire them. If the Troll simply works for your client, exclude them from conversations. Cite their disruptive behavior to your client, and inform the client that the Troll will henceforth be excluded from all conversations.
It's not pretty, but if you're not careful, the Troll may try to eat you.
Nightmare client No. 11: The Siren
Sirens are known for their beauty and enthralling songs, leading sailors off-course to be dashed against the rocks and reefs. It is rare to have a client that is an actual Siren, but it is not so rare for them to sing Siren songs -- with much the same effect. (Developers are also known to do this to themselves, by getting distracted by shiny new tech instead of finishing the job at hand.)
A Siren client may offer irresistible temptations, typically the promise of a lot more work in the future in exchange for something "simple" done today, for free. Chances are, the things they want today for free are not simple, and the future work will never materialize. Do not be tempted; instead, plug your ears and avert your eyes, and stay on course!
Nightmare client No. 12: The Ogre
Ogre clients have the unfortunate habit of killing ideas and projects out of reflex. They can't help themselves! Whether they are allergic to new ideas, are secretly committed to failure, or simply hate you, it doesn't matter -- you won't get anywhere with an Ogre.
If your client is behaving like an Ogre, preventing progress or constantly killing your fledgling efforts in favor of new directions, your only option may be to call for assistance from above. This may be done with a move as simple as sending a positively worded sent to the Ogre and the Ogre's boss, outlining some of your proposals or endeavors that have been devoured (don't say "devoured" in your email -- ogres are notoriously bad-tempered) and asking for help in understanding what they really want to achieve and how. Otherwise, you're wasting your time and theirs on a fairy tale.
Don't be surprised if the Ogre fires you; they're touchy like that.
Nightmare client No. 13: The Will-o-Wisp
Will-o-wisps offer a guiding light through the foggy marsh when you need it most. But as you approach it, the light seems to move away, as if beckoning you to follow. Thinking you are saved, under the spell of a Will-o-Wisp you wander further into the marsh, straight to your doom.
Ever have a client like this? First, they create the fog: conflicting, vague requirements; multiple bosses and sign-offs; a series of free RFPs (requests for proposals) or low-paying POC (proof-of-concept) projects. But you never get a firm commitment, never a clear target. The end result is a slow, struggling death in a dark marsh.
Most clients don't intend to be Will-o-Wisps, but they end up that way, largely because they are unable to commit to or declare a goal or path. Many are rendered timid by technology. Others are simply wandering around in a fog themselves, so bound by their own bureaucracy that they cannot escape. But you don't have to join them on their death march! Whatever you do, don't get dragged into the muck and fog with them.
Intentional Will-o-Wisps are more nefarious. Often they simply use you for information because they already have another vendor in mind or are window-shopping. The way to escape is to escalate. Recognize you are talking with the wrong person, and you need be referred to the person who has actual authority, vision, and purpose in the organization. Chances are it is not this person's boss, but the boss's boss's boss, maybe even higher up the chain. It's OK if your contact is unwilling to go with you on your escalation; you must climb a tree, get above the fog, and find firm ground, or you will both fail. Do nothing, and you both stay lost.
Nightmare client No. 14: Frankenstein's Monster
Frankenstein's Monster was misunderstood. Cobbled together out of pieces and bits of others, he tried to be good, but failed -- disastrously.
One encounters Frankenstein's Monster not so much in client form, but as the emergent result of a client who places no value on consistent methods, clean code, testing, refactoring, user experience, and so forth. Dr. Frankenstein was the real monster in that story, and that is what to watch out for in a client.
Has your client asked you to take questionable shortcuts? Has you client spouted morally ambiguous principles, eternally emphasized results-now and don't-care-how approaches with zero remorse or responsibility for cleaning up the resulting mess? If so, you might be working for Dr. Frankenstein and unwittingly building a Monster.
You, as an ethical software professional, must make provisions in your work to keep the code clean. Emergency fixes and features will happen, but don't simply fire and forget -- when negotiating to fix or create these things (which will, over time, add enough cruft to your code base to bring the Monster to life) you must include time and provisions for refactoring, testing, and when appropriate, reanalyzing and redesigning the offending/affected subsystems.