# Configuration management

> Or, 'what's worth remembering?'

[A few weeks ago](/22.00.0159/) I was admiring Japanese train drivers' very 'deliberate' behaviour. And I talked about it in the new [task and project management](/jdu/taskpm) (T&PM) course, specifically in the context of [setting up a dashboard and 'logging' your work](/jdu/taskpm/290-work-log-and-dashboard) (link requires access to the course).

Effective immediately, I'm committing myself to a new set of behaviours. I don't think this will be easy, but I'm going to stick with it, and document it here. This will be one of my major themes for 2026.

In summary:

1. Every action I take on my business [MUST](https://datatracker.ietf.org/doc/html/rfc2119#section-1) start and end in my JDex.
2. Every thing that I create, reference, or update, MUST be contained in my JDex. This includes technical details e.g. all changes to this website and JDHQ.
3. This documentation needs to be good enough such that a competent stranger could understand what I've done.

To reinforce point 1: there are **no exceptions**. **Everything** that I touch or do **MUST** be documented in my JDex. This might not be practical or helpful; I'm not committing to do this for all of time. But let's find out.

## Case study: our recent 'BOGO' offer

I was late in dealing with Black Friday and for reasons that aren't relevant, setting up a 'buy one, gift one' offer ~~was~~ felt simpler than, say, a 20% discount.

Regardless of the offer, there's still a _ton_ of complexity in building something like this. In this case:

- Inject some sort of notice of the offer onto [a](/las/) [whole](/jdu) [bunch](/jdu/workshop) [of](/jdu/taskpm) [pages](/sbs/).
- Create a public database to receive people's invitation data.
  - Make it so a stranger can't randomly add a record to this database.
- Modify the template that sends you the 'create an account' email so that it includes a link to this database, pre-filled with your details.
- Track which account is a gift purchase, and which is a recipient, so that recipients don't also get a link to gift an account, creating a never-ending chain.
- Check the database every day and manually create these gift accounts.

And more. A whole bunch of work! The point here isn't these specific details. It's that many things in business are this complex.

### It's not like driving a train

Not to take away from the skill of driving a Japanese train, but there I think it's orders of magnitude easier to be more deliberate. Each station, each action, the same. Check the time. Check the doors. Pull away. Check your speed. Slow down. Apply the brakes. Repeat.

Very little of modern knowledge work is like this.[^knowledge]

[^knowledge]: Almost by definition? If it becomes rote it ceases to become knowledge work. Now its outsourceable.

## What's worth remembering?

All day long, people in PKM forums ask a variant of the question: _how do I remember everything that I read?_

I get why they ask. They've been told by Big PKM that you're a better person if you remember everything. And if you didn't have so much to remember, you wouldn't need to spend money on that 'second brain'. ;-)

But I disagree, in the most part. (If you're studying for a degree, you might ignore this section.)

I think you'll remember what you're naturally inclined to remember. When I read a book my primary goal isn't internalising every piece of information. That sounds exhausting. And, to what end?

> This is why I've always seen Johnny.Decimal more as [PRM vs. PKM](/22.00.0112/).

### Configuration

But some things _are_ worth remembering. All that stuff I did to my website: now I want to un-do it. The deal's over: let's revert to normal. It sure would be nice if I could just reverse my steps.

I did it in the first place. Surely I can just remember what I did in order to un-do it?[^git]

[^git]: I know, I should have been better at controlling my `git` commits and then I could have just reverted those changes. I didn't do that either.

Well, spoiler: I can't. It's just _too complex_.[^loc]

[^loc]: There are 13,573 lines of code in the Astro files that make JDHQ work. That doesn't include any of the _content_.

In the corporate IT world we call this sort of stuff 'configuration'. There's a whole field of 'configuration management': staff, processes, and software. And it's _really difficult_. I've never seen it done right.

Because humans, what are we good at? What do we enjoy? Work! Changing things. Making things better. We dive in and change stuff; we hack away and get it done.

What _isn't_ fun? Keeping records! Stopping, after the fact, and writing down what you did. Who wants to do that, vs. getting on with the next fun job? We're so bad at it. So it never happens.[^change]

[^change]: At work there's an accompanying field of _change management_ that theoretically helps. I see parallels there too, and might explore this in a future post.

## My 'BOGO' configuration

So what configuration should I have recorded in the context of this BOGO offer? I think it's sufficient to be complete, but concise. Especially so in the context of computer code: I don't need to describe exactly what my code _does_. To determine that, I can read the code.

But I need to describe which pieces I created, updated, and deleted. What _changed_, at a high level? Because that's what allows me to trivially un-wind the thing.

I think if I'd written 5 bullet points, each of less than 50 words, that would have done the job. Hardly onerous.

### This will slow me down

Another theme from the T&PM course was that, to do things _well_, I think it's necessary to do them _more slowly_.

Computers allow us to be fast. You should see me using this Mac: it can be a blur. I'm good at computers.

But does this help? We just saw how my haste actually got me into trouble. Doing things quickly can be a false economy. When I exhorted you to be [neither lazy nor stupid](/22.00.0126/#lazy-is-default) I noted that 'being lazy _now_ just means that I have to do it again _later_'. There's no net time saved.

### I'll YouTube this (in 2026)

I've long wanted to publish an ongoing series of 'how Johnny works'. This is it. I'll give it some thought and, when I start, show my working here and on YouTube.