One of the things that challenges me professionally is finding ways to enact change. As human beings, I think we tend to resist change instinctually, even though it's one of the few things in life that we can absolutely guarantee will occur. When you try to change something, we're often met with the standard, "Well we've always done it this way."
When I posted a comment about this on Facebook, a friend of mine linked to a clever story about monkeys conditioned to not pursue a banana, because a researcher would hose them all down just for the one monkey who went after it. The monkeys eventually learned not to let others go after it, even as they systematically replaced the monkeys. Once all of the monkeys were replaced, they continued to prevent each other from going after the banana, well after the researcher with the hose was gone. They kept the new guys away from the banana only because, well, they always did it that way.
While collective experience may prevent change even with a generational shift, or employee churn or whatever, the absence of experience makes it just as hard to change. There might be a best practice or process that is a proven winner, but if you haven't engaged in it yourself, your first instinct is to flatly reject it as an option. The rejection is even stronger if you have solutions in your repertoire that already work, because, after all, you always did it that way.
I find myself up against these forces on a regular basis, and while they can be frustrating, I'm also trying hard to understand the psychology behind them. I've got a mixed record of success. I've had jobs where I've been able to take a complete mess and get things to the kind of state that a lot of folks would in better situations take for granted. Conversely, I've been in situations where I can't even get a discussion started, let alone work in a sales pitch to get people to try to change.
For a little context, I'm not talking about making changes for the sake of change. I'm also not talking about validating my own ego for reinforcement of what I think is the right thing to do. I'm talking about introducing things in software development that will ultimately save money, make you more efficient and vastly improve the quality and maintainability of your product. These ideas don't come from my own brilliance, but rather a great deal of experience of what works and what fails. (I've seen way too much failure, which sometimes causes me to question my employment choices.)
I'm surprised at how much of what I do is less about technology and more about having the right culture to innovate and kick ass.