The Most Minimal Kanban
(fd93.me)
from fd93@programming.dev to programming@programming.dev on 30 Aug 23:39
https://programming.dev/post/36607444
from fd93@programming.dev to programming@programming.dev on 30 Aug 23:39
https://programming.dev/post/36607444
Software design is weird. I wrote this article about implementing a minimal kanban board and the trade-offs I needed to make.
#programming
threaded - newest
I’ve often wondered if it would be possible to track work in a git repository like this. Cloning code is so easy with git because it’s an industry standard but every git front end wants to reinvent task management. Some of them allow you to manage a project wiki in git. It would be convenient to be able to clone the task management repository alongside the code repository, too.
Yep - I do it in the scripted version.
The main challenge is dealing with dynamic data in a way that won’t mess up merge conflicts. Sort order is the main one and it’s pretty bad because a merge conflict will result in multiple tickets with the same sort order. The best way I could think of in the slightly less strict paradigm of the plainban project was to keep a
data.yml
file for each column which records the sort order of tickets by storing them as a list of uuids and making their name a comment. That way it’s very easy to keep track of the order of tickets on merge conflict in a way that’s not possible in a central data source like a csv file.Will change current, less merge-friendly implementation to this when I get to it.
FYI it’s entirely possible to track multiple branches with unrelated histories in git. Both the task management and code can live in the same repository.
You could theoretically even give each task an ID, then tag commits in the code that complete those tasks with those task IDs.
This gives me some ideas for how it could be done that might be fun to explore. It comes with the benefit of not being platform-specific (GitHub/GitLab/etc). Merge conflicts might be annoying, but maybe there’s a way to take advantage of Git’s tree to represent relationships between tasks, and have one “HEAD” commit (or branch or other ref) per task? Not sure how this will work honestly.