# 20231223

I am not a burn-the-whole-system-down-and-start-over person.

I am an [evenly-survey-the-available-tools-and-build-a-new-space-within-the-system](/ideas/always-leave-a-door-open/recursively-open-doors.md), something-that-can-grow-into-a-rich-environment-of-its-own person.

(Note: The percentages below are incredibly figurative. Also none of this is correct. [It might be useful, though.](/ideas/viable-is-more-useful-than-correct.md))

1. At the time they're built, systems serve 90% of their population well. [10% are not met well.](/ideas/10-revolt.md) A "complete" system can be configured -- with extra effort -- to serve the remaining 10%. It won't be awesome, but it'll be enough. That's a complete system. Incomplete systems tend to not get off the ground.
2. The composition of that poorly-served 10% will shift and bubble over time, with a varying set of sub-populations. Over time, [one of those groups will catch momentum](/2013/tremble.md), and it'll start to push its way beyond that 10% line.
3. That it's-not-great-but-it-mostly-works population will eventually hit some critical threshold. The larger it gets (as a percentage of the whole), the more heat it'll generate as the system becomes less and less suited to the population. (Remember, it was built to serve the *original* 90% of the population well.) This is the time to start building something new, *rooted in the original system*, composed of its pieces, but using a composition that serves the new majority.
4. In time, the original system is left to history. The new one becomes [self-hosting](https://en.wikipedia.org/wiki/Self-hosting_\(compilers\)) -- as in, an understanding of the original system is no longer required to operate in the new one. The new system can be defined and understood in its own terms. Goto 1.

It's a really good idea to design any system with this cycle in mind. It's not planned obsolescence; it's basically composting. Create systems that will degrade into useful substrate for what comes next. (Or: [Always leave a door open](/ideas/always-leave-a-door-open.md). See also [Kuhn Cycle](/ideas/kuhn-cycle.md).)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.isaacbowen.com/2023/12/23.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
