It's just that we don't carry elections to choose our leaders in a company. It gets decided for us, but trust me, the decisions are very unbiased.
You may put in your hard work, burn your midnight oil, go sleepless for a day or two to build software, solve a bug or update a task. But do you think your company's top management would care about you? No, because they look at a much bigger picture than what you see with your current thought set.
Maybe if you go out of the way and bring more value to what you do, you may be heard. But you've already threatened your immediate superior by proving you are much better than he or she is. This has been, and will be the age-old problem within any software company.
The middle management has been and will be the boon and bane of any company. Your company's success entirely banks on how these individuals bridge the goals with the executors. You will never get past this layer of the company if you don't learn how to handle a middle manager.
Writing good code, finishing tasks on time, and agreeing with your superiors — you survive in the system. Look at all the paper pushers in a government — they are the core strength of the system. You can be too. You'll be replaceable, but.
If you want to be heard. If you want to solve better problems. If you want to change your company for a better place — learn to handle people.
You need to be in the system to change the system. Whether you are invested in changing the company for the better or decide to quit and move to another company is up to you. But if you move to another company, you are bound to experience the same. You will have to keep running.
Look straight at what's really in front of you. Learn the system. Learn the politics. You looking away is only going to hurt you, not the system.
A note to self.