# [Concept Dependency] Concept Dependency Posts


*This is a Concept Dependency Post. It may not be worth reading on its own, out of context. See the backlinks at the bottom to see which posts use this concept.*

*See the backlinks at the bottom of the post. Every post starting with [Concept Dependency] is a concept dependency post, that describes a concept this post is using.*

---

**Problem:** Often when writing I come up with general concepts that make sense in isolation. Often I want to reuse these concepts without having to reexplain them.

A Concept Dependency Post is explaining a single concept, usually with no or minimal context. It is expected that the relevant context is provided by another post that links to the concept dependency post.

Concept Dependency Posts can be very short. Much shorter than a regular post. They might not be worth reading on their own. Therefore the notice at the top of every concept post is added.

# Advantages
## Explicit Dependencies
A piece of writing can make extensive use of references to declare requirements. 
- This way posts can be made more self-contained with less effort, making it easier for somebody to read any post, without having read all previous posts of the author.
- Making requirements explicit allows readers to refresh their memory whenever necessary.

This is somewhat similar to creating a module in Python. You write up an explanation of a particular concept and "import" it into other documents.

Going one step further we can make dependencies more explicit by adding "import statements" to the top of the file. This import list can be automatically simply by listing all the links that were used.

As LessWrong already generates a backlink list at the bottom of the file however I will refer to that instead.

## Scoping
There is a very common failure mode for me when writing a post. I try to write down my entire motivation for thinking about the topic described in the post. Usually, I don't even get to the part where I start the technical explanation.

Potentially a concept post allows you to scope your post to only be about describing a technical problem or solution. A separate post can then be made to motivate the work.

I hope that this method will help prevent perpetual drafts by making it possible to complete individual posts in a shorter amount of time. Ideally within a single day, or even better, a single writing session.

### Collaboration
When collaborating with multiple other people, I expect concept posts to provide most of the value of writing up your ideas. 

Your collaborators will likely have a decent picture of what you are doing and why. Otherwise, they would not work on the project. 

They mainly need to understand the technical progress that has been made, since they last worked on the project. 

If you are working 3 days a week with Bob, and 4 days with Alice, i.e. you are working with multiple people in bursts, then this seems especially useful.

If there are multiple subprojects. This is also useful when somebody switches to working on a different subproject that they have not worked on before.

# Disadvantages
- It's hard to estimate how long it takes to read something, as it's hard to see the entire requirement tree.
- It might be hard for a reader to know where to start reading. Even though posts are more self-contained, there is probably still the best ordering for going through the posts.