Improving Wetware

Because technology is never the issue

More Dan North and CUPID

Posted by Pete McBreen 06 Oct 2022 at 02:46

Finally Dan has got around to creating the website

I believe that there are properties or characteristics of software that make it a joy to work with. The more your code has these qualities, the more joyful it is to work with; but everything is a tradeoff so you should always consider your context.

There are likely many of these properties, overlapping and interrelating, and there are many ways to describe them. I have chosen five that underpin much of what I care about in code. There is a diminishing return; five are enough to make a handy acronym, and few enough to remember.

Just for reference, CUPID stands for

  • Composable: plays well with others,
  • Unix philosophy: does one thing well,
  • Predictable: does what you expect,
  • Idiomatic: feels natural,
  • Domain-based: the code models the problem domain in language and structure.