Hacker News new | ask | show | jobs
by raynimmo 5622 days ago
I thought I had better write an explanation as my actions here seem to have kicked up a bit of a furore, undoubtedly that was my intention, although maybe not on this scale, more of an attempt to embarass them. I am not sure of how much I should go into as I signed an NDA with this client although the contract that it was attached to ended in October; maybe someone with better contract law knowledge than me will know more, either way I will try to be vague.

A little about me: I am a freelance developer, educated as a software engineer in Edinburgh then started leaning towards web development a few years back. We quit Scotland 4 years ago to come and live on a tropical island in Thailand where I could take my time winning small jobs, enough to earn what I needed. Indeed its been quite a successfull last few years, winning many jobs for web development and graphic design, all of my clients have came back for more work. The fact I havent updated my portfolio or blog in over a year is a testament to how busy I have been.

The bare details: I very good friend asked me to help him build a website and a backend system for his staff to use in their day to day business. I quoted a ridiculously low sum of money compared to western standards but a worth that I felt I deserved for the work considering I live in Thailand where the cost of living is less.

The contract was for 6 months initially for a fixed fee split over those 6 months. With regards to the system, which has swollen to quite a full featured product, something I am very proud of, possibly my best piece of work to date, just a shame it wont appear on my portfolio now. The specifications for the sytem over the course of the development had many more additional specifications added to cover internal aspects of the system that were not originally envisaged, obviously not fully taken into account when originally quoted. My contact at the company was good, he understood the pitfalls of custom software development and when I explained to him about why the project has taken longer he understood and we carried on regardless. As I said the contract ended in October, the same month they stopped paying me when they suggested that they wanted to suspend my weekly payments and pay me a lump sum upon completion. I understood their reasons then for doing this and since the project was behind schedule I aggreed to this.

Now I find myself within 2 weeks of delivery of the full system, so I start getting my invoices together for the last 14 weeks of development. I forward them to the client and I am more or less informed that there is no way they are gonna pay that amount. Lesser amounts are then offered, tied to some crazy scheme regarding "support" over an extended period, god knows where the payment for the "support" period was coming from.

In the end it was a stalemate, I felt I deserved my meagre salary, it will cost them a lot more for a UK dev to finish this where their daily wage is more than my weekly wage, so I always thought I would win through. This is actually their second attempt at building this piece of software, the first one was a non-event with an indian company.

The company even flew one of their guys out here to help me finish off the system - my friend, the guy whose idea this all was, he wrote the 'spec' for the software. He has tried to get the UK bosses to agree to this and that but they wont budge, I feel there is apower struggle within the conpany but I wont go into that as it is pure speculation. In an attempt to help them understand software development, that sometimes you dont know all of the variables until you start, etc, etc, I forwarded a number of websites and blogs that had interesting articles regarding the development process and reasons for their failure or late delivery, I was told it was pointless sending them as they wouldnt read them as they dont care. One of them was even supposed to have said "why do we need a website?" , now how am I supposed to convince this guy about the trials and tribulations of building a customised piece of software.

So yeah, talks broke down, I felt pissed off, I then sent archives of updated files for the system to my contact, not really updates but resetting the systems development back to where it was when they last paid me over 3 months ago. I then done the same on the server system that their staff were helping bug test. I then; foolishly now I think, put their site into maintenance mode and switched the maintenance page to say "You aint paid me, you suck". The site structure that was there is still there, if somewhat unfinished, all I changed was the maintenance page; I am sure any Drupal developer knows how easy that is to switch off. I also added an extra variable with encoded content onto the $closure that would display if they managed to get it out of maintenance mode. Encoded it just to make it that bit harder to find and remove :)

I do regret doing this, not because of my actions, but as I said before, the guy whose idea this was is a friend, he is a third of the board, it was the other two thirds that swayed the vote though, and I feel bad for him. I know I am not getting paid, my money is long gone, I wouldnt have done this if there was a chance of reconcilliation, I have known that for the last few days, they wont agree to my demands and I wont agree to theirs - stuck in the middle.

I have now changed the offline message to simply say "You aint paid me" and have removed the encoded $closure and I dont intimate that "they suck" anymore, its amazing what the harsh light of day makes you see.

I see a lot of flamers and haters out there, no doubt a few of you will come back on and berate me for doing this, as I said, my actions were harsh and misguided, but if a client bumps me in the future I would probably do it again.

As a developer you learn something new every day, be it a sweet bit of javascript or some cutting CSS technique, this project taught me lots over its course. The biggest lesson I take from this though is how to handle clients that become problematic, how to word contracts to cover all eventualities during development and that rash actions are usually regretted in the harsh light of day.

So yeah, thats my 2 cents worth.

What would you have done, I would love to hear what actions others would have taken.

4 comments

It doesn't sound like you put a price (both in added time and money) on the additional out of scope features. So instead it looks like your super late, and want more money. Not a good place to be with a "why do we need a website" client.
exactly, easily my biggest failing on this is intimating exactly what extra costs would be acrued when the initial contract expired and adjusting end dates. Then if they pulled the plug fine, at least I wouldnt have been working for the last 14 weeks for no money and could have moved onto another project.
I'm a business manager who knows how to code (poorly). Rather than pursue programming, I saw an opportunity for be to bridge the gap between programmer and customer, so I have a lot of experiencing guiding developers away from catastrophes like the one you suffered.

Two things to take away from this:

* If you provide a fixed price without a fixed spec, you had better be prepared to lose your shirt. Fixed work means fixed spec. Always. Any changes must be accompanied by a document (a change order) that spells out the impact to the bottom line, because that's what business managers care most about. The key is to make sure you clearly communicate the impact to the bottom line all the way up to the check signer.

* Never let a project get to 14 weeks without the check signer (not just your contact or stakeholders; the person who will sign the check) knowing that you're accruing billing. It doesn't matter how good your friend is, you don't want them in a position where they're having to act the odd-man-out in order for you to get paid. It may be the "right" thing to do, but you can prevent them from ever being in that position by setting up communication that reaches all the way to the person who pays the bills.

A story something like this - except I managed to finish it and get paid my measly pittance - is what earned me EIC in 2004 and drove me from the software development industry entirely, as I recognized at that point that I had no business pretending to be a business.
My biggest worry is that the ignorant individuals could call this "hacking" and initiate proceedings that could make your life very difficult. More to the point, England has shown itself to have some really stupid "hacking" prosecutions in the last decade. I would make sure you haven't opened yourself for such charges.

As it stands, I would not have started the additional work in October without further contract and payment schedules agreed to. If I had not done that, I would have been sending invoices all along and stopped work a lot sooner than 14 weeks.

As you are not in the UK, the situation is a little more unusual. Otherwise, I'd file a claim with the Small Claims Court (assuming its within their max amount). Keep all emails, letters, log of commits and so forth.

Here's some advice to start with:

http://www.thisismoney.co.uk/bargains-and-rip-offs/article.h...

There are also collection agencies that can enforce the ruling.

For larger amounts, it's probably worth going to a lawyer.

Generally a company unless it has severe financial issues may just want to prevent the hassle of going to court, and just pay you what you are owed once the threat of legal action arises.

There is no damage to your reputation for taking a client to court for non-payment. Small businesses have to do this all the time.

However I would NEVER take down any sites, intentionally sabotage software etc. as that may make you liable under law. And, as others have pointed out here, there are two sides to the story, and a court gets to hear both sides.

they do suck. you should have left all of that up. you should wipe their server harddrives while you're at it.
No, I left the server intact with work that was completed on the last day that they paid me, if they pay me the remaining amounts, then I will release the completed codebase to them.

Now that I think about it; I think the site build was initiated after that date so I could have just deleted it, maybe that would have been a better action, but anger and the heat of the moment can cause you to lose your cool.