I can't count the number of times I've had to give some variation on this speech to junior engineers of one stripe or another: The company does not exist to give you cool things to hack on. The company exists to provide a product or service to its customers, from whom it collects revenue, in order to repay its investors, pay its employees and suppliers, and hopefully also make a profit. To the extent playing with cool, new, whiz-bang furthers those goals, it will happen, but whiz-bang is neither necessary nor sufficient for those goals. In fact, whiz-bang for its own sake can often be inimical to those goals.
Also, nice false dichotomy.
When a good engineer can easily move to dozens of other companies, yes, it does. If I felt like my growth had stagnated and my employer wasn't willing to work with me, I'd move on.
And pushing — let alone threatening to move on — to use new tools when they aren't appropriate? Please, go be someone else's problem.
Here's the problem: Everything, no exceptions, starts out as "Look, shiny!". Usually, you need to play with it to find out if you even have a use case to justify spending the resources to do a formal evaluation. Reading the docs is a poor substitute for deploying it.
Now what the article talks about is "shiny!" being pushed into production. No, no no no no. Never do that. There's no excuse for just dropping new untested shit into prod where customers can trip over errors - I think everyone can agree?
But if hypothetical you is preventing your hypothetical engineers from indulging their curiosity and trying out new things to see if there's even a business case to be made for production use ("But there's no time" counts here), you're hamstringing the engineers and hamstringing your business.
Violent agreements are lovely when they're sorted out by the market: at the moment, the best engineering talent I know would not be caught dead working on (just as an example) PHP.
There's simply no need to let your skills and salary stagnate when you can get paid more for working with the state of the art elsewhere.
Demand is simply too high, and like anything, there's tradeoffs: you can get anyone to do anything for enough money. But "great talent," "cheap," "low autonomy," "fossilized tools," will require some compromise.
We're blessed to work in an area where it's possible to grow your own skills while staying within the same company. If a company can provide this to its engineers, it's a win-win - employee skills improves, they want to stay longer, etc. And let's not forget humans, not AIs, are at the helm of those companies.
They aren't anything whatsoever to let you build things that they're somehow going to depend on using NewHotness-0.1.3.
EDIT: Look, I'm not saying growth and exploration are bad things. I'd never have learned the tools and technologies that have fed me for years now, or been able to expand those skills in ways that have made me tremendously valuable to the people who've decided to pay me nontrivial sums of money in exchange for my knowledge, skills, and time, if I hadn't been, as you say, "blessed" with opportunities to try new things.
But there's a difference between acting like you're blessed, which to my mind entails exploration with respect for the needs of the folks who are paying you to explore, and gratitude for the opportunity to do so — and acting like you're entitled, which ignores those things, and treats it as an exercise in résumé-padding.
When you're getting a salary you're standing in the way of the company making that money they're giving you. It's very counter-productive (and illegal, as you mentioned), but if you find this silly maybe you understand why I find your original reply silly.
You aren't "standing in the way" of them making the money they pay you; they're making a choice, with every paycheck, that your time is worth more to them than what they're spending to keep you there. You upset that balance by introducing instability into the stack because it's new and shiny at the ultimate risk of making that exchange no longer worthwhile.
Until you start losing employees to competitors who do offer cool technologies to work on. Your patronizing tone about how "junior" engineers just don't understand business is unwarranted. ALL engineers, not just "juniors", need to stay relevant in their field. Some of us actually enjoy what we do, too. Keep using antiquated technologies and watch your talent pool dwindle and your product gradually become obsolete.
The company doesn't exist for me to hack on cool new things. Of course not. But what you fail to understand is that I'm a very intelligent person who is not planning on spending the rest of my life doing shitty simple e-commerce UIs, or whatever it is that you do. It's easy to think nothing but the goals of the company matter, especially if you're an awful founder, but the world just doesn't work that way. We all need to move on when the company likely dies, and I don't want four years of "I had no choice but to work with crap" on my resume when this happens, just because I had an asshole boss who hated other people who did smart things around him.
But it's no fun to try to use something, and you can't because someone moved fast and broke things. It's even less fun when your customers are calling you because your site is down, and all you can say is "It's a problem with the platform." Before long, you get to choose between the platform you're paying for, and the customers who are paying you.
There are pros and cons to adding new tools. Each situation is different and would ideally be decided by all the effected team members. It depends on the team, existing tools, product, whether it is released yet or not, and a myriad of other things.
An engineer could install whatever he likes on his own machine or VM in his free time, if he has any. If other engineers have a problem with that, then like gay marriage and abortion, that is their problem. Similarly, if an engineer installs software willy-nilly on a production machine that has active users, I think we can all see how that is unreasonable. So the debate comes down to the in-between grey areas. Without being in the moment, none of us can comment on it towards any real conclusion.
From the perspective of an employee, the company is forcing you to stagnate and become someone that is easily replaced. I don't blame anyone for being insulted by this. The company is advancing their own interests at the cost of their own.
Nobody enjoys being forced to do something. So while an employee forced to work in a certain way can be expected to be bent out of shape, so can an employer whose hand has been forced by an employee. The adage 'shit flows downhill' is true, and the intractable employee will soon find themselves swimming in it.
A company may decide to cut their losses early if you are actively making your position harder to fill. From their perspective, the longer they wait, the more deeply entrenched you become. Companies value reliability. They want someone they can count on. The same goes for people. If your manager doesn't feel they can trust you, if they are consistently afraid that you will embarrass them, then you are a liability to them. If you aren't outright fired, you will be kept on a very short leash.
There are a lot of benefits to toeing the company line, insulting as it may seem. Should you find yourself in the good graces of your manager (and by extension, the good graces of the company), you will enjoy a remarkable amount of autonomy. By being dependable (if not predictable), you gain job security and autonomy. You will find your suggestions are taken more seriously, as nobody is left to wonder what trick you have up your sleeve.
I totally understand where you are coming from. I am always looking for better tools for the job at hand. Companies move slow, and technology moves fast, and it's easy to be left behind if you move at the speed of the company. Ingratiating yourself to your company takes time too. It could be years before you get to use a new technology, at which point an even better tool shows up.
The company has the upper hand in this situation. Changes probably won't come quickly. If you find yourself in a position where you aren't happy with the way you are allowed to do your job, oftentimes the easiest way to solve the problem is to find a new job.
Also I've found that most managers know they should keep their team replacable, but also efficient. And they often end up treating long term replacability for short term efficiency gains, again and again and again. So while it should be a real issue it is less often than we coders worry.
A truck number of 1 is a bad deal all the way around unless the employee in question enjoys going without a vacation.