# Discover and disseminate generalizable insights In order to make progress in a field, one has to discover and disseminate generalizable insights. [[Andy Matuschak]] summarized a process for this in [[Ratcheting progress in tools for thought]]: > An idealized cycle of activity might involve something like these key steps: > 1. **Identifying powerful insights** about some subject domain or about cognition in general which might be fruitfully systematized > 2. **Building systems** which express those insights in their primitives > 3. **Observing serious use** of those systems in authentic contexts, and of your theoretical insights refracted through them > 4. **Distilling generalizable insight** from those observations which produce new understanding about the subject domain or cognition, and which permit new, better systems to be built > 5. **Disseminating** that insight so that others can build on it My goal is to advance progress for computers as computational medium, so I need to consider this to be the core goal of my work and take seriously this suggested process. These steps should be a guide for the kind of work that I'm doing during my [[Dedicated work blocks]]. Let's interrogate each of these steps a bit: ## 1. Identify a powerful insight This step largely is about intuition developed through familiarity. Another way to think of this is hypothesis formation: I believe that X is generally true about systems that have Y characteristics in some situations. It's vague, based on gut, but the insight needs to be sharpened enough so that it can guide the next step of building a system that expresses the insight. ## 2. Build systems that express the insight I know how to build systems that are "expressions of technological or market insights, rather than of fundamental insights about a subject domain or about cognition." How does one build systems designed for the asking and answering of questions? Furthermore, I used the plural "systems" intentionally here. It is probable that in order to distill generalizable insights, more than one system will have to be built. ## 3. Observe serious use of the systems This implies that the system that is built is actually useful for solving a real problem. In other words, it has to serve an important function with a context of use. People have to _want_ to use it. Building a system that is not merely a research prototype, but is being used in a way that can lead to deriving generalizable insights is challenging and requires a tool-maker mindset. Beyond usefulness and desirability, "the system has to be shaped in a way which allows you to ask the questions you want to ask." It's not clear to me the characteristics of a system that allow for question-answering. Is it merely analytics instrumentation? ## 4. Distill generalizable insight This is the gold nugget. Out of the observation of serious use, some generalizable insight can be distilled. Framing this generalizable insight is a challenge unto itself. Andy offers a good example from learning science: > Educational design principles are usually heuristic statements of a format such as: “If you want to design intervention X (for the purpose/function Y in context Z), then you are best advised to give that intervention the characteristics A, B, and C (substantive emphasis), and to do that via procedures K, L, and M (procedural emphasis), because of arguments P, Q, and R.” What might be a good formula for characterizing a generalizable insight for tools for thought? ## 5. Disseminate the insight Finally, tell people about it. This seems to me to be the easiest step, but I'm reminded of the quote attributed to Howard Aiken, himself a pioneer of computing: **"Don't worry about people stealing your ideas. If your ideas are any good, you'll have to ram them down people's throats."** Nevertheless, it seems worthwhile to start with the previous four steps and worry about dissemination when there is something worth disseminating.