Good programmers don't require much project management.
I guess that depends on your definition of a good programmer, doesn't it? If your definition includes "doesn't require much management" then I guess you're right. But I've seen many programers that were doubtlessly "good" at the core tasks of programming but still needed lots of oversight to stay on task.
You will never get exact and complete requirements, and even if you did, they would change by the time the project was complete. Your only hope is to plan for changes and talk to your users.
I'd take that a step further - exact and complete requirements do not exist. Resist the urge to pretend your failures were the result of not being given them.