• UX Entropy

    User experience for a non-trivial web UI tends to degrade over time as more functionality is added and more engineers add to it.

    This is analogous to entropy where poor UX is correlated with the number of macro states possible within the system (user interface). The number of states increases as more functionality is added and engineers tend to add more lines of code than they delete (heat).

    If you define the ideal UX as a screen with a single button that solves the user’s problem then increasing entropy is adding more complexity (states). Complexity makes it less clear what the user should do and makes it harder for the engineers to focus on a specific use case.

    See also:

    • Conway’s Law shows people and organizations are a meta-agent acting on systems to increase or decrease entropy.

  • UI Crawling

    From an entry point uncover all of the possible actions a user could take in a user interface. Actions are anything that causes the state of the application to change.

    This could be used to automatically generate the plan space for use with graph analysis or working on planning problems (e.g. what are all the ways a user can accomplish a specified goal). You could use the state machine with a planning AI algorithm to generate optimal sequences of actions to achieve the specified end state.

    Is this possible to do just by looking at code and not running the full browser session e.g. static analysis?

    See also:

    • The Fuzzing Book (specifically GUICoverageFuzzer which explores the user interface to generate a grammar and state machine)
    • Fuzzing