You missed the most important question in the failure list, “What are you going to do about it?” That should be the last one.
I intentionally put my programmer trainees into that position. Then they I had to come up with a list of solutions, explain each of them with their pros and cons, pick one, then code it. I just asked questions. Refused to recommend any.
One said that she “learned more from me in two months than she did in the prior year and a half” which included a 6-week boot camp.
One trainee said, “Bill, I am so confused. Do you ever feel that way on a project?” My reply, “Yes, every one at some point. You just have to work through it.”
A few of my techniques are here: