I'm not sure how one gets software engineers to justify and back up their decisions like this on a regular basis, but I suspect it would help management trust their engineers more.
More balanced senior engineers (I know anecdotally that there are lots of them) speaking up and challenging their fellow-engineers to justify their extreme positions will be a good start IMO.
No matter what brand,the base unit comes with enough RAM, processing power and spacious SSD.
Everybody gets the same brand,as it's easier to support from the IT perspective.
Keyboard,mouse,monitors should be an individual choice. Some want to ruin their vertebrae by staring at a tiny 13" screen and be happy about it,while some need 3 monitors and 2 keyboards to feel the power,why not.
Not sure why some companies are so tight when it comes to the equipment for developers,as it's always a small fraction of the overall cost of the position.
"If you use extremist and simplistic generalizations you are not worth listening to in a discussion" would be the first policy I'd put into a team.
Balanced arguments with pro/con analysis is what makes an engineer senior and a contributor to an argument. Everybody else shouldn't participate the next time around.
"The whole problem with the world is that fools and
fanatics are always so certain of themselves, and
wiser people so full of doubts."
I am someone who moved from a programer role into management. My appeal to the balanced senior engineers is to speak up more. We don't have to swing as much as economists, enough to frustrate President Truman to say: "Give me a one-handed Economist. All my economists
say 'on hand...', then 'but on the other..."
But we can bring more nuance into discussions - especially calling out those among us with polar positions.If you demonstrate that you will not submit to extremists, I've found that a good chunk of the more balanced people are then encouraged to speak up.
---
TL;DR: Silence the bad and loud voices, and the wiser and quieter voices will start speaking.
I think it was Andrew Grove (of Intel / High Output Management) who boiled this down to the following algorithm:
(1) Invite all sides to a meeting. (2) Ask them what their decision is. (3a) If they agree, implement the decision. (3b) If they disagree, tell them to discuss it, then give you their decision at the next meeting. GOTO (1)
His point being that managers are the least informed (by virtual of organizational pyramids), and therefore the least effective at picking solutions. Build a team that can arrive at consensus, then trust the team.
This is a problem. But at any given time management hears programmers arguing for both sides - the "if you're not using Kubernetes you're a moron" and the "learn how to sysadmin and you'll realize you don't need Kubernetes in the first place" (quotes from the top of the thread). In many cases folks in senior management do not have any idea of these things, and they rely on one of these two opinions, resulting in the other half claiming here on HN that management is all bull.
What the profession lacks is a code of practices - like a Joel Test accepted by every accredited engineer.
I am not sure that is net positive for such a rapidly evolving space. Even now people are debating if unit tests are needed and other basic topics. The only "settled" thing about the profession seems to be that gotos are bad.