Improving Wetware

Because technology is never the issue

Dan North and CUPID

Posted by Pete McBreen 17 Feb 2022 at 00:11

CUPID is Dan’s response to the SOLID principles and back story. Rather than another set of principles, Dan instead chose to focus on the properties of the software.

  • Composable – code that works well with others and does not have too many external dependencies that make it harder to use in another context, ideally with Intention Revealing terminology

  • Unix philosophy – related to the composability property, does one thing well and works well with others to build a larger solution

  • Predictable – or as the saying goes, “does what it says on the tin.” Dan calls this a generalization of Testability, it should behave as expected, be deterministic and observable

  • Idiomatic – naturally fits in with the way code is written in the implementation language, so for example in Python, rather than open, write and then close a text file, the natural way to write this is as below, where Python automatically handles the closing of the file

    with open("file.txt", 'w') as textfile:
        textfile.write("hello world!")

  • Domain based – uses words and language in a way that would be familiar to practitioners in that domain.