Creative Work is Often Nonlinear

  • writing programs (and other creative works) don't happen linearly, so the software should support that, instead of forcing the users to think like computers by forcing to write everything top-down in a rigid structure (Computer Science Positivism)
    • block-based End-User Programming systems often feel this way, they often remove possibility for any syntax errors, by imposing strict rigidity on how the program is created
    • form-filling is often problematic - it's often impossible to come back to a complex form after a couple of days, if there's a wizard you often can't skip to the next page to see the questions there, and then come back to fill something up earlier, etc.
  • a great counter-example could be Ableton Live where you can fluidly switch between "Session View" (used for playing around) and "Arrangement View" (timeline used for producing a linear track)

The development of a program is not linear. Programmers neither write down a program in text order from start to finish, nor work top-down from the highest mental construct to the smallest. They sometimes jump from a high level to a low level or vice versa, and they frequently revise what they have written so far (...). For the purposes of programming support, that is all we need to know. Although the causes and nature of deviations from top-down development have inspired much research, the implication for a programming environment is quite straightforward; the order of working should be left to the programmer, not prescribed by the environment.

— Usability Analysis of Visual Programming Environments - A "Cognitive Dimensions" Framework

  • focusing on sequential workflows (writing the novel from start to finish line by line, composing musical score from left to right, etc.), where in reality Creative Work is Often Nonlinear