How to understand the technical issues while designing?

For instance, I have two designs

Design A like miller columns: Better experience, clear view, no training needed, can play however users want.

Design B like stacked layer or tree view: Best performance, a bit complex design, need to train the users to follow the steps but they can complete the task eventually.

All my team members liked design A, only due to performance issues (as data is collected from different data points) we had to choose the design B.

My questions are:

  1. How to understand the technical abilities/issues of a design before presenting it to the engineering team/users?

  2. I learned performance is also a primary design principle. Which comes first- complex design with the best performance vs simple design with average performance?