GitHub Projects recap

Roadmaps and Task Grouping

At exactly this time last year, I wrote up my takeaways from what I was calling a personal "firebreak sprint", in which I wasn't actively designing new software:

In the context of Agile 'sprint' methodology, it's a break from the focus on deliverables (such as features) and instead a call to attack the problems that slow down development in the abstract.

In this case, since it was code written in my spare time, and required sustained periods of work, it was constrained to the weekends (hence a sprint duration was only 2 days).

The funky name was an existing metaphor of fire prevention, “like breakfast but for burnout”.

At the time, GitHub Projects was freshly 'GA' (General Availability, i.e. out of beta testing). A year on, they've relaunched it with roadmaps (i.e. Gantt chart views), thanks to support for date fields and the addition of an infinitely scrolling horizontal time axis.

My 2022 post series was a thought experiment and an excuse to ponder GitHub Projects, and it didn't stick (I stopped using GHP shortly after, and focused on ZenHub). Since then I've worked with Linear, and on paper using The Time Block Planner.

Task sequencing: the two schools

One of my hesitations with kanban (TODO lists, etc.) is that they are a call to consciously express the work environment in words, shutting off any non-verbal processing.

The unconscious brain is able to deal with a lot of info non-verbally, without expressing it in this way (undeniably less admin, and with no risk of ornamental busywork).

Consider a high-end restaurant chef juggling various complex dishes, made to order.

The chef's working memory is constantly tested, holding multiple tasks in mind. This is more than operations but also their relative timing.

The degree of potential cognitive burden increases with the complexity of the tasks, and machinery/automation relieves it.

Contrast this with the fast-food setting, which is a more intensely mechanised system, designed to minimise operator cognitive load, maximise repetition, and optimise speed and consistency.

The fast food joint's task sequencing is guided by environmental cues like beeps or lights, and the operator's main task is loading and unloading. More subtly, there's relatively little expectation that workers in the fast food kitchen will verify their product by tasting it: in software terms akin to having no 'runtime validation logic'.

The quality of the end product is, as far as possible, ensured by 'shifting right', responsibility is taken off the kitchen floor and onto the factory floor: as ingesting data models with known structure/types guarantees quality (or shifts responsibility) upstream.

The tight spatiotemporal locus of control of qualities in a high-end kitchen (like artisanal choices of flavours, ingredients, presentation) is notably predetermined in the fast food kitchen, and in fact even in the supplying factories, whose engineers receive preset configurations and parts lists that were designed in labs (likewise the supermarket ready meal). The locus of control for the qualia of an assembly line food product lies in a chemical engineer's design blueprint, a designer's CAD model, or a bureaucrat's spreadsheet.

First person human factors engineering

I gave GitHub Projects zero thought this year until one day mid-August in a brief log jam of multi-WIP overwhelm, I had the peculiar sensation of an inability to 'task sequence' (i.e. to look at the tasks and logically order them).

The sensation was quite bizarre: like I was suddenly unable to read, but specifically for reading between the lines of a work tickets to find the point to resume from.

In this case, I was acutely aware of my inability to read between the lines. At the same time, I knew that, logically there was a way to structure my tasks, and that any ambiguity was only due to insufficient structure.

I've been thinking about structured outputs (the use of Pydantic models to guide LLM generation, as in outlines from Normal Computing or Function Calls from OpenAI).

I consulted resident scholar GPT-4 for relevant research, which mentioned task switching, cognitive load, intuition, and some interesting connections bang out of the blue:

This post is part of Supporting and structuring personal development and open source contributions with GitHub Projects, a series covering how I began using the GitHub Projects tool for tracking my personal development and shipping outside of work. Read on for part 1, discussing how to define your personal development goals