Sometimes as programmers we get overwhelmed with a particular project.
The amount of work may be great, the complexity may be enormous, the documentation may be lacking or non existent and there's nobody to go to for answers. Yet the want it done right away.
These are challenging projects indeed. And it tests a programmers ability to get things done. Because nobody wants excuses. Nobody wants complains. The only thing they want are results so they can bill the client and move on to the next project.
I find what works for me is to take a high level approach. Gather all the known facts. Segment them into manageable chucks. And focus on the things you have control over. And slowly knock them out. Sometimes it helps to zig zag between task items, as long as you keep the momentum moving forward.
And then you can start to isolate the unknowns. Where can I get this question answered. What about this missing piece of information. And slowly, very slowly, the pieces of the puzzle start getting filled and pretty soon you are closer to completing the project.
So the enthusiasm starts building as you near the end and at some point not too far in the future, you have some actual results to show the client, with some modifications perhaps and filling in any gaps you may have missed. And that's how we turn difficult projects into final solutions. It ain't easy, it takes tremendous will power to overcome the obstacles, however that's what separates the Junior to Mid level programmers from the Seniors.
And so it goes~!