Sunday, 27 May 2007

Abstract or Separate

As Rationale evolves we at Austhink -- the designers and programmers -- are again and again faced with a tension between on the one hand simplicity through separation, and on the other hand power through integration.

Each time we add a new feature we face the design decision of whether it should be deeply integrated into existing features, or tacked on somewhat separately. [Of course there is something of a continuum here.]

For example, the ability to add an image to any box generalizes the facility for images which were previously available only for basis boxes (and were in that case compulsory). The generalization has the following consequences:
  1. Basis boxes may now have other images than the pre-defined ones
  2. Basis boxes are now less special than previously
I claim point 2. because whereas previously basis boxes were
  1. Visually distinct (on account of being the only boxes with images)
  2. The only terminal category of box
  3. Had a separate place in the epistemology of argument-mapping
Now that point 1 has been eroded, we are left with points 2 and 3. The argument in favor of these points are that they provide good "scaffolding" to ease the learning of the system, making them good for beginners, so they should be retained.

This is argument is analogous to the following:
Bicycles are difficult to learn to ride on account of their instability, so all bicycles should have training wheels.
Of course, in the case of bicycles we allow the training wheels to be removed, and we provide tricycles for small children and even for adults with limitations to their balance or who failed to learn to ride a bicycle sans training wheels when young.

So, when examining simplicity vs. power trade-offs the bicycle metaphor may be a good source of inspiration.

No comments: