Developers’ taking initiative is rare. People generally don’t want to question the status quo, especially someone else’s status quo. An environment that supports this kind of questioning is invaluable not only to the developer, but to the software being developed. New ideas and new points of view can often (though not always) lead to big jumps forward in the quality of a system. A culture of support is absolutely required in order for developers to be successful in taking initiative. Questions need to be asked and answered and people need the time to do this. Without a culture of support, two things happen. One, a developer wants to take initiative, but doesn’t because he knows his likelihood of failure and non-acceptance is high due to lack of support. Two, a developer is stupid enough to take initiative in an environment without a culture of support and then falls flat on their face. Both are bad news. Even with a culture of support in place, not every idea a developer has will end up being useful to the development group. Developers need to know that it is ok to fail. If a developer wants to go out on a limb and explore a new solution to a problem, then they need to have a safety net in place in order to concentrate properly on what they are doing.
I’ve had the opportunity at one of my employers to take initiative and explore new ideas on my own, and with other developers, without direct orders from management. The results were great for everyone involved. I made some major contributions to the software group that were being used long after I left the company. I also learned a heck of a lot, from low-level technical details and techniques to high level techniques for efficient software development, to soft skill kinds of things like how to balance short-term responsibilities with long-term system improvement goals. However, it was only due to the environment I was in that I could benefit the software so much and get as much out of the experience as I did.