Forgot your password?
typodupeerror
Programming Politics

Software Engineering Has Its Own Political Axis From Conservative To Liberal 283

Posted by Soulskill
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.'"
This discussion has been archived. No new comments can be posted.

Software Engineering Has Its Own Political Axis From Conservative To Liberal

Comments Filter:
  • by RobotRunAmok (595286) on Friday August 10, 2012 @09:37AM (#40945029)

    ...who the fuck he is.

    Note to Sales Department: I get that this is Yegge's slashvertisement ("anonymous reader writes..." sh'yeah, right...) but you still need the editors to set it up better than this if you want those click-throughs.

  • And if they want clickthroughs, better make sure TFA isn't on a subscribers-only website.

  • Yep (Score:4, Insightful)

    by Anonymous Coward on Friday August 10, 2012 @09:44AM (#40945113)

    /. has hit rock bottom.

    (for the record, this left/right, liberal/conservative, tweedledum/tweedledee polarization is bullshit. When you actually talk to people, you find a range of viewpoints. Know any concealed weapon carrying liberal democrats? I do. How about social conservative republicans who buy contraceptives? Yep. Or even worse, programmers who use the Visual Studio C# .NET WPF paradigm at work, and then use a Linux desktop coding open source at home. Probably so.)

  • by cvtan (752695) on Friday August 10, 2012 @09:47AM (#40945161)
    Because, you know, there are like only two ways to code: Liberal and Conservative. There certainly can't be a THIRD way like Funny or Informative or Surprise and Fear. Damn! Or Ruthless Efficiency!
  • by gestalt_n_pepper (991155) on Friday August 10, 2012 @09:50AM (#40945183)

    If you're getting paid for your software, there's one set of priorities. If you're doing it for your own satisfaction, there's quite another. Not understanding or being able to separate business from the actual activity of writing software seems to be the problem.

    I see this on a daily basis where I work. Younger software developers seem to think that "cool" and "new" is a good reason to do things - which it is, as long as it doesn't get in the way of making money. When there's a client involved and significant money, "cool" and "new" are only good if they actually help sell and maintain the software. The client doesn't care about frameworks, or ruby, or agile or lambda expressions. They care about cost, reliability and usability. Change for its own sake, or to gratify only the programmer is frequently a problem.

  • Re:Limited view... (Score:5, Insightful)

    by Quiet_Desperation (858215) on Friday August 10, 2012 @10:09AM (#40945423)

    Dear anonymous entity, stop projecting the opinions of one blogger onto a diverse population of over 300 million.

  • by jeremyp (130771) on Friday August 10, 2012 @10:29AM (#40945713) Homepage Journal

    No, he doesn't. He uses "conservative" in the sense of risk averse and "liberal" in the sense of not conservative. He then defines a number of traits which help define whether you are a programming liberal or conservative. For instance, if you like strong and/or static typing (he conflates the two), you are conservative. If you like dynamic/weak typing, you are liberal.

    There are several other traits by which you can measure your conservatism/liberalism in programming terms. That exposes the flaw in the paradigm: just like in politics most people are not across the board conservative or across the board liberal. I, for example, would be labelled liberal in terms of the typing issue but conservative is respect of several of his other points - like database normalisation.

    Another problem I have with his idea is his choice of terms. For many people, me included, the political label "conservative" has strong associations with US far right politicians, who, from my perspective in the UK, are all mad as a box of frogs. He spends a lot of time at the end of the article arguing that being software conservative is not bad in the way that the political equivalent is bad, but I think he would have done better to have chosen less pejorative terminology.

  • Re:Yep (Score:3, Insightful)

    by Jawnn (445279) on Friday August 10, 2012 @10:40AM (#40945841)

    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.

    ...but buzzy, and guaranteed to generate views and clicks. Brilliant.

  • by TheMathemagician (2515102) on Friday August 10, 2012 @10:50AM (#40945953)
    I've no idea who Steve Yegge is or what he's supposedly "at again" but I wish he'd stop - or that /. would just stop featuring him. This article is just claptrap from start to finish where he projects his completely artificial and false one-dimensional scale onto clearly the only political model he knows - America's. Compile-time binding is conservative and run-time binding is liberal? Oh please.
  • Re:Yep (Score:5, Insightful)

    by PoolOfThought (1492445) on Friday August 10, 2012 @11:11AM (#40946257)

    The conservative/liberal dynamic applied to software development is total bullshit.

    Except that the two words "conservative" and "liberal" have actual meanings outside of the political realm. Sometimes using a single word (OMG... a label!) goes a long way towards making discussions more fruitful and less laborious.

    My gut reaction was the same as yours... this is crazy! But the essay makes some good points. You're correct in that there is a split, but there are a huge number of subjects to split on and most people lean one way or the other on the majority of those items. Sure, there are those who are fiscally conservative, but socially liberal... and the same can occur in software ideals / behaviors. The author didn't call anything right or wrong - he used the words exactly as they are defined.

    Sometimes it's easier to just know that even if Fred is one liberal dude outside of work he is, at the same time, the most conservative software guy in the company. The probability of getting him to sign off on your new technology being used for a critical application is next to zero. Don't waste your time. He might not be against the tech itself, but not for that application - not at that time.

    I can see other uses for this way of looking at things as well. Both in actual sales and in "selling" you ideas. Sometimes being able to simply "frame" the problem in the "right way" according to who you're talking to will help you get more done in communicating and significant increase your odds. There's nothing new here, right. Just classifications. Marketers advertise differently and stress different benefits to different target audiences. When I'm talking to a software liberal about a new project I can explain how awesome it's going to be because things will get done faster and be more flexible, but when I'm talking to a software conservative about the same project I can explain how it will be more "fool proof", have better error handling, be more effiecient, etc.

    I'm don't know if you actually read the article (it's quite long so I doubt it based on how quickly this was posted), but the article actually goes into a lot of detail regarding the varying "conservative" software development practices, "liberal" software development practices, and the likelihood of types of companies (and right on down to the developers) that utilize each. If you don't like the labels then change them to whatever you want. Call it already done if you want, but I think the discussion (and the labels) helps to make it more concrete that there are "different strokes for different folks" and in the software world where those differences often lie.

  • by anvilmark (259376) on Friday August 10, 2012 @11:54AM (#40946963)

    He's right that there are opposing ideologies, but Liberal/Conservative just muddies the water.

    Utopian believes:
    1) Zero defects is achievable and support processes should assume that will be the case after release.
    2) "Good code" is the result of using an "industry standard" language.
    3) That full functionality specifications can be collected during design from the people who will be using the system.
    4) Achieving 1-3 is more important than delivering the functionality requested by the users.
    5) Considers that the delivered project will be "complete" and further modifications will be minimal.

    Pragmatist believes:
    1) That defects are inevitable and support processes need to allow for easy/quick recovery.
    2) "Good code" should be inherently understandable by the majority of those who will be making changes to it.
    3) That human memory is spotty and nobody is able to tell you 100% of what they know.
    4) Delivering software that meets the needs of the user is more important than perfection of the code or processes.
    5) Understands that the world changes and the software needs to make those changes easy.

    As you can guess - I'm a pragmatist.

  • by 517714 (762276) on Friday August 10, 2012 @12:02PM (#40947097)

    Credibility? No as a blogger, he either chose words to incite or he needs a thesaurus. "Cavalier" is the word he wanted not "liberal." He should have stuck with "risk averse" instead of "conservative." Liberals are frequently risk averse; otherwise they wouldn't want the social safety net of healthcare - that is far from cavalier. Conservatives are frequently cavalier otherwise they might consider the ramifications of AGW in spite of weak evidence.

    Cavalier is, "So what if a little shit gets in your hamburger."

    Risk averse is, "If shit gets in the hamburger we'll have to throw it out, so don't let shit get in the hamburger. Keep the hamburger away from the shit. Keep the shit away from the hamburger. Don't sell hamburger with shit in it. Don't buy hamburger from someone who might let shit get in the hamburger. Cook the hamburger until it's well done, just in case it has shit in it." It's a series of rules to keep everyone out of trouble.

    Liberals variously want us to feel good about how little shit there is in the hamburger; start a governmental body to regulate how much shit should be in the hamburger; figure out a way to pick the shit out of hamburger; eliminate the hamburger adulterating the shit; claim that shit is hamburger; etc.

    Conservatives variously want to make those responsible pay for having shit in the hamburger; want to allow as much shit in the hamburger as the free market will allow; claim that shit in hamburger is God's will; claim that shit is hamburger; etc.

    Note how both conservatives and liberals are likely to stumble across a "solution" that isn't.

  • Re:Why... (Score:4, Insightful)

    by PPH (736903) on Friday August 10, 2012 @12:07PM (#40947177)

    Because there is a subset of people who can't function without a 'them vs us' mentality.

    I prefer the sporting metaphor in business organization. I'd rather work for a mountain climber than a baseball player. Mountain climbers' primary concern is to make it to the top (achieve a goal). Beating someone else's time or performance is secondary. And there is no thought of kicking the competition off the route or removing their protection.

    The conflict driven personality often performs miserably once they have 'won' a competition, having no drive or motivation to improve if there is no 'enemy' left against which they can measure themselves.

Do not underestimate the value of print statements for debugging.

Working...