Posted
by
Soulskill
on Friday August 10, 2012 @08:30AM
from the another-thing-for-pudge-and-jamie-to-argue-about dept.

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.'"

I've spent the past eight years (starting back in June 2004) writing elaborate rants about a bunch of vaguely related software engineering issues.

I was doing all that ranting because I've been genuinely perplexed by a set of "bizarre" world-views held dear by -- as far as I can tell -- about half of all programmers I encounter, whether online or in person.

Last week, after nearly a decade of hurling myself against this problem, I've finally figured it out. I know exactly what's been bothering me.

In today's essay I'm going to present you with a new conceptual framework for thinking about software engineering. This set of ideas I present will be completely obvious to you. You will probably slap yourself for not having thought of it yourself. Or you might slap the person next to you. In fact you probably have thought of it yourself, because it is so blindingly obvious.

But in my thirty-odd years as a programmer I'm pretty sure this way of thinking about things, if it already existed, has never been mainstream. That assertion is backed by what has to be at least ten Google searches that turned up nothing. So I'm pretty confident.

I'm going to make it mainstream, right now. Watch!

And I suspect this conceptual framework I'm giving you will immediately become, and forever remain, one of the most important tools in your toolkit for talking with -- and about -- other programmers.

The punch line, a.k.a. TL;DR

I won't keep you in suspense. Here is the thesis of this looooong essay. It is the root cause that motivated over half of my ranting all these years, starting at Amazon and continuing here at Google.

(Note: I Do Not Speak For My Employer. This should be patently obvious. When employers want someone to speak for them, they hire a person like the Mouth of Sauron, to make absolutely sure everyone knows they are speaking for the Employer.)

My thesis:

1) Software engineering has its own political axis, ranging from conservative to liberal.

(Note: Technically, you could stop reading right here and be at pretty much 90% comprehension. In case you care.)

2) The notions of "conservative" and "liberal" on this political axis are specialized to software engineering. But they exhibit some strong similarities to their counterparts in real-world politics.

3) Everyone in the software industry who does stuff related to programming computers falls somewhere fairly precise on this political spectrum, whether they realize it or not.

Put another way, YOU are either a liberal or a conservative software engineer. You may be more of a centrist, or maybe an extremist, but you fall somewhere on that left/right spectrum.

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. Being able to identify something quickly as a well-defined political issue means we can stop wasting time trying to convince the other side to change their minds, and instead move directly into the resolution phase, which (just as in politics) generally boils down to negotiation

It's a mild bit of psychological trauma, vaguely similar to hazing effects but on a much smaller scale. Since you took the effort to create an identity here, you percieve it as a part of your actual self. Since your/id is of no value anywhere else, your options are to abandon a piece of yourself or keep coming back here and see how far the place has fallen.

Me, I keep coming back because there's a rare chance of seeing an actual sentient commenter, and then wondering how long until he gets hate-modded to -3. It's like gambling, but the only wager is how much disdain I have for those spending modpoints.

WTF... Dear America: the rest of the world doesn't divide their "world views" between left and right. Stop trying to shoe horn such a limited value system into other domains.

Software development might have it's own set of views internally, but trying to associate one with liberalism and the other with conservatism is asinine. The context of everything would just muddle things up and the nuances would get lost. Does Yegge even have the social sciences background to even approach making this argument? Or is he just another programmer spouting off on his blog?

I'm not really sure what you're trying to say here. I haven't read it in over 20 years (possibly 25). The reason I know that at the end of the book they taste good is because that's the entire point of the book. The protagonist refuses to consume them because they look weird, and the antagonist insists he try them. In the end, he tries them and it turns out he loves them. The moral of the story is that you should try something before making a judgment on it.

Anyway, my point was that the analogy in the summary makes no sense whatsoever. I have no idea if it was cribbed from the original article or not because I didn't read the article because the summary was so bad, but whoever wrote it either had never actually read Green Eggs and Ham or somehow failed to grasp its message when they were 5 years old (or worse, failed to grasp its message when reading it to their own children).