Metaphor is a revelation, not an algorithm. So they tend to be a little random (sloppy).
Metaphor links the software development process with other activities you are familiar with to help you understand better.
Some metaphors are more appropriate than some other metaphors.
By comparing the building process of the software to the building process of a house, we can find that careful preparation is necessary, and that there are differences between large and small projects.
By comparing practice in software development to a tool in a smart toolbox, we find that every programmer has many tools, but there is no one tool for all the work, and choosing the right tools to adapt to the local conditions is the key to being a programmer with effective programming.
Different metaphors do not repel each other, and you should use some combination of metaphors that are most beneficial to you.
Use metaphor to understand software development more fully