Design requirements

This system must:

  • facilitate credible promise-making,
  • allow for causal dependence tracking,
  • use scale-invariant language and concepts,
  • be medium-agnostic,
  • allow for progressive structuring of data, and
  • enable progress visualization.

Let’s break each of these down in turn:

Credible promise-making

In order to collaborate effectively, we must break down work into smaller chunks, split up the chunks, work on them independently, then recombine them after completion. To help people coordinate across different timezones, we need to communicate to each other how long it will take to accomplish each chunk, and keep our overall estimates up to date as our task-specific estimates change.

The central aim of this system is to allow us to make credible promises with task definitions and deadlines, internally decompose (split up) and track progress of tasks, keep other parts of the organisation informed about any changes in deadlines, and discover our prediction error margins over time so that we can build resilience into work planning.

Causal dependence tracking

Our work frequently has complex interdependencies, not only in terms of implementation requirements but also in terms of decision-making: often we can’t decide some Y until we have decided some X upon which certain considerations for Y depend. This system should allow us to identify and continuously refine these dependencies and thereby identify which central items must be resolved first and prioritise them.

Scale-invariant

This system should use language and concepts independent of scale, which will save us time and complexity when changing the specific parameters, as we are likely to do.

Medium-agnostic

This system should define a syntax and semantics for promise-making and causal dependence tracking that is not tied to a particular medium, such that the medium could easily be changed in the future.

Note: medium-agnostic does not mean that you should be using different mediums at once - it just means that we should be able to define the system without reference to a particular medium and easily change mediums in the future should we decide to.

Progressive structuring

This system should be compatible with the maxim of “centralize first, organize later”, and allow for easy entry of data (e.g. not requiring many complex form fields) which can be organized later (and possibly by a third party).

Progress visualization

This system should provide the requisite data to visualize progress - how are we doing, relative to our higher-level goals - at all relevant layers of abstraction (so, all the way from the individual to the whole project).

Next, see conceptual structure.