Well, to begin with, a programme should be created based on science. Everything in the program should be justifiable. Whoever designed your program should be able to answer questions like:
Why three sets instead of 2 or 4?
Why ten reps instead of 5?
Why two days off instead of one?
Why 2 minutes between sets?
Unfortunately most training programs are haphazardly thrown together. This goes for the programs designed by "professionals" as well. The reason for this is that most people, and even trainers, do not understand how to optimally train the body in accordance with science. Because of this they cannot accurately answer any of the above questions.
Factors such a workout's effects on hormones, the nervous system, and immune system are simply not something that most programs account for. This is a very complex and time-consuming process if you do it correctly, and it requires some advanced knowledge, so it is somewhat understandable why most training programs don't adhere to science and therefore won't produce results for 95% of the people who use them.
The problem is compounded by the fact that cookie-cutter programs will never work for everybody, or even most people. You have to know how to adapt and change a program to work with your specific physiology. This means you must have an easy way to test your body to see what type of training will be most productive for you. Again, this process can be complex, but it is well worth the results.
So the next time you are choosing a new workout program make sure it is one based on science and that it allows for some individualization of the training process. Otherwise you will find that gaining muscle is harder than it should be.