How Todo2d is being developed

It might seem to be obvious, but Todo2d is being written using Todo2d to manage everything. Like any big project that requires managing, there is a strategy how we develop the product.

Within our Todo2d project we have two folders of maps: The “Strategy Folder” and the “Release Folder”.

maps overview

Maps in the ideas folder

Let’s begin with the “Strategy folder,” which always contains two maps: Ideas and Priority.

Ideas map

The “Ideas” map serves as a central hub for collecting and organizing all our thoughts. Whenever we encounter a new idea, we promptly place it here. Since the map is two-dimensional, related ideas naturally cluster together. We frequently revisit these ideas to update them or remove them. Many ideas are deleted because they conflict with others or lack value, but they are also often reintroduced into the map.

The ideas map

If you’ve ever had a project where ideas or tasks remain in limbo, you’re likely familiar with the feeling of a task never being scheduled, even though someone has introduced it long ago. In our experience, this often happens because someone invested a lot of effort into preparing the work, and we don’t want to invalidate it. This is also the reason why Todo2d originally didn’t have descriptions.

Priority map

When an idea gains our attention and becomes actionable, it’s moved to the “Priority map.” Although it remains an idea, the intention of scheduling it has been established. The “Priority Map” also uses a priority matrix to help us determine the relative importance of an idea. This allows us to easily determine which ideas will be added to the next release.

The strategy map

At this point, it’s important to understand that tasks can be assigned to multiple maps simultaneously. This allows us to jot down new bright ideas on the ideas map and notice that we already have a similar, albeit less impressive, idea. At that moment, we delete the old idea, which automatically removes it from every map. Based on the connection ports, we can also see if an idea is already connected. Because a connected idea often implies that there is already something being done with it.

In general, we never need to delete an idea because, when it’s being implemented, it will often be placed on a release map, and before a release, we will mark the idea as completed.

But let’s not get ahead of ourselves; we have yet to cover the “Release folder.”

Maps in the Release folder

The release folder contains a map for each release. The primary task for every release is to release the version, which is named “Release R23” for version 23, in the case of version 23.

Release 23

Any task added to the map directly or indirectly blocks the release task. We do this for two reasons:

  1. It ensures that there’s a single task that determines whether we can release
  2. It ensures that every task placed on any map appears as “connected.”

This second reason might seem trivial, but it also ensures that a task appears as connected on the priority and ideas map.

Behavioral patterns

Although we can move tasks from the strategy folder to the release map, we often copy the task. Since we frequently revisit the strategy folder, we can realize that an idea is currently in development. When we see an idea being developed, we often select similar tasks around it and remove them since they’ve been superseded.

Another behavioral pattern is that when a task is marked as completed, it’s marked as completed on all maps. As development progresses, we’ll observe tasks being marked as completed on multiple maps. This information is valuable for individuals in various roles, including developers, team leaders, project managers, and so on.

A third behavioral pattern is that when we start working on a release, we also create the release map for the next release. We do this so that when we’re working on one release and discover something, we create a task but allow it to be blocked by the current release. Then, we simply move that task to the next release. Sometimes, we even move it to the priority map.

These are just a few examples of behavioral patterns that Todo2d enables, allowing us to easily organize our work.

Why does it work?

The primary reason for the success of this system lies in its unique approach of prioritizing tasks over the surrounding structure. Unlike other systems, this approach eliminates confusion regarding the appropriate time for a release. While most systems suggest that releases should be completed at the end of a sprint, this approach has several limitations. For instance, tasks may need to be completed after the sprint or during a holiday, or a quick fix may be necessary due to a bug that requires immediate attention.

Todo2d enables you to still accomplish these tasks. You can create separate folders for releases, sprints, and strategies. This differs from our approach, as we release based on readiness instead of time, but the system still works. You can still keep organizational oversight by using different mental contexts: Priority, delivery goals, time management, et cetera. Even when separating these contexts, you still have informational insight about the task, the relationship and so on. This ease of working is a significant advantage for the teams and different roles working on it, providing us with a lot of flexibility.