Ask HN: Contracts for doing software consulting?
Does anyone here have any experience or know of any good resources for making software development/consulting contracts, when doing software consulting?
I might potentially be hired to do some contracting (both development and administration) on a software system. Knowing my client very well, I am a bit worried that I might end up without any clear goals for when my job is finished.
Should the contract specify specific features that need to be implemented? I dont think there will be any design documents written other than "back of napkin" style task descriptions. How about bug fixing? Would there be a specific amount of time after feature completion that the client would have to report any bugs that I would then fix?
I am new to freelance contracting, so if anyone has any experience doing something like this, I would love to get some input.
14 comments
[ 1.9 ms ] story [ 47.7 ms ] threadHere's a nice start: http://programmers.blogoverflow.com/2012/08/fix-price-vs-tim...
https://gist.github.com/malarkey/4031110
https://www.hellobonsai.com/
Along with this it should also cover your rates, payment schedule, terms, and what things cost if they fall out of scope.
Finally I find it useful to add a "prerequisites", and "disclaimers" section that say that work can't begin until you have things like write access to their git repo or access to their aws account ( or whatever ) and that the current SOW doesn't cover getting it into the App Store or bugs that come after the acceptance criteria are met.
Put places on this document for your company or self, and the other party and make sure you properly distribute and record the signed docs.
IANAL but have one, and the more you get into consulting and bigger contracts it's good to run things by a lawyer if it's something that's high value, with a lot of effort, or even remotely puts you at risk.
Be even more careful signing documents clients give you;)
Have fun
The issue is that, for bigger projects, you start running into the problems related to a "waterfall" approach. As an alternative, you could look into how "agile" organizations approach their contracts -- basically by selling the ability to work on "stories" for as long as the customer wants them to -- and the deliverables for each story are very fine-grained.
Either way, without active involvement of the customer to either elicit requirements up front or validate your stories as you go, you'll be in for a rough time. It's probably better to have an honest discussion with them about this, because it's in their best interest after all.
If the requirements are vague then don't agree to a fixed price and charge by the day or hour instead. Ask for a small task that needs to be done, provide an estimate, perform the work while keeping the client up to date if the estimate is still accurate so they can decide what to do next and go from there for each task. Hopefully trust will build up both ways as you work through tasks.
You could both burn a lot of time writing up contracts for every small task instead of just getting on with it.