When you are creating something complex, rather than figuring out how to do it once, take several rounds to figure out how to do it.
Create the big picture of the final outcome, ignoring any of the details that don’t fit. From this big picture, you can continually refine until you end up with the outcome you are looking for.
This approach works in many different situations. It is how I landscape my yard. I get the overall idea and start with the bigger pieces such as determining where the trees will go. Once the trees are in place it makes it much easier to determine where the flower beds and the pathways will go.
After several rounds of refinement, you end up with a complex result.
In application development, this is done through the use of prototypes. Each version of the prototype solves one or more parts of the overall design. The end-users are then freed up to focus on the refinement. Without a prototype, there is the tendency to rehash the overall big pieces.
Knowing that you only have to get a good version rather than the perfect version frees you up to explore all the potential solutions.