Solving your problem will require a learning process for you and your team.
Take a look at agile development practices, for example Scrum or Kanban. Agile processes have clear guidelines on how to provide your developers with new requirements of your software.
You should focus on requirements and features instead of implementation details. The developers should make the decisions about how to implement your features.
To answer your comment:
However, key for all of this is trust. You have to trust your team that it's doing the best it can to deliver good, working software and the team hast to trust you that you know what the software needs most at the given time.
Of course you can do code reviews but the team should do this itself. If your programmers are not experienced enough, I think you have to train them and encourage them to read blogs etc. to beef up their software development skills.
The main benefit of agile software development for a project manager is that you get a working piece of software every 2-4 weeks. You can easily spot mistakes, wrong interpretations, unsuitable features and correct the planning on the fly.