Things can be broken down in simpler parts. We think of God as this infinite being, but His house can also be broken down into simpler parts. Just like the body or the Church. In engineering, we must make Mountains into Mole Hills or in other words, Divide and Conquer. We can see how something even as big as God can be split up into smaller, more understandable and manageable parts.

This was one of the first lessons I learned in Computer Science, and I think any type of engineering would stress this. Studying Computer Architecture has led me to see that we need to break things down into simpler parts that have deterministic or predictable inputs and outputs. This gives us the opportunity, as humans, to understand the whole system in an approachable way. But, then we can also make the system testable if it is "observable." In Software Architecture, we talk about the "ilities" or the quality attributes of the system we are designing. They are measurable attributes that we give fixed values to shoot for in the long run of the project so that cost and amount of resources can be determined. When we make something "testable" we make sure we can do things like Unit Test or have Integration Tests for the system. Having it deterministic and have simple inputs and outputs, such as a well-structured API make us create a reliant, bug-free system in the get go. That is why it is so important to realize that building systems is 70 or 80 percent planning and analysis. Maybe we could even say that the requirements gathering or getting the functionality the system will have is even outside of that and a separate process.

All in all, there are many rooms or pieces to a much larger concept, like God, that have doors going in and going out and have windows that we can look through to see data. Software models are basically microcosms of the macrocosm of the Universe, and we just emulate how processes outside of us work. "Mathematics is the Language of Nature."