/ _roadmap.qmd
_roadmap.qmd
1 # Task management 2 3 Bachelorizer follows kanban principles for task management, 4 using roadmap (described below) as a form of kanban board. 5 6 Kanban is a japanese management method 7 of visually placing signs (kam) on a board (ban), 8 intended to to aid in breaking down a project into smaller tasks 9 to support team-based self-organization 10 [@Anderson2016, pp. xi-1]. 11 12 Two core principles of kanban 13 is to visually present an overview of tasks 14 as a way of identifying them, 15 and 16 associating tasks with a progress state 17 as a way of managing flow of progress. 18 Commonly a two-dimensional kanban board provides overview, 19 with individual tasks listed vertically 20 and divisions of task states horisontally 21 [@Anderson2016, p. 18]. 22 One of the aims of these principles is 23 to establish a sense of sustainability 24 in the pace of working on the tasks involved in a project 25 [@Anderson2016, pp. 7-8]. 26 27 With Bachelorizer, 28 the tool roadmap is used for visualizing the tasks. 29 Reason for this choice is an interest in creating an atmosphere 30 supportive of creative thinking and reflective learning 31 rather than efficiency, 32 for which the assembly line metaphor of conventional kanban boards 33 is considered counterproductive. 34 35 Roadmap is a command-line tool 36 to generate a somewhat organic looking graph-based tree of tasks 37 from a plaintext source task list. 38 Roadmap takes as argument a filename for a YAML-structured list of tasks, 39 validates that all tasks are related as a directed acyclic graph (DAG) 40 with only a single end node (a tree structure), 41 and renders to stdout an SVG format visual diagram of the tasks. 42 The diagram maps out the tasks and their relationships, 43 with prioritized actionable tasks as green circles, 44 other actionable tasks as white circles, 45 later tasks as red pentagons, 46 blocked tasks as orange rectangles 47 and finished tasks as grey hexagons. 48 Each task is defined with a keyword and a label in the YAML file, 49 optionally adding an explicit state 50 of either *finished*, *ready*, *next* (meaning prioritized) or *blocked*, 51 and listing directly dependending task. 52 Task state is resolved from dependencies if not stated explicitly; 53 only one task, the final goal, can and must have no dependencies. 54 After each YAML file edit the visual diagram can be (re)generated, 55 which also checks 56 that the edited YAML contents is structurally and semantically valid. 57 [@Wirzenius2025]. 58 59 For comparison with conventional kanban boards, 60 roadmap visualizes not as a 2-dimensional matrix 61 with progress as rigid lines across the x-axis 62 and sustainability indicated by downwards depth, 63 but instead visualizes as a somewhat organic looking tree structure, 64 with progress as neat (non-warning-colored) branches 65 and sustainability indicated by color saturation. 66 67 The requirements for the first portfolio delivery for Bachelorizer 68 are summarized as the following tasks: 69 70 1. Make a Kanban board for this assignment. 71 2. Make a class diagram for the Bachelor programme and its components. 72 3. Implement classes to represent the Bachelor programme and its components. 73 4. Implement a method to check whether a programme is valid. 74 5. Specify and run unit tests for the valid method. 75 76 These larger tasks have been expanded and reorganized 77 into more smaller and narrower focused ones, 78 visualized in in the roadmap at @fig-kanban 79 as well as the early snapshot of the roadmap in @sec-kanban-early. 80 81 {#fig-kanban}