Define parameters in a task
Closed this issue · 6 comments
@iainbarclay and @bubblenote. Let's refine the project and choose what fields.
{
"task": "Software Engineer",
"id": "a2c65f85-f01c-4b23-8e0e-34106d1afb0b",
"brief": "code web apps",
"deliverable": "lorem ipsum",
"due-date": "Sat Jun 09 2018 20:26:09 GMT-0400 (EDT)",
"payouts": "",
"domain": "enviroment",
"skill": "bifurcated",
"rate": "3",
"roles": {
"task-creator": "139SG7kWj8tDiZF5azZ6WGmZpN6PGnUXbK",
"evaluator": "1LdwMsHme355qKHsxrEoXNGXX8CQzL7opT",
"worker": "Sam Morgan"
},
"status": "active",
"finalized": "Sat Jun 09 2018 20:26:09 GMT-0400 (EDT)",
"pot-donation-contributed": "null",
"full-time-job": "true",
"short-term-job": "false",
"mininum-reputation": "36",
"one-time-payout": "$264.66",
"full-time-salary": "150",
"date-posted": "Sat Jun 09 2018 20:26:09 GMT-0400 (EDT)"
},
A few thoughts...
- For "full-time-salary" - I think we need an additional field that states salary payout period, something like...
"full-time-salary" : "$150"
"salary-period" : "weekly" / "4weekly" / "monthly"
Its also not clear if the salary expressed above is the annual salary for the role, or the "per period" salary - so maybe we need to rename that field to make it clear. And if this is used to manage payment, probably need something like "last-salary-paid-date" or "next-salary-due-date"
-
Evaluators - are you planning to have UI to set an evaluator for the task when the task is created? I may have missed it, but can the evaluator and the manager (task creator) be the same person (I don't think it can).
-
Skill should be Skills and Domain should be Domains as both can be multiple
-
What about "acceptance criteria" - or is that covered by deliverable already - ie. if brief is "pick up all the trash by the school hall", deliverable is "a trash free area", criteria is "a photo of the trash free area, and a photo of the trash in the dump" - or is it simply that deliverable is "a trash free area, proved by photo of the trash free area and a photo of the trash in the dump" - not sure if its easier and clearer to split out or not.
-
For a "sponsored" task funded by some external donor - would we want to keep the tag/id of the sponsor, so we can collate all tasks by donor for reporting, etc. - I'm imagining that donor and task manager might be different - donor might be funding several tasks across domains, and task manager might just create tasks in a limited set of domains.
- Spot on. I will make some changes and post an update
- I saw in Gitter someone asked the same question. Looks like there is no built in mechanism to stop that. So I will try to incorporate it. If I don't get it in by the end of the hack. I'll add it after.
- Understood
- In the webapp when someone clicks to learn more the phrase used is "definition of done" which is equal to deliverable
- Great idea! Please include this in our write up/FAQ document. In the roadmap I will add metric reporting on external donors so people can see it and so can donors!
@iainbarclay, please see the update.
I think this is sufficient for an MVP.
I left domain as singular to begin with, because I want to make sure people curate some expertise rather than just tagging a lot of stuff to a job post. In the future the colony can vote on changing this.
There can be multiple sponsors for a task - but they must sponsor upfront a total amount to account for the life of that task. If they want to contribute more, they should submit a new proposal. The goal is to make sure people only commit a donation if they have the money. Ensuring workers are always paid.
{
"jobs": [
{
"id": "1",
"task": "Weekly Garabage Pick Up and Removal",
"brief": "Solarbreeze",
"deliverable": "lorem ipsum",
"due-date": "Sat Jun 09 2018 20:26:09 GMT-0400 (EDT)",
"payouts": {
"manager": "1",
"evaluator": "2",
"worker": "3"
},
"domain": "enviroment",
"skills": {
"tag-1": "enviroment",
"tag-2": "labor"
},
"role": {
"0": "7849313",
"1": "0933831",
"2": "482439"
},
"salary": {
"full-time-rate": "1000",
"pay-frequency": {
"weekly": "false",
"bi-weekly": "false",
"monthly": "true"
},
"term-of-employment": {
"six-months": "false",
"one-year": "true"
}
},
"sponsor": {
"id": "5i88qehjkfhadshf9",
"proposal-id": "333",
"sponsor-amount": "500"
}
}
]
}
Just realized that "due date" used within a task may cause some issues for us...
Just realized that "due date" used within a task may cause some issues for us...
Because we have to track it and act upon it? I think we can leave it out for now, if the job is urgent the requirement should say so and if its not done in a timely manner then the rating will reflect that.
I'm a bit confused about this... (below) - isn't it clearer to leave text values for the tags 'manager', etc.? (and I guess in real life we have uuids (wallet addresses?) instead of people's names?
"role": {
"0": "Dexter Morgan",
"1": "Kim K",
"2": "Tim Horton"
},
I am about to get to the part with interacting with colonyJS, for example here: https://docs.colony.io/colonyjs/docs-task-lifecycle/#modify. If I understand correctly this references creating the task.
I got the role numbers from here: https://docs.colony.io/colonynetwork/docs-tasks/#roles. And this references when I am calling the "metadata" of the task. And so the JSON above is to reflect what key values / metadata we currently care to track. So if someone wants to edit a contract they must have a role "0" and their wallet address needs to match role 0's.
I've update the role to numbers.