¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io

"The design signals are weak"


 

On Thu, Jul 6, 2023 at 2:19?AM <groups-io.20191212@...> wrote:
?
But signals about design errors?? My experience, and my survey of the literature, suggests those signals are actually pretty weak.

The Koss/Martin bowling game exercise offers one candidate example, where a compiler error triggered a re-evaluation of the use of "value objects" in the API; you'll have to consider whether reverting to a general purpose data structure was a design improvement or not....

I find this pretty provocative, so of course, that interests me immediately. :)

Two questions leap to mind:

- What kind of "weak" is your "weak" here?
- Which "survey literature" has drawn conclusions about the strength of design error signals? Most of the attempts I've seen have measured what happens when people who don't know much about design try to write tests first, notably undergraduate computer science students.

To be clear, I routinely experience design signals that are relatively weak individually, but become stronger in aggregate, such as "I see 3 reasons to do refactoring X, so now I feel confident that doing it will help". I also notice that, as I become more experienced, I react to the signals more softly, meaning as suggestions or hints, rather than as urgent calls to action. I don't consider that a weakening of the signal, but rather an indication that I have become less dogmatic in my practice.

To provide examples of how I think of "strong" or "weak", I can think of at least two common examples of design signals that I'd label "strong":?

- scattered duplication of behavior focused on a naked, primitive data type (a number or some text) which points towards introducing a Whole Value type
- rampant duplication in application request handlers which points towards introducing Parsers and extracting Standard Workflows

If you didn't know those options existed, I'd expect duplication in either production code or tests to provide the motivation to seek them out.
--
J. B. (Joe) Rainsberger :: ?:: ::

Replies from this account routinely take a few days, which allows me to reply thoughtfully. I reply more quickly to messages that clearly require answers urgently. If you need something from me and are on a deadline, then let me know how soon you need a reply so that I can better help you to get what you need. Thank you for your consideration.

--
J. B. (Joe) Rainsberger :: :: ::
Teaching evolutionary design and TDD since 2002

Join [email protected] to automatically receive all group messages.