Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Define parameters in a task #7

Closed
farahbrunache opened this issue Jun 10, 2018 · 6 comments
Closed

Define parameters in a task #7

farahbrunache opened this issue Jun 10, 2018 · 6 comments
Assignees

Comments

@farahbrunache
Copy link
Owner

@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)"
        },
@iainbarclay
Copy link

A few thoughts...

  1. 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"

  1. 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).

  2. Skill should be Skills and Domain should be Domains as both can be multiple

  3. 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.

  4. 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.

@farahbrunache
Copy link
Owner Author

farahbrunache commented Jun 12, 2018

  1. Spot on. I will make some changes and post an update
  2. 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.
  3. Understood
  4. In the webapp when someone clicks to learn more the phrase used is "definition of done" which is equal to deliverable
  5. 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!

@farahbrunache
Copy link
Owner Author

farahbrunache commented Jun 13, 2018

@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"
      }
    }
  ]
}

@farahbrunache farahbrunache changed the title Let's refine the project and choose what fields Define parameters in a task Jun 13, 2018
@farahbrunache
Copy link
Owner Author

Just realized that "due date" used within a task may cause some issues for us...

@iainbarclay
Copy link

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"
},

@farahbrunache
Copy link
Owner Author

farahbrunache commented Jun 15, 2018

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants