Get your C++ software and libraries built The Right Way. Proper C++ simply can't be done on a whim and expects an outline, a prototype, and finally, the full realization of the project.
My outlining falls into several phases:
- Defining the problem
- Identifying several solutions and choosing the best one.
- Structuring (Defining classes, inheritence, etc.)
- Pseudo-code implementation
Next, I move into prototyping. Prototyping is when I create a rough product off of the defined structure and pseudo-code output of outlining, and perhaps take a look at the other potential solutions. Hindsight is 20/20, and what I may've seen as the "best" implementation might be faulty in one way or another in comparison to another implementation. Finally, I ship it off for you to nitpick at.
Finally, Once I've explored the other options and shipped a usable prototype, I get to perfecting it. Your nitpicking is my biggest weapon during this phase. Any and all problems should be voiced, as this is when I'll be solving them. Finally, I'll do one last sweep through the code to look for any potential refactoring that can be done to increase performance, simplify the implementation, or otherwise.
At this point, if any concerns remain, I'll be happy to address them. Past that, the project is effectively done.