As long as you don’t abuse them (mostly by implicitly imposing constraints from the source concept), metaphors can be useful shorthand to talk about and explore ideas. I think that if you’re thoughtful, you can use metaphors from just about every source. I go back to biological metaphors a lot: thinking about ecosystems, monocultures, germ theory, immune response, etc. One of my very favorites is the agricultural practice of crop rotation.
If you didn’t grow up on a farm (as I sort of did… long story) the concept may be foreign. The basic idea is to use the same piece of land to grow different plants over sequential seasons. You know, rotate the crops. There are a few reasons to do this. One is that different plants interact with the soil differently. Some pull nitrogen out, some put nitrogen in. It also helps with pest control, as bugs who like to eat crop X might not like to eat crop Y. Wikipedia has a good writeup.
I started thinking about this metaphor many years ago after I was on a project where the dedicated tester left and I had to step in and be entirely test-focused for several months. It was a good experience for me. For one, I learned that even though I had a QA background (software testing was my first real job) I wasn’t half as good at being a test-focused developer (aka SDET) as the guy I was trying to replace. I had to learn some different tools and techniques and it felt great.
The surprising part was, after this project was over and I was doing lead development on a different project, I was a better developer as a result of it. Like the nitrogen left behind in the soil after growing legumes, validation strategies were left behind in my brain after letting myself focus on the test discipline.
I like to imagine a healthy-sized cross-functional team where the different team members deliberately rotate through which particular discipline/kind of effort that they “own” or pay attention to. The rotation could be along the frontend/middle/backend axis, or the dev/test/support axis, or whatever distinct kinds of efforts the team requires. Even though there is a meaningful cost to letting your people get up to speed in multiple related disciplines (just as there is a meaningful cost in planting different crops from year to year) the benefits in terms of big-picture vision, creativity, preventing burnout, and team empathy could be huge.