Archive for August, 2007

Service Oriented Architecture is your Ticket to Hell

Thursday, August 30th, 2007

Allow me briefly to depart from the usual subject matter of this blog, BS in society, to address Service Oriented Architecture (SOA), BS in Information Technology. I recently discovered that proponents of SOA, such as Thomas Erl, claim it increases agility. This is unadulterated bullshit.

SOA for Dummies

Suppose you are a programmer and you have to build a large, complicated application. You have to break up the code into pieces so you can keep everything straight and not get lost. For years, programmers have divided code into interconnected hierarchies of objects, a practice called object-oriented programming. Service Oriented Architecture is an alternative code organization, based on services. For example, you might have a weather service that returns weather conditions, given a city. A service is a chunk of code that has several properties:

  • A service can take requests
  • Given a well-formed request, a service will send a response
  • A service can use other services
  • Service Oriented Architecture has become a major buzzword in the software design community, and everyone and his code monkey is claiming to use it. So if it doesn’t do what’s promised, a lot of people are going to lose a lot of money.

    The Claim: SOA Increases Agility

    Thomas Erl is the guy who wrote the book, literally, on SOA (see Service-Oriented Architecture (SOA): Concepts, Technology, and Design, Service-Oriented Architecture : A Field Guide to Integrating XML and Web Services, SOA Principles of Service Design). He claims that SOA facilitates agility. This is bogus for two reasons: SOA requires upfront architecture, and SOA, left unchecked can create strange loops.

    Problem One: SOA Requires Architecture Upfront

    One of the key tenants of Agile Development is to delay defining the system architecture (the organization of the code) as long as possible, because having a defined architecture limits your flexibility in changing code. According to Erl, SOA requires even more upfront architecture definition than an upfront-design-heavy object-oriented software development process. In other words, SOA requires you to do a whole load of up-front design and specification that’s very difficult to change after. Not being able to changes things is the antithesis of agility!

    Problem Two: Strange Loops

    Here’s something really interesting about SOA: your services can use other people’s services and vice versa. Furthermore, you have no idea how anyone else’s services work, or what services they are using. Now suppose Bob makes a service, B, and Tim makes a service, T, using B, and Jane makes a service, J, using T. The dependency looks like: B<--T<--J . Now suppose that Bob sees J, and thinks, hey, if I use this I can make my service way simpler. When Bob changes B to use J, we have a dependency loop, and all the services will just go around and around until something crashes. The problem is that Bob has no way of knowing which services depend on his. Now scale this up to thousands and thousands of interconnected services, made by many, many different programmers. Nobody can see the dependencies. It gets to the point that if anybody changes anything, the whole system can come crashing down. Debugging becomes a nightmare! More specifically, the lack of dependency knowledge drastically limits your ability to change services, once again retarding agility.

    SOA is the Opposite of Agile

    I’m not saying that SOA doesn’t have any advantages. It certainly promotes low coupling and code reuse. If you already have a large library of helpful services, you may be able to code some things faster. What I am saying is that SOA, scaled up in the distributed way SOA proponents talk about, does not foster agility. Loads of upfront design and unknown dependencies seriously hamper a code provider’s ability to change things quickly. I’m also not saying that these problems are insurmountable. What I am saying is that, if SOA is scaled up without precaution, it can create systems so precarious that anyone asked to maintain them will feel like s/he’s won a ticket to programmer hell.



    Video Slideshow: Top 5 Heroes in the War on Bullshit

    Monday, August 27th, 2007

    Now that the War on Bullshit has been officially declared, it is time to award some medals to comrades that have already distinguished themselves. I’ll start with two honorable mentions and then move on to the top 5.

    Honorable Mention: Adam Savage and Jamie Hyneman (MythBusters)

    For each episode of the TV series, Mythbusters, Adam Savage and Jamie Hyneman take two or three old stories, urban legends, rumors and other meme from pop culture and subject them to more or less scientific tests, eventually classifying them as “Busted”, “Plausible”, or “Confirmed.” Bonus points for blowing stuff up constantly.

    Here’s a prime example: can a tire blowout on a semi decapitate a nearby passenger?

    Honorable Mention: Rick Mercer

    Canadian comedian, actor, author and TV host, Rick Mercer, is like a Canadian version of Stephen Colbert and Jon Stewart, mixed up together in a big kettle of awesomeness.

    Here’s an awesome example of one of Rick’s Rants.

    5. Stephen Colbert

    Stephen Colbert, host of Comedy Central’s Colbert Report and author of I Am America (And So Can You!) attacks the rampant bullshit in politics and the media in a most unique way: by embodying it. Colbert espouses bullshit arguments with such vigor and sincerity that many of his victims don’t even catch on that they’re being mocked.

    Here is Colbert at his best, hoodwinking Bill O’Reilly

    4. Jon Stewart

    Jon Stewart is the Emmy Award winning host of The Daily Show on Comedy Central and author of The Daily Show with Jon Stewart Presents America (The Book) Teacher’s Edition: A Citizen’s Guide to Democracy Inaction. Left or Right be damned, Stewart points out the insanity of the system, its bullshit processes, and the chronic bullshitting of politicians with a grace and humor that captures everyone. Except the stupid. And the evil. And the religious. Ok, a grace and humor that captures everyone I like.

    Here is Stewart handing Crossfire its collective TV ass

    3. Michael Moore

    Documentarian Michael Moore, who came to the forefront of controversy with Bowling for Columbine and Fahrenheit 9/11, has returned with a new offering, Sicko, a film about the evil of privatized medicine. Moore earned his medal when he mopped Wolfe Blitzer’s ass all over CNN’s floor for misleading Americans and generally being an incompetent, unethical journalist. This footage is just priceless:

    Part 1
    Part 2

    2. Bill Maher

    Bill Maher, host of HBO’s Reel Time and author of the extremely witty New Rules: Polite Musings from a Timid Observer comes in ahead of Colbert and Stewart because, although he is also a comedian, he attacks with an entirely higher level of vehemence.

    Not everyone has the balls to call his country’s president and vice president traitors.

    1. Richard Dawkins

    Perhaps the greatest purveyor of bullshit in the western world is the religious right (which should be called the religious wrong as far as I’m concerned). The wholesale derision of arguably the most successful innovation in human history (science) by one of the most destructive establishments of human history (organized religion) is tantamount to intellectual armageddon. And Richard Dawkins aims to stop it. Author of The Selfish Gene: 30th Anniversary Edition–with a new Introduction by the Author and The God Delusion, Dawkins mercilessly annihilates bullshit wherever he finds it.

    Here’s a great clip demonstrating Dawkins’ attitude

    Who have I missed? Let me know in the comments.



    Three people arrested for using unsecured wireless internet, outdoors!

    Thursday, August 23rd, 2007

    Today BBC news reported that a U.K. man was “arrested after being spotted allegedly sitting in a street with a laptop using someone else’s unsecured wireless connection.” Apparently, at least two others have been arrested on similar grounds, those grounds being a UK law called The Communications Act (2003). This act makes it an offense to “(a) dishonestly [obtain] an electronic communications service, and (b) [do] so with intent to avoid payment of a charge applicable to the provision of that service.” It’s basically a law against quietly splicing into your neighbor’s phone line to get free long distance or into your neighbor’s cable so you can watch Mr. Bean for free. The fact that this is a result of corporations manipulating the laws to protect their profits aside,

    Does anyone else see the almost comic idiocy of what’s going on here?

    The BBC news tried to turn this into an ethical debate: if it’s a victimless crime how can it be wrong. But what about these poor schmucks who are facing fines or jail time for using freely a available service. Never-mind the cute analogies on the BBC page. The fact is,

    Using free wifi has nothing to do with The Communications Act!

    These guys didn’t dishonestly obtain anything. These guys didn’t lie about who they were - nobody asked! Its like when someone is giving away free movie tickets to parents - it’s not your fault if s/he doesn’t bother to ask if you are a parent, especially if there’s no sign up saying anything about parents. Second, what charge were they dodging? If something is just sitting there on the street, and using it does not seem to create any problems or losses for anyone, it is an accepted assumption in every society I know of that you can go ahead and use it. This is like being pulled over for not paying a toll on a bridge with no toll booths.

    This is clearly false arrest or intentional misuse of law. Either way, it’s bullshit. Listen up BBC:

    Nevermind whether using unsecured wifi is moral, arresting people under laws they didn’t break is definitely immoral.

    So how about giving the crown prosecutor a call and asking him what he’s been smoking?