Comment by perrygeo

Comment by perrygeo 2 days ago

8 replies

I respect all three authors deeply but this is my first time reading Tellman's take. His idea that "simplicity is not intrinsic ... Simplicity is a fitness between software and our expectations" has a very nice ring to it.

Contrast that with Hickey's notion of simplicity as an objective count of interleaved concerns or "folds". The quibble with this is, how do you delineate the concerns? Depending on your style and knowledge of the system, you'll get a different number. So it's hard to call it objective.

Tellman's definition is nice because it acknowledges the subjectivity, and puts it front and center. IOW the "style and knowledge of the system" form a mental model of the software system. What's important is not the cardinality, OR the interleaving. It's the ability for that model to make good predictions about the software's behavior. Accurate model held in the minds of humans that operate it == simple software.

chii a day ago

The hickey definition is from the POV of the engineer - the creation of software with simplicity. Code that is simple, doesn't necessarily result in a piece of software that is simple for the end-user.

The tellman's version is for the end user - simplicity of use, by the user, with their existing expectation, culture and pre-knowledge. It's basically describing skeuomorphism in software (but not limited to just UI). It might be enormously complicated to create for the engineer, while it remains simple for the end-user.

  • zem 20 hours ago

    if you think of the "end user" as the next person to work with the code, tellman's version is the ideal of encapsulation. some problem might be intrinsically hard to solve in terms of expressing it in code, but the end product could still be simple to work with given a properly encapsulated design

  • gsf_emergency 11 hours ago

    Simplicity is a fitness between software and beauty

    Pros:

    1) hints that software is also about objective truth

    2)

    Cons:

  • prospero a day ago

    Show me a software developer who isn’t an end user for someone else’s code.

    • [removed] 21 hours ago
      [deleted]
    • wtetzner a day ago

      This feels like it missed the point.

      Hickey's approach is relevant in how the software is constructed, and Tellman's is relevant to the user experience. Both approaches are useful for a single application.

      • prospero a day ago

        My point is that the creator/user dichotomy exists at every level of software.

motorest a day ago

Quantifying software complexity is still largely an open problem. There are approaches that focus on quantifying but are arguably of limited use due to their disconnect with mental models, and there are approaches that focus on evaluating mental models but can't be objectively quantified. The best output from the latter group is that they can serve as guidelines on how to make simple software systems,and how to keep them simple.