Thing One

https://media.transistor.fm/fad39501/17ae7bad.mp3 The Offloaded Brain, part 5: I (Brian Marick) propose a software design style. Oddly Influenced. 31 December 2023. podcast

05:16 – […] I’ll code one feature (or Behavior) at a time. I’ll obey the high level heuristics “you aren’t going to need it” and “do the simplest thing that could possibly work”. I’m supposing, in short, that iterative and incremental development work pretty much the same in both Illinois and New Hampshire style. The differences will be in building blocks used and decisions made *during* the process, not in the process itself.

05:49 – When justifying building blocks and decisions, I'm going to use the guideline of “Biological Plausibility”. For example, suppose I’m implementing a new feature and my attention is drawn to some chunk of code, call it Thing One. I might have the choice of changing Thing One’s behavior so that it does what it used to do before but also something new that helps with the feature I’m working on. But I might also have an option to leave Thing One alone but add a Thing Two that uses Thing One’s existing behavior to create new, feature-specific behavior.

**Note**: What if we were to view the interplay between Thing One and Thing Two from the beginning in the form of the HOPP pattern?

06:26 – In Illinois style, I’d very likely change Thing One, especially if Thing One’s real name was derived from what people usually call the “Domain” or “Business Domain” but I’ll call “the Environment” [⇒ Umwelt] – the world the app must operate in. In Illinois style, I’d try to make the change not only useful, but also a more faithful Representation of whatever in the environment Thing One represents.

06:50 – However, adding on Thing Two is more biologically plausible, in that – if I’m allowed to personify Evolution – adding on seems to be its default choice.