Remote Debilitating Switch For Painful/Non-paying Clients
You’re a freelancer, you’ve been slaving away for weeks at a project you way under-quoted and now you just want to get it done and get paid. When it comes to invoice the client, they’re being difficult; making demands, claiming things weren’t done and aren’t working as expected. It happens, and many companies or even small businesses will withhold money from you at ransom until you comply and you will comply, what if there was another way?
I’ve been contemplating incorporating some kind of clause into my development policy that states if payment isn’t made within x number of days, the code will debilitate in stages until the payment is made. I’ve never needed to do this and hopefully never will though, but having the clause there will cover my actions. What do I mean exactly?
The client is being difficult, you’re standing firm and you know you’ve done the work they asked, they’re basically trying to get extra work out of you knowing they can usually get away with it. You activate stage #1 of your remote debilitating switch. The site randomly slows down file transfers for resources like stylesheets, images and scripts.
The client hasn’t noticed that speed of some file transfers has been limited hence making things like page styling take a while longer to load and style the page, they’re still standing firm, holding you hostage; you activate stage #2. Database queries start randomly slowing down, you add in a delay to make the time a query that usually would have taken 300ms now take 800ms, the site is now severely hampered but still usable.
By this stage the client hopefully would have started to notice the site slowing down. They’re going to tell you to fix the issues or you’re not going to get paid. You’re going to tell them to pay half of what they currently owe you and then the other half after you fix the issues. If the client doesn’t pay then surely once we get to stage #3 they will, no client wants to see what stage #3 is like.
By now static resources are loading slow, database queries are taking forever but it still hasn’t been enough. Stage #3 introduces random refusals of particular files and some database queries (read only queries) start to be refused as well. The site is now in a state of sometimes responding to requests and sometimes it isn’t, coupled with the slow access times the client at this stage will most likely comply with your requests.
But wait, isn’t this all unethical; aren’t you stooping to the clients level by holding them to ransom? Yes, yes you are and you know what if someone is going to screw you around and blackmail you, why not dish out the same treatment they dished you.
As a quick disclaimer, I would only ever do this in a project if the warning signs of a dodgy client were there. I have never needed to do this, but if a client ever were to mess me around I would do it. Lets hope I never have to.