Lifecycle model

This page describes a model for managing the lifecycle of each task undertaken within a given project. It is a relatively lightweight model derived from the Kanban method [1]. In this model, each task follows a structured but clear and flexible path. The goal is to help each team coordinate in order to advance their project in a clear and efficient manner.

This model is implemented across all our projects through GitLab tickets and labels [2]. The result is available here: https://gitlab.huma-num.fr/groups/datasphere/-/labels .

Tasks progress

These labels describe the progress status of a task. Each task can only have one of these labels at a time.

  • The label-TODO label indicates a high-priority task whose work is planned and for which one or more actions are currently underway.
    Once all actions related to the task have been completed, this label is replaced by label-DONE.
  • The label-DONE label indicates that the task is “completed”. However, it still requires validation to confirm its completion.
    Closing the ticket constitutes validation.
    If validation is not possible, the reviewer comments on the issue, replaces this label with label-TODO, and reassigns the task to the relevant project member.
  • The label-TBD label indicates a question or discussion intended to help define one or more concrete tasks.
    If the discussion leads to a consensus on the need for clearly identified actions, this label is replaced by label-TODO. Alternatively, the issue may be closed and new, properly defined tasks created; these tasks will be labeled label-TODO.
    If the discussion fails, or if the consensus is to take no action, this label is replaced by label-NOPE, and the task is closed.
  • The label-NOPE label indicates a discarded task.
    This may be because the related feature is not feasible or because the task description is unusable.
    In all cases, the corresponding ticket is closed or to be closed. Discussion about this task may be reopened later, but this is neither planned nor scheduled.

@startuml
<style>
activityDiagram {
  FontColor #fff
  arrow { FontColor #000 }
  diamond { FontColor #000 }
}
</style>
start

while (consensus?) is (non)
  -[#808080]->
  #808080:TBD;
  -[#808080]->
endwhile (oui)

if (faisable?) then (non)
  -[#8c480a]->
  #8c480a:Won't Do;
  -[#8c480a]->
else (oui)

repeat
repeat while (planifié?) is (non) not (oui)

-[#ed9121]->
repeat
  -[#ed9121]->
  repeat
    -[#ed9121]->
    #ed9121:To Do;
    -[#ed9121]->
  repeat while (réalisé?) is (non) not (oui)

  -[#009966]->
  #009966:To Validate;
  -[#009966]->
repeat while (validé?) is (non) not (oui)
-[#009966]->

endif
stop
@enduml

Tasks: lifecycle

Task types

These labels describe the type of a task. Each task may have none, one, or several of these labels.

  • The label-bug label is of bugs or errors. One task or more should be undertaken (and given the label-TODO label) to solve the problem as soon as possible.

  • The label-doc label is for documentation tasks.

  • The label-epic label is for tasks with a large scope. label-epic tasks are generally fragmented in and linked to subtasks, each with a precise, smaller scope. To close all subtasks means the label-epic tasks can be closed, too.

  • The label-ufg label means this task is appropriate for new contributors. These are good ways to warm up on a project, or to share the workload between free softwares [3].