As a full time software engineer, a big portion of my job is to find and fix bugs that exist in legacy products. This often means exploring unfamiliar code paths and tracing the flow of information through a system.
A characteristic of quality software is small functions that are highly focused. A good function does one thing, and it does it well. Algorithms and procedures are built by combining these small functions into one large entity.
The very traits that make software good also make it highly connected. Following data through a particular flow means you may have to step through a number of smaller pieces along the way. This ends up stressing working memory.
If there is one glaring weakness of our brains though, it is that of working memory. While it's really hard to measure working capacity, studies suggest the typical brain is capable of reliably holding around 7 pieces of information.
When investigating bugs, I often find myself looking back at the same pieces of code over and over. The code may not be particularly complicated or hard to understand. I just don't have enough working memory to keep track of it. I fill my 7 pieces of information and have to get rid of something else.
This process of stopping and starting, relearning the same function is painfully slow. And it felt unnecessary. It felt like a solvable problem. So I set out to solve that problem. Enter Graft.
Graft is a personal knowledge network that aims to highlight the connections between information. Graft allows you to write notes then arbitrarily link them. You can add detailed information about the link between notes, providing additional context. In essence, Graft acts like an extension of your working memory.
Graft also takes advantage of centuries of mathematical learnings. Notes and links form a graph that can be analyzed numerically. Graft measures the connections and flow of information between notes and generates an impact score. A higher impact score means a note is more central than others.
To better showcase the tool, I put together an example project explaining the relationships between different components in Graft. Feel free to take it for a spin.
https://www.graftapp.co/p/42c0712bc9
Graft is very much a MVP. As a dad of a 2 year old and a 2 month old, I don't have a ton of time to invest into side projects. Any updates need to be hyperfocused. I'd love to collect some feedback from the community about Graft and its future.
Thanks for reading!
-Keith