Contracting people for work
How we contract people for various kinds of work . Best practices and tips to get the best experience.
Types of contracting
Companies that we can outsource to
Freelancers on UpWork or similar freelancer/contractor sites where the contracts are managed on the website
Contracting directly with the individual
Task/sector specifics
Data collection
We've used interns on the Evictions project.
We've used local temps to type up specific paragraphs from PDFs in text files when the PDFs when those paragraphs could not be extracted automatically. The quality was very frustrating. The amount of errors meant a lot of manual corrections were needed afterwards.
Software development
We often outsource clearly-specified tasks on UpWork.
We have found good local developers on ZATech Slack - when we could build trusting relationships with them over time, we could give them more freedom on how solutions are put together and let them deploy changes and debug things on the production server.
How to write a contract and get it signed by all parties
We have a contract template, which is based on a spreadsheet in Google sheets to log deliverables, and a contract with the URL to that spreadsheet as the agreed rates and deliverables.
The deliverables spreadsheet includes due dates, and deliverable-based pricing or time-based rate along with a cap or timebox on the maximum number of hours that may be recorded on that task before discussing potentally expanding the timebox for that task. The change logging provided by Google Drive provides an audit log so that it is clear who updated each field. Notes on column headings specify whether OpenUp or the contractor should update each field.
Create a folder for the contractor in the Contracts folder
Create the deliverables spreadsheet from the Google Sheets template
Contracting task list - NAME - started DATE
in the contractor's folder.Update the NAME and DATE in the spreadsheet name to match the contractor name and planned start date.
Create the contract from the Google Docs template
Deliverable- OR Time-based contract - NAME - started DATEU
Update the NAME and DATE in the doc name to match the contractor name and planned start date.
Update all the fields between {{ and }}
Ensure that the duration, task outline, scope of work and project are correct for the intended contractor and project.
Ask the Director to sign the contract
Give the contractor access to the document or send it to them via another menas if they prefer.
Ask the Contractor to sign it if they are happy with it.
It is sufficient for the Director and Contractor to insert images of their signature on in the contract Google Document, as long as the document change tracking reflects that they were the ones to insert their own signatures. It is not ok for anyone else to insert their signatures into the document.
Now you can have regular meetings with the contractor, agree task scope, whether it's deliverable- or time-based, deadlines, timeboxes, etc, and mark the agreed tasks as agreed in the deliverables spreadsheet.
Remember to keep it updated as deliverables are completed, invoiced, and paid, to make it easy to ensure we are up to date with payments and tasks are not left hanging.
How to specify a task
When specifying a task, we want to be able to hold someone to a contract. We need to specify as loosely as possible to give them freedom for how to implement, but we need to be as precise as necessary to be able to reject work that doesn't meet our need without grey area as to whether it met the specification (and just wasn't suitable anyway).
A pattern that's worked for us many times:
State at a high level what we would like to achieve - they might see another easy way to achive the same thing, and it provides context to the job
State a deadline clearly upfront, including time and time zone. It should be clear that this is not for the first delivery, this is when they have provided some work in progress in time for us to review it, give feedback, and for them to correct it, so that the work is done and dusted by this date
Use a bonus to encourage early delivery - surprises will come up, so the sooner something is delivered, the better.
Use milestones to break up concrete deliverables and ensure we get something done. See minimising work in progress in Agile.
Give some context to the task - what project is it part of, how does it fit into the scheme of things. It's amazing how people can misunderstand what we think is clear, if they don't have context.
Specify the requirements the deliverable needs to meet very precisely. This is important so that we can send work back and don't have to accept sloppy work and finish it up ourselves. But avoid specifying how to do things if possible - give them the freedom to decide how, and make sure we just have a checklist that we can verify the result against.
It can help to give a hint to how we would do something, but make sure it's clear it's just a suggestion if that is so
Annotated example
How to cost a contractor task
We use task-based contracting until we have trust and a good sense of how someone works from lots of experience with them. Costing a task depends on many factors.
The quickest way to get comfortable, is to try a small task and get a feel for it.
Some additional tips:
Remember that our time in evaluating, reviewing and integrating a deliverable will add to the cost
Look at our past jobs for anything similar to get a feel for what we paid
Consider what the work is worth to us
What would it cost per hour of a suitably qualified person via consultancies/agencies?
What would it cost to do it internally? What opportunities do we then miss out on?
What is the cost of not doing it?
Consider when it needs to be completed
if it's very urgent, bumping up the job value and especially early-delivery bonus can help, but add cost
If you have time, put it out at a lower value and see if it works for someone - just be careful that lots of review and change requests from us might eat into savings on unsuitably-qualified people
Look at similar jobs by searching for current and past jobs on Upwork
Last updated