Conceptual structure

Basic concepts

This system is based around three basic concepts for work, time, and contributors:

  • A task is a defined unit of work.
  • A period is a defined unit of time.
  • A team is a defined subset of contributors.

These three concepts are all scale-invariant:

  • All units of work that we will track are tasks.
  • All units of time that we will track are periods.
  • All subsets of contributors that we will track are teams.

Specific instances of each concept all have some scale-like dimension:

  • Tasks range from high-level ("release Anoma specs") to low-level ("write a Juvix example of the Collatz conjecture").
  • Periods range from long (quarter/year) to short (hour/day).
  • Teams range from large ("research department") to small ("Christopher").

Specific instances of each concept may be composed of sub-instances:

  • A specific task may be composed of sub-tasks, which can also be understood as dependencies.
  • A specific period may be composed of sub-periods (e.g. day composed of eight hours).
  • A specific team may be composed of a partially ordered set of sub-teams. The first element in this set is the team lead.

Eventually, any decomposition must result in an atomic instance (where what counts as "atomic" is subject to agreement between the customer and performer):

  • An atomic task could be "write a Collatz conjecture example in Juvix".
  • An atomic period could be "1 day".
  • An atomic team could be "Christopher".

Additional definitions:

  • A date is a defined point in time. Adding a period to a date results in another date.
  • A cycle is a numbered instance of a specific period.

Next, see Customers, perfomers, and teams.