I was recently working on a complex software project which involves multiple sub projects and they interact with each other.<p>I was to asked to come up with the new feature which involves all these sub projects. Being so complex, I was not sure whether I know all of the pieces to make the right design for the feature. I succeeded easily.<p>From that perspective, how do you guys know that you know enough to do anything non-trivial? Not just from the software perspective though.<p>I think knowing is measured relatively.<p>I know gut feeling is the usual word (System 1 thinking). But, do you follow any methods / frameworks (System 2 thinking) which works in general?