Publicizing your work may be a fun way to 'get back' at an nonpaying client, but is it good for business? Would the professional thing to do be to simply drop work on this client and move on, or is any publicity good publicity for the coder?
This is damaging to the client. Yes, they may have deserved it, but will future clients be discouraged by this behavior?
Edit: To be clear, I'm not saying the coder was in the wrong in any way. That is to be determined based on whatever agreement existed between the coder and client. I'm asking if as a business decision it was wise to release the work. The client now has all of the work, and there is no possibility of reconciliation.
Why would the nonpaying client, or future potential clients, care what the developer does with his property? If they wanted it, they could have bought it from him. (I'm assuming that the developer didn't sign any IP assignments upfront, or is violating any NDAs or similar agreements about this code.)
If I was a sculptor and a client commissioned me to create a work of art, then didn't want it, surely nobody would fault me for donating the work to a local school instead of destroying it.
I disagree that the commissioned art analogy applies directly. My argument is that this was not a work of art, but a business tool, designed to provide the client with a competitive advantage. Donated art doesn't harm the commissioner, but publicizing this code CAN harm the client. A competitor can take this code and use it against the client now.
It does sound like there was no proper contract between the coder and client, which means there were probably no NDA or IP contingencies, which also explains why the coder was able to work for 200+ hours without seeing a dime. I believe the coder is in the right here. I just wonder if what he did was best for his career. It looks like most of HN agrees that it was.
I doubt future clients would be discouraged by this kind of behaviour. The good clients, the kind you want, understand the value of work and the importance of being paid. They will no doubt be able to emphasize with this coder.
Let's see, he did work for his client, never got paid, but handed over the work anyway. That seems like fantastic customer service right there. :-)
If diluting the client's competitive advantage is harmful to the client, then wouldn't anyone who releases a free product with equivalent functionality be responsible for hurting the client? Is in unethical to, say, release Apache because it dilutes Microsoft IIS? That doesn't seem like a reasonable standard.
Now, if the client provided proprietary information to the contractor (wireless toothbrushes are going to be big next year!) and that information was somehow baked into the now-open code (automatically flag all startups building wireless toothbrushes and move them to the top of the pile!) that would be less than ethical. I see no indication that this happened in this case.
It's akin to how attracted the opposite gender would be to you, if they knew you (however justly) burnt down a (bad) ex's house.
I have seen a friend of mine retaliating on her blogs against clients who didn't pay on time, etc.
And I also know at least 4 prospective clients (honest ones, they always paid in full and on time to their contractors) who got discouraged because they had witnessed the "worst" of this friend when things might not work out between her and the clients.
The client's name doesn't need to be released for this to be damaging. This is work that the client wanted (and maybe already received beforehand). Now it's publicly available. It dilutes the value of what the client may have had. It may open the door for competitors.
NOTE: I'm not saying the client doesn't deserve any of the harm this may cause. I only want to show that there IS a potential for harm.
This ensures that the coder gets some benefit from the code. At the very least he or she can use the code as example/demo code to show future clients. Yeah, its definitely not as good as monetary compensation, but its better than nothing.
On the contrary, I would think people would be be quite inclined to commission this developer so that the work would be done, and then they could just leverage the open source version he releases when they don't pay.