Find the hardest part of the problem or task, and solve that first. Search for the biggest risks, and explore them. Shine light into the darkness of uncertainty.
It’s not as fun as plowing ahead and writing some code, but it makes it a lot easier to design when the components are known. Also, it’s easier to make a good estimate of time remaining when there are fewer surprises remaining. So ferret out those surprises, and destroy them.