Digital Garden

Software Engineering Labbook

Left Page



A single sentence description of the problem or question we are seeking to



An area for free-form exploration of the problem space -- diagrams, notes,


The first page for any new feature occupies a full spread in the Labbook. The typical design for the left page is (1) the name of the feature on the first line, (2) a goal block which defines the feature in a single sentence, and (3) the remainder of the page is for discovery -- diagramming, doodles, and notes as we explore the problem space. The pages are always numbered.

Right Page


Action Items
10-20   |
1000    | x Discovery
        | - A note
1019    | x Implement Class::method()
/1115   | > Implement Class::method2()
10-21   |
1305    | x Implement Class::method2()
        | - Some note on the implementation
        | - Additional Notes
1332    | • Update unit tests


The right page of the initial spread contains the starting date in the upper right. It then contains a single block labelled "Action Items" which itself has two columns. This page is our activity log used to record each step that we take in the development process.

In the left column we denote each day of work in M-D format and underlined. Beneath that we record the time we started working on a task and as we progress, we update the time whenever we add a new bullet on the right. When we finish our work for the day, take a break or task-switch we mark it off with a /HM.

On the right we use normal [[Bullet Journal]] syntax to denote tasks, and notes that we are working on. When a task is bumped from one day to the next we denote it with a >. Notes can exand to full diagrams or multiple lines. Tasks are typically things like implement a method, add a class, implement some minor UX element, add or modify a column in the database, run some script, or explore a particular test case.

Subsequent spreads either repeat the right page or a Discovery on the left and Action Items on the right.

Linked References