Use an External Memory

Use an External Memory

Problem statement

You want to reduce the impact of “forgetfulness” and being “pulled out of your flow”.

Intent

Delegate the remembering of things to an external system, in order to free up your headspace for more important tasks.

Solution

  • Implement a Reliable External Memory System: Use a combination of technological and/or physical tools to keep track of your tasks, ideas, and notes. This can include apps, digital notebooks, or physical systems like paper planners or sticky notes.
  • Regular Review and Maintenance: Establish a routine for revisiting and updating your notes, ensuring that your external memory remains a reliable source of truth. This can be done through daily or weekly reviews.
  • Prioritize Searchability and Organization: Favor systems that allow for easy searching, tagging, and categorization. Text-based formats are recommended for their simplicity, version control, and portability across different platforms.
  • Ensure Accessibility: Make sure that your external memory system is accessible from multiple devices and platforms. This reduces the friction involved in capturing and retrieving information.
  • Avoid Over-complication: Keep the system simple and easy to use, avoiding the temptation to over-engineer your external memory with unnecessary features or integrations. Favour using plain text based formats and tools, as they are easier to version, maintain, and port to different systems.

Contextual forces

Enablers

The following factors support effective application of the practice:

  • Trust: You trust your external brain to remember things for you, and you trust yourself to remember to check it.
  • Routine: You can schedule time consistently, to revisit your notes and take action if needed.
  • Searchability: You have a system in place that allows you to quickly find what you need.
  • Availability: Your external brain is easily accessible, and does not require a lot of effort to use.
  • Simplicity: The system is simple enough to use that it doesn’t add cognitive load, but rather reduces it by offloading memory tasks.

Deterrents

The following factors prevent effective application of the practice:

  • Inconsistency: You lack trust in your external memory system, either because you forget to check it or because it has failed you in the past. This inconsistency can lead to missed deadlines or forgotten tasks.
  • Overwhelm: You have accumulated too many notes across various systems, leading to confusion and difficulty in finding relevant information when needed. This fragmentation can negate the benefits of using an external memory.
  • Inconvenience: Your external memory is not easily accessible, requiring too much effort to input or retrieve information. This inconvenience can lead to underuse and a failure to fully integrate the system into your workflow.
  • Over-automation: Relying too heavily on automated systems (e.g., task managers or reminders) without a manual review process can lead to complacency and the overlooking of critical tasks.

Rationale

Human memory is extremely lossy. We are better equipped for creative, constructive thinking than for storing factual information. Focus is easily disrupted. It makes practical and economic sense to try and find a way to free up your headspace and thinking power for the endeavours that actually matter.

  • Context switches hurt your productivity
  • Modern systems and activity are too large to fit in your brain completely
  • The more you have to keep in memory, the more likely you will forget something
  • Having a mental task list becomes exhausting after a while
  • We wish to be able to easily report progress when queried
  • Hand-overs take a lot of time and effort
  • Computers are great at remembering stuff

Application

Consequences

  • Perfectionism: Using an external memory can lead to perfectionism in tool selection and configuration, where more time is spent fine-tuning the system than actually using it. This can detract from overall productivity, as the focus shifts from content to tooling.
  • Over-reliance: There is a risk of becoming too dependent on the external memory, which might diminish your ability to think critically and solve problems on the spot. If you always rely on your notes for problem-solving, your capacity for improvisation and quick decision-making might suffer.
  • Anxiety from Loss of Access: If you lose access to your external memory—whether due to technical issues, loss of physical notes, or being away from your usual tools—you might experience anxiety or feel lost. This can be particularly troubling if your entire workflow depends on this system.
  • Data Overload: As you accumulate more notes and tasks, there is a risk of becoming overwhelmed by the sheer volume of information stored. Without proper organization and regular culling of outdated or irrelevant information, the system can become a burden rather than a relief.

Mitigation strategies

  • Set Boundaries for Tooling: Limit the time and effort spent on configuring and selecting tools. Choose a simple, reliable system early on, and resist the urge to constantly tweak or upgrade it. The focus should be on utility, not perfection.
  • Periodic Review and Pruning: Regularly review and tidy up your external memory. Remove outdated notes and tasks, and reorganize information as necessary to prevent data overload. This helps maintain the system’s usefulness and prevents it from becoming a source of stress.
  • Backup and Redundancy: Implement a backup system to prevent loss of information. This could be as simple as regularly exporting digital notes or keeping a physical backup of critical information. Consider combining digital and physical systems to mitigate the risk of total data loss.
  • Balance Memory with Critical Thinking: While it is important to trust your external memory, make a conscious effort to engage in problem-solving and critical thinking without immediately turning to your notes. This practice can help maintain and develop cognitive skills alongside external aids.
  • Establish a Routine: To avoid inconsistency, create a daily or weekly routine for checking and updating your external memory. This ensures that your notes remain relevant and actionable and that you develop a habit of relying on the system without becoming overly dependent.

Examples

There are many online (free and paid) systems that offer you a way to store your thoughts. Some of them are listed below in the references section.

You can use a simple text-based system to keep track of your thoughts, or To-Do items. I personally prefer using these text-based systems as they allow for easier cross-platform portability, and avoid being locked in to a single vendor solution. This entire knowledge base can be seen as one big “external brain”.

Stijn’s developer logs

Working on enterprise projects tends to be a continuous struggle against interruptions, pivots, and moving targets. In order to stay on track, it helps to keep track of your actions and thoughts. The best way I have found so far is to keep track of my actions on different projects by including short developer logs inside the code repositories. This allows me to come back to a project that has been on ice for a while with relatively low friction. In addition to this, I try and keep a day-to-day running count of what happened during any given day. This is done in a separate log, which I try to write at the end of the day.

tip: One of my favourite ways of note-taking while working on a software project is to add a dev_notes directory to my codebase. For short-lived projects or changes, I tend to add this file to the .gitignore configuration of my repository as to not muck up the workspace of my colleagues. For more long-term or collaborative projects, consider creating a dedicated repository to host all of your developer notes. You can get creative with symbolic links to make these folders show up in your codebase regardless of their physical location.
Author: Stijn Dejongh
Published on: Aug 23, 2023
2 formats available: HTML / JSON
Ammerse Values :
A: Mi: M: E: R: S: Ex: