Say what you’re not saying, don’t say it, say what you didn’t say
Last time I blogged that modelling is not limited to software engineering, play and simulation; but is universal in human endeavour. I mentioned that considering accuracy is important but not sufficient in assessing a model. What other considerations are there?
My favourite lens for looking at a model is abstraction. In philosophical terminology, abstraction is about grouping concepts together at decreasing levels of detail. So, a duck is a duck and no other thing is a duck (no matter how it looks or walks or sounds); but applying abstraction allows us to talk about birds and say useful things, which might be rather exasperating if we had to list every bird in the world to say them. This kind of classification is a particular feature of object-oriented programming languages (which may or may not be a good thing).