When I try to code a project I always fail to see the "big picture" and figuring out a good way to do things, and most of the stuff I write becomes a useless mess.
Thus I mostly just fix other people's code and send patches, as I can focus on a single things much better.
But C++ was supposed to make everything clear with its classes and encapsulated details and high level objects.
Don't you see the Patterns in your Factories pumping out re-usable Designs?
Or is it more like to you see hundreds of 3 line functions that scatter a path of execution across so many files that your editor chokes trying to bring up all those separate windows, and your brain boils while you read code that is more function calls than real implementation?
Incremental development is the way.
Write a list of all the things you need the code to do, sort it from most important to least, and develop one capability at a time. Forget the big picture; the customer is going to draw you several new big pictures before the project is done, and even after it's done.