Task properties
Reified as a data structure, a task must consist of, at minimum, four properties:
- identifier, a unique string identifying the task
- state, the task state, by default Unplanned
- title, a few word overview to aid readers
- definition of done, the definition of what must be done to complete the task
Tasks may additionally possess the following properties:
- dependencies, a set of identifiers of the tasks on which this task depends
- supersedes, a set of identifiers of tasks which this task supersedes
- customer, a team
- performer, a team
- deadline, a date by which the performer has agreed to complete the task
- estimated, the duration of work estimated by the performer
- started, a date when work was begun by the performer
- actual, the duration of work actually required by the performer
- completed, a date when work was completed by the performer
- confirmed, a date when work was confirmed complete by the customer
- tags, a set of arbitrary strings which can be used for topical organization
- comments, a map of comment objects, where each key is an identifier and each value is a comment object containing the fields:
- author, a team
- date, a timestamp
- body, a Markdown document
Durations are specified in terms of whole-number hours, days, weeks, or months. Mixed precisions are not allowed on purpose - we don't want to imply more precision than accuracy.
Tasks in the state Planned (or later) must possess at least the properties:
- dependencies
- customer
- performer
- deadline
- estimated
Tasks in the state In Progress (or later) must additionally possess:
- started
Tasks in the state In Review (or later) must additionally possess:
- actual
- completed
Tasks in the state Done must additionally possess:
- confirmed
Next, see Accountability.