sequential.dev

Meta Work - Information Management

August 09, 2021

“For someone who wants to be productive, I have spent quite a bit of time working on making my work ‘work better’.”

Disclaimer:

This post talks a lot about the problems inherent in information and dependency management. I am aware of tools that address these problems at the scale of organizations, projects and teams, but none of which seem to cater well enough to the individual (i.e. personal information management systems, which is what I am interested in).

Meta Work

I spend a lot of time at a keyboard, and then some. Sometimes writing code, sometimes reading and sometimes just playing video games.

It’s both a symptom of my lifestyle, and the disorder that gives rise to the symptom.

The more I find myself at a keyboard, the more I look for tools to better manage the time I spend typing or doing ‘productive things’, and for the most part, I get stuff done, assisted by all the tools I’ve found.

For example:

  • I use Dynalist to bullet-journal, making fast, and often deeply nested lists of ‘things’
  • I use Obsidian to organize thoughts (admittedly it’s turned into a glorified markdown editor)
  • I use vscode for non-commital source code exploration and formatting JSON / CSV.
  • I use IntelliJ to edit source code in focused sessions where I have an objective (working on a feature for a larger project)
  • I use a unix shell + vim to make notes that don’t warrant opening an entire electron application.
  • I use Google Docs when I am researching a project or putting together thoughts that are not strictly technical. (Like this post)
  • I use Discord to keep in touch with communities and have conversations with friends.
  • I use Slack to keep in touch with professional communities and have focused discussions.

Most recently, I’ve been using Dynalist to take stock of all the ‘work management’ tools I use, and in particular - the aspects of them I dislike (as well as the parts I like).

For someone who wants to be productive, I have spent quite a bit of time working on making my work ‘work better’.

This ‘meta work’ of analysing my work management tools, gave rise to an interesting problem that I had been subconciously solving by using different tools for different purposes.

It occured to me that I don’t necessarily want a list editor, a markdown editor, a freeflow text editor and a shell. Instead - I have been trying to introduce levels of abstraction into my workflow to emulate dependency relationships between all this different information (links, files, pull requests, design documents, emails, phone calls, meeting records, code etc etc).

This may not make intuitive sense, but it follows - especially with how I approach a problem as it pertains to technical or business problem solving.

As an example:

I may have some code in a source file that I edit with IntelliJ, and I want to have a causal relationship between it and it’s documentation. In this case, I write a notes.md file using Vim, and store it in the source code repository. However, the feature that gave rise to this source code, has been designed and shared via a Google Doc, and discussed via Slack. So I create a Dynalist entry to manage the relationship between the Slack conversation, the Google Doc, and the code. (As well as my non-pertinent work notes that probably are in Obsidian). I could in theory put all this information into the notes.md file and maintain a flat structure, but it doesn’t fit my mental model of how this information is structured in practice.

Managing Dependencies

Using lots of tools solves the problem relatively well, but as projects become more abstract and longer running - the number of notes, files and links (among other things) you have to maintain starts to reach fever pitch (ignoring the relationship information between them) and you are at risk of falling prey to having a sub-par information management system (not a good thing if you’re looking to build on your knowledge and resources over time).

This post doesn’t really have a conclusion, it’s just a meaningful segue into what I am working on right now (in the medium-long term).

I want to solve this information management problem for myself, hence the title of this post. I see it as a problem of far reaching contexts and tooling-hell, all in an effort to manage the complexity of the relationships that information naturally has amongst itself.

The jist of the issue seems to be the following: (in my anecdotal setting)

  • information is complex and has too many different types
  • relationships are even more complex, and often encode non-trivial conditions
  • lots of tools let us solve our information management problem by putting it ‘out of sight’
  • well-managed information leads to healthier long-term productivity

Stealth Mode

I am working on a stealth project that addresses some of these problems, that hopefully will be demo-able by the end of 2021 (once I’ve self validated that it solves this problem at some level for myself). I will probably post more articles like this, to discuss some of the context behind this problem in greater detail.

Why I wrote this

I am looking to speak to anyone (you don’t have to be a software engineer) who has similar issues with tooling, and is frustrated with having 10 different applications / tabs open just to manage information.

If you’re interesting in talking about dependencies between information or how you manage your work, please reach out to me on Twitter, I’d love to hear your thoughts.


A collection of thoughts from Shivan Moodley regarding software engineering, startups and products. Find more thoughts on Twitter.

© 2021