diff options
author | Jonas Smedegaard <dr@jones.dk> | 2025-03-01 11:16:55 +0100 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2025-03-01 11:16:55 +0100 |
commit | d09e6cebade81d5c10226115b51e2e11ac4d8747 (patch) | |
tree | c67452b70085c604c609a4f9e1d9296eea15ca5f /_roadmap.qmd | |
parent | 0b44c91743ae0de41a333398a3fd3ab151b574c1 (diff) |
add roadmap; use citations
Diffstat (limited to '_roadmap.qmd')
-rw-r--r-- | _roadmap.qmd | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/_roadmap.qmd b/_roadmap.qmd new file mode 100644 index 0000000..acb9bb8 --- /dev/null +++ b/_roadmap.qmd @@ -0,0 +1,76 @@ +# Task management + +This project follows kanban principles for task management, +using roadmap (described below) as a form of kanban board. + +Kanban is a japanese management method +of visually placing signs (kam) on a board (ban), +intended to to aid in breaking down a project into smaller tasks +to support team-based self-organization +[@Anderson2016, pp. xi-1]. + +Two core principles of kanban +is to maintain a visual overview of relevant tasks +and a sense of sustainability of the work on those tasks. +Commonly a two-dimensional kanban board provides overview, +with individual tasks listed vertically, +and divisions of task states horisontally, +and the even or uneven spread of tasks among divisions +is used to indicate if workload is sustainable +[@Anderson2016, pp. 7-8, 18]. + +In this project, +the tool roadmap is used for visualizing the tasks. +Reason for this choice is an interest in creating an atmosphere +supportive of creative thinking and reflective learning +rather than efficiency, +where the assembly line metaphor of conventional kanban boards +is considered counterproductive. + +Roadmap is a command-line tool +to generate a somewhat organic looking graph-based tree of tasks +from a plaintext source task list. +Roadmap takes as argument a filename for a YAML-structured list of tasks, +validates that all tasks are related as a directed acyclic graph (DAG) +with only a single end node (a tree structure), +and renders to stdout an SVG format visual diagram of the tasks. +The diagram maps out the tasks and their relationships, +with prioritized actionable tasks as green circles, +other actionable tasks as white circles, +later tasks as red pentagons, +blocked tasks as orange rectangles +and finished tasks as grey hexagons. +Each task is defined with a keyword and a label in the YAML file, +optionally adding an explicit state +of either *finished*, *ready*, *next* (meaning prioritized) or *blocked*, +and listing directly dependending task. +Task state is resolved from dependencies if not stated explicitly; +only one task, the final goal, can and must have no dependencies. +After each YAML file edit the visual diagram can be (re)generated, +which also checks +that the edited YAML contents is structurally and semantically valid. +[@Wirzenius2025]. + +For comparison with conventional kanban boards, +roadmap visualizes not as a 2-dimensional matrix +with progress as rigid lines across the x-axis +and sustainability indicated by downwards depth, +but instead visualizes as a somewhat organic looking tree structure, +with progress as neat (non-warning-colored) branches +and sustainability indicated by color saturation. + +The requirements for this project are summarized +as the following tasks: + + 1. Make a Kanban board for this assignment. + 2. Make a class diagram for the Bachelor programme and its components. + 3. Implement classes to represent the Bachelor programme and its components. + 4. Implement a method to check whether a programme is valid. + 5. Specify and run unit tests for the valid method. + +These larger tasks have been expanded and reorganized +into more smaller and narrower focused ones, +visualized in in the roadmap at @fig-kanban +as well as the early snapshot of the roadmap in @sec-kanban-early. + +{#fig-kanban} |