Software Engineering Has Its Own Political Axis From Conservative To Liberal 283
An anonymous reader writes "Steve Yegge is back at it again. This essay is on the notion that software engineers range from conservative to liberal in their notion of software and how it should be built. He says, 'Just as in real-world politics, software conservatism and liberalism are radically different world views. Make no mistake: they are at odds. They have opposing value systems, priorities, core beliefs and motivations. These value systems clash at design time, at implementation time, at diagnostic time, at recovery time. They get along like green eggs and ham. I think it is important for us to recognize and understand the conservative/liberal distinction in our industry. It probably won't help us agree on anything, pretty much by definition. Any particular issue only makes it onto the political axis if there is a fundamental, irreconcilable difference of opinion about it. Programmers probably won't — or maybe even can't — change their core value systems. But the political-axis framework gives us a familiar set of ideas and terms for identifying areas of fundamental disagreement. This can lead to faster problem resolution.'"
Re:Yep (Score:5, Interesting)
The conservative/liberal dynamic applied to software development is total bullshit.
Software development has and Agile/Waterfall split, professionals in the business know this, its as simple as that. Applying conservative and liberal as tags is stupid.
The guy has a point (Score:4, Interesting)
As a web developer, I am a liberal and find myself at odds with conservatives who often just can't see simple business needs. Conservatism is good for heart monitors but for building the next facebook? But the Conservative amongst you will argue, don't you think that a billion dollar, millions of visitors, holding fast amounts of private data site NEEDS to be extremely secure?
And it shows much you don't get it if you think that. I said the NEXT facebook, which will start out as a small site with a shoestring budget and bankruptcy just a bill away. Then you need to deliver a product BEFORE yesterday and all the fancy stuff can come later when you are rich and can afford to hire the terminally slow.
I have talked with webshop clients who wanted triple redundancy and failover to carry max expect load... YOU HAVEN'T SHIPPED A SINGLE ORDER YET! And PAY MY BILLS FIRST! Part of the reason the tech bubble burst was all these old developers insisting on enterprise grade hardware with oracle licenses coming out of your ears, meaning that even if they would have ever been able to release a product, the operating costs would have been so high, the break even point would have been somewhere after the heat death of the universe.
The big ones that did survive made it on cheap hardware with buggy, hastily written code that was good enough to make it to the next month.
One old school guy I worked with wanted a detailed plan for general debugging when there was a crisis... because he first wanted to fully analyse the problem before bringing the server down if it started coughing up bad orders because that is what you do in a factory, your don't shutdown an entire factory just because a few widgets come out wrong...
The moron never managed to understand that you DO shut the entire factory down if the cost of 1 defective widget is equal to profit of an entire days output of that factory.
For web shops, margins are tiny and customer service is very expensive. It is BETTER to be down for an entire day, then have to spend a week dealing with complaints because of messed up orders. 1 day no-profit == 1 day of low costs (highest cost are sending and goods, both of which are non existent if you don't ship anything) while shipping orders wrong so they have to shipped again gets VERY expensive REALLY fast.
So, you shut things down and dive right in and fix it, just good enough to get up and running again.
But doesn't that prove you should write bug free code? Only if a website has infinite resources for its startup. Most don't. If you got 10 grand to start a website, you need 5k for supplies, 3k for shipping and that leaves 2k for code. When that money is gone, the webshop either needs to have earnings coming in or it is down the tube.
It is different if there is a large established company and you can pull a MS and just throw good money after bad. But 99% of web development ain't like that.
Mind you, I wouldn't like to fly a plane I had written the software for.
Where I stopped reading (Score:5, Interesting)
"We regard political conservatism as an ideological belief system that is significantly (but not completely) related to motivational concerns having to do with the psychological management of uncertainty and fear."
Thanks, dude. Being a conservative myself, I suppose one example of that distinction is that I think there should be more guns in the general population, because having the good people in our country be a little dangerous seems like a healthy thing to me. The reaction of liberals whenever I bring that up truly evidences a position of bold, experimental confidence and legislative permissiveness. Can't detect an attitude of fear at all in their response. /sarcasm
That and the green eggs and ham thing. Has this guy not read the world's great literature?
Re:just come out and say it (Score:5, Interesting)
I started in AI, moved on to desktop apps, and have neen doing deeply embedded automotive stuff for 10 years now.
I assure you, when a bug changes from, "Oh, post an update on the web site" to a $100 million, government-ordered recall, your priority changes quickly.
I would recomment a 3 year stint in embedded for app programmers. You'll be shocked how sloppy you are, and, more importantly, how needlessly sloppy. Many techniques can be incorporated without slowing down the freewheeling development much at all.
Re:Incorrect analysis (Score:4, Interesting)
Yes, exactly. It's just code, it's not your life. But if your code is going to be used in a way that can save or cost lives, you're damn sure going to take a very cautious approach to make sure it works exactly right.
But of course this entire, overly-long rant begins with a stunningly flawed premise:
Uhhh ... FACEPALM! No, it's not just controversial, it's total crap. It's some justification dreamed up by some circle-jerking academics that took some political views (generally ones they didn't like), lumped them into a pot they called "conservative", then went around congratulating themselves for thinking they finally understood something that their ideological blinders made them incapable of dealing with.
I blame the poor state of accurate historical study in public schools and universities these days, but that's just a stab in the dark.
But if you study political history, it's pretty clear where the foundation of what is currently called the Conservative / Liberal viewpoints came from, and you can trace it back several hundred years to John Locke and Thomas Hobbs: Which is more important: The social collective or the individual? And when collective ideas run afoul of individual rights, how should the conflict be resolved?
Yea, start with that premise if you even want to discuss the idea that programmers are driven by the same dichotomy. Maybe then you wouldn't look like such a douchebag, Mr. Yegge.
Bullshit (Score:4, Interesting)
Just as in political journalism, he couches everything in positive language to avoid offending conservatives, because they are a protected class and their belief system must be respected.
No, here's how it really breaks down:
Conservative = waterfall
Liberal = agile
Funny that, now the resemblance to the political axis and the "reality bias" is uncanny.