In his blog, Mike Taber tells a tale that contains a message. Simply put, working with Enterprise Java requires many soft skills in addition to the technical ones. His tale is about how he eventually got paid for work he did. The tale starts with a contract with payment terms so favorable that he overlooked one detail. Mike would not be paid for his work unless the client paid the company that he would be sub-contracting through. For a brief period, all was going well. Mike was working, billing, and the client and consulting firm were paying invoices on time. And then it all started to unravel when then client was first late on one invoice and refused to pay a later one. With the client not paying that overlooked detail let the consulting firm off the hook for paying Mike. In spite of having no available legal recourse and no prospects of getting paid, Mike still decided to maintain a relationship with all parties involved. In the end, it was this decision that eventually resulted in him getting paid for his work. The experience taught him a number of lessons from which he lists;
  • Leaning on a single client is asking for trouble
  • Never sign a contract that doesn't pay until someone else has paid
  • Never sign a contract without having a lawyer look at it
  • Never burn bridges
In a bit of twisted logic, it was most likely the second lesson that lead to Mike not burning any bridges in this particular incident. Have you ever faced non-payment and how did you handle it?