Most of what has to be said about the topic has been covered well already, in the above posts. However, I wanted to factor in another point, that might not be as sympathetic.
From my (short) experience as a team lead, I have noticed multiple reasons why I would sometimes not accept the suggestions of a programmer.
- The programmer was good, but his ideas were out of place for the current project, or we don't have the time or resources to put them into action.
- The programmer is enthusiastic, but does not yet have the experience (or maturity) to properly evaluate the idea (in other words, it might not be a very good idea)
- The programmer is bad / ignorant (and does not know it), and the ideas are likewise.
In case of 1, One should sit with the programmer, and tell him what is good about his idea, and then tell him what are the constraints that are keeping us from using it.
In case of 2, gently break it to the programmer, by pointing out the shortcomings in his ideas, and explain ways to evaluate the ideas before presenting them.
And lastly, in case of 3, there isn't really a single way i found useful to deal with a bad / ignorant programmer. Some tend to be self assured that they know it all, some can be reasoned with, some just recommend ideas for the sake of it, to later claim that they too tried to help with the project, etc
The above post might sound rather critical, but I am just listing out the types of ideas i had to turn down. All the good things were already mentioned above, and I didnt want to duplicate the effort.
What I would recommend to you, is find out if you are in any of the 3 categories, if you are, then learn how to deal with your category of issues. However, if your ideas are genuinely good, and deserve to be used, then by all means talk to your managers manager (or a recruitment agent :) )