Skip to content

Workflow model explanation

Adrian McPhee edited this page May 24, 2024 · 1 revision

Product Documentation: Initiative, Challenge, Bounty, and BountyClaim Models

Overview

This page outlines the status values and relationships between the Initiative, Challenge, Bounty, and BountyClaim models within OpenUnited. These models are designed to help product teams and contributors to have a shared and simple set of concepts to get things done with the benefits of product management and a talent marketplace in one platform.

  1. Challenge: Challenges are designed to facilitate collaboration among contributors with different skills, however a Challenge may also contain a Bounty with one skill for a single contributor. Each Challenge can have multiple Bounties that further detail the work needed. An example would be the Challenge "Create new dashboard," which includes specific Bounties like "Create design for new dashboard" and "Implement new dashboard." Challenge A can depend on Challenge B and can optionally be further grouped into an Initiative.

  2. Bounty: A Bounty represents a specific opportunity for contributors to claim and work on within a Challenge. It is designed to attract talent by highlighting the appealing aspects of the work. Bounties belong to a particular Skill and can be associated with multiple areas of Expertise. Contributors pull work towards themselves by claiming Bounties, which can then be completed and reviewed. For instance, the Bounty "Create design for new dashboard" would require expertise in UX Design using tools like Figma.

  3. BountyClaim: A BountyClaim tracks the involvement and progress of a contributor in claiming and completing a Bounty. It ensures accountability and clear responsibility by allowing only one active Granted BountyClaim per Bounty at a time. The process involves requesting to claim the Bounty, working on it once granted, and submitting the completed work for review. This model helps manage the workflow and maintain quality control, ensuring that each task is properly handled and completed.

  4. Initiative: An Initiative is an optional concept that represents a high-level goal or project within OpenUnited. It serves as an umbrella for organizing multiple Challenges related to a specific Product. Initiatives help structure larger pieces of work and provide a clear roadmap for achieving significant objectives. For example, an Initiative like "Implement new brand" might encompass various Challenges such as "Create new dashboard" and "Product videos." We plan to introduce the role of "Initiative Lead" to provide opportunities for people to gain leadership experience.

Status Values

  1. Challenge

    • Status Values:
      • Draft: The challenge is in the initial stage and not yet active.
      • Blocked: The challenge is dependent on another Challenge.
      • Active: The challenge is currently in progress.
      • Completed: The challenge has been successfully completed.
      • Cancelled: The challenge has been cancelled and will not be completed.
    • Relationships:
      • A challenge can be optionally linked to an Initiative.
      • A challenge can contain multiple Bounties.
      • Multiple contributors with different skills can collaborate on a single challenge.
      • Example: "Create new dashboard" with Bounties like "Create design for new dashboard" (UX Design, Figma) and "Implement new dashboard" (Fullstack Development, Tailwind CSS, Python, Django).
  2. Bounty

    • Status Values:
      • Available: The bounty is available to be claimed.
      • Claimed: The bounty has been claimed by a contributor.
      • In Review: The completed work for the bounty is under review.
      • Completed: The bounty has been successfully completed.
      • Cancelled: The bounty has been cancelled and will not be completed.
    • Relationships:
      • A bounty is linked to a Challenge.
      • A bounty can have multiple BountyClaims.
      • Each bounty belongs to one Skill (e.g., "Fullstack Development") and potentially multiple Expertise related to the selected Skill (e.g., "Python", "Django").
      • Bounties are not just tasks but attractive opportunities for contributors to pull work towards themselves by claiming them.
      • Example: "Create design for new dashboard" with the skill/expertise of UX Design (Figma) and "Implement new dashboard" with the skill/expertise of Fullstack Development (Tailwind CSS, Python, Django).
  3. BountyClaim

    • Status Values:
      • Requested: The bounty claim has been made by a contributor.
      • Cancelled: The contributor has cancelled their request to claim the bounty.
      • Rejected: The product team rejected the contributor's request to claim the bounty.
      • Granted: The claim is active and the contributor is actively working on the bounty.
      • Contributed: The contributor has completed work and submitted it for review.
      • Completed: The claim has been successfully completed and accepted.
      • Failed: The work was submitted but rejected. The Bounty is then made available again to be claimed by someone else.
    • Relationships:
      • A bounty claim is linked to a Bounty.
      • A bounty claim is linked to a Person.
      • A Person may only have one BountyClaim per Bounty. One Person may have many BountyClaims across different Bounty objects.
      • Although one Bounty may have many BountyClaims (e.g., many requests for claims, failed or cancelled claims), only one BountyClaim per Bounty may be in a Granted status at any moment in time.
  4. Initiative

    • Status Values:
      • Draft: The initiative is in the initial stage and not yet active.
      • Active: The initiative is currently in progress.
      • Completed: The initiative has been successfully completed.
      • Cancelled: The initiative has been cancelled and will not be completed.
    • Relationships:
      • An initiative is linked to a Product.
      • An initiative can contain multiple Challenges.
      • Example: "Implement new brand" with Challenges such as "Create new dashboard" and "Product videos".

Relationships Between Models

  • Challenge:

    • Contains multiple Bounties.
    • Allows for collaboration among contributors with different skills.
    • Can depend on another Challenge.
    • Can be optionally associated with one Initiative.
  • Bounty:

    • Must be associated with one Challenge.
    • Can have multiple BountyClaims.
    • Belongs to one Skill and potentially multiple Expertise related to that skill.
  • BountyClaim:

    • Must be associated with one Bounty.
    • Must be associated with one Person.
    • Only one active Granted BountyClaim per Bounty at any given time.
  • Initiative:

    • Contains multiple Challenges.
    • Linked to a specific Product.

Summary

The structured framework of Initiatives, Challenges, Bounties, and BountyClaims enables a comprehensive and organized approach to connecting products and talent in OpenUnited's marketplace model. The models are designed not only to manage project flows but also to attract contributors by emphasizing the opportunities available in claiming Bounties. This framework promotes collaboration among contributors with diverse skills, enhancing the efficiency and effectiveness of product development and management.