I feel your pain, and I sympathise. Having said that, I get a different lesson from this.<p>Your relationship with your developer feels a lot like writing code without ever actually testing anything as you go. It's like taking the spec, writing all the code, then hoping that you get something that works at the end.<p>The lesson to take is that you need to check on progress far, far more often. Somehow a "contract" needs to have measurable stages that you can sign off on regularly, paying only when the work is done.<p>You probably felt that 7 to 10 days of work was small enough, but with nothing to show after a week, you needed to chase it.<p>It's a tough lesson, and it's cost you $550, but you're right, it's going to be better to write it off and take the lumps. I would suggest that the other "lesson" isn't so clear. If you need a lawyer to write then contract then you've already lost. You need a better relationship with your contractor, not a more detailed "spec". When you write code you need to write, test, sign off, and then write more. So it is when someone else is writing the code for you, at least until you've got a working relationship built on mutual understanding and trust.<p>ADDED IN EDIT: Some time ago I was looking to do a deal that was a 7 figure sum (or so). All the people I dealt with fell into one of two camps: lots of formal paperwork, or a handshake. Looking back on that deeply stressful time, all the ones who wanted things spelled out in detail ended up to be a complete waste of oxygen. All the people worth dealing with did it all on a handshake.