Анализ. Записываете задачу с теми подробностями, которые вам очевидны, потом начинаете разбирать ее на куски, минимально друг от друга зависящие, и прорабатываете их подробности, оглядываясь на общий план, чтобы они ему не противоречили.
Записывание омогает как убедиться, что задача охвачена полностью, так и вспомнить, что ты там намозгоштурмил, спустя несколько дней.
Общие принципы решения те же, что у идеального кода - разобрать задачу так, чтобы уменьшить ее связность и не пытаться держать в голове все сразу, изолируя текущие задания от тех подробностей проекта, которые ее не касаются.