“Since software development involves communication of abstract and aphysical concepts, it is no surprise that metaphor is a frequently used tool, whether in naming code artefacts, explaining architecture, naming patterns,…characterising process or communicating user interface models. “
https://www.researchgate.net/publication/221034604_Focus_Group_Metaphor_in_Software_Development