The only way to improve is to play against the best.
The most important single aspect of software development is to be clear about what you are trying to build.
"The key to successful verification is to start with a clear and precise specification of what the system is supposed to do."