Your Project is Not the Science Fair

A Story about New Technology
May 15th, 2006 by Mike

One of more deadly sins that we’ve see too many times in the past centers around the application of technology for the wrong reasons. One of the underlying causes of this problem is the acronym and keyword-centricity of most IT recruiting processes. This story shows how a hot new technology is handled in a typical corporate IT environment.

Let’s imagine that the hot thing in IT is the brand new (and fictitious) programming language named Foo. The IT rags are all talking about how Foo will reduce development costs by 63.25%. All the banks/startups/etc. are all talking about standardizing on Foo. The tickets for Foo One World Conference and Expo down in Orlando are selling fast. Heck, it even got mentioned in Business Week.

The problem is that our friend Bob has never worked on the job with Foo. Sure, he’s done development in .NET, J2EE, Perl, and a plethora of other buzzword-compliant environments. But not Foo. All of the cool kids are using Foo, and Bob doesn’t want to miss out.

So Bob reads up on the Foo Developer Network website, and memorizes all of the marketing and advocacy propaganda. He’s even built out the obligatory “Pet Store” sample application on his personal network at home after the kids go to bed.

At the weekly staff meeting, his boss announces that he needs a new widget configuration website that integrates into their existing widget management database. The only problem is that they’re under a strict 90 day deadline to get this application scoped, specified, designed, and implemented.

Suddenly, the heavens part and a ray of sunshine slices through the sky and into the conference room window, shining down on Bob. With that, the now illuminated Bob stands up and says “I have a solution. We’ll build the new functionality in …Perl“.

Perl? But that’s over a decade old, has it’s fair share of detractors, and isn’t the hip thing right now, especially compared to Foo.

Yes, dear reader, Bob could have shoehorned Foo into the environment. But our friend Bob has been around for a while. He knows that the best practices for Foo are still being worked out. The documentation is still sketchy. Plus, there aren’t any robust unit test frameworks built for it. A year from now, that will all be different. But at that point, the new widget configuration website will be in production for nine months already.

Bob recommended Perl because most of the other widget management applications were written in Perl. They’re six years old, and rock solid. For Bob and his team, Perl isn’t flashy like Foo, but it’s predictable. And in a 90-day full-lifecycle project, predictability rocks. Hard.

Bob likes a lot of things about Foo. He even thought for a second about employing his new favorite language on this project as an interesting change of pace. But he thought about it literally for a second, as he remembered the words he mentioned to a gang of consultants as he escorted them out the door nearly two years ago:

“This Project is Not the Science Fair”

Even though said consultants were faced with a relatively simple problem, they built an N-Tier J2EE EJB application atop a bleeding-edge XML database using a custom persistence framework that they cut out of the back of a Captain Crunch cereal box, and still managed to use all of the Design Patterns in the book (plus a couple that they coined themselves) in the process.

When I say built, I use that term very loosely. It was more like “experimented”, or more accurately “played with”.

That project was a caricature of everything that can go wrong on a project. The “architects” (quotes intended) took a bunch of resume-enhancing buzzwords and catch phrases, and made a very convincing case for employing them on that project. That was pre-Bob, mind you. Because everything was brand-spanking new, some of the APIs were still volatile. This meant that there were plenty of excuses to build homegrown abstraction layers to go around. Yet the application still kept breaking. Go figure.

After nearly 9 months of delays, Bob was pulled in to clean up the Service-Oriented mess. Bob got buzzword-compliant, alright. In fact, he developed some serious credibility on the support forums, as he learned enough about the various APIs to stem the bleeding, and ultimately rip out the riskiest parts of the application.

The irony is that, in hindsight, that project was just like the Science Fair. The consultants were awarded the “prize” of having a bunch of new buzzwords added to their resumes. Unfortunately, Bob turned out to be the Science Fair’s janitor.

He didn’t get to build the tabletop volcano, nor did he get to set it off and watch it erupt.

Nope. Bob was the guy who had the honor of mopping the red goo up off the floor, and muttering to himself: “Never again.”

12 Responses to “Your Project is Not the Science Fair”

  1. Mike Coyle’s Weblog » Blog Archive » Introducing Approach.Botonomy.Com Says:

    […] We have some content already published, and other stuff in various states of completion. If you’d like to see an example, here is a Story about New Technology: Your Project is Not the Science Fair […]

  2. Clem Kadiddlehopper Says:

    Wow, you’ve accurately depicted the whole Future Combat Systems program, except that WE HAVE NO BOB.

    Your tax dollars at work, folks… BILLIONS of it, down the tubes.

  3. Retrospector Says:

    This article humorously reminds me of the basis on a recent post I made on knowing when to experiment and when to deliver. Regardless of language, I think the point is that you need to rely on what you know will make the deadline and what won’t. Understanding that the “Foo of the month” isn’t always the best choice isn’t emphasized enough. Nice post.

  4. Nilson Santos F. Jr. Says:

    Note that Perl is “over a decade old”, but it’s something that’s constantly developed and upgraded. So it’s not something of the past. It even offers all these bells and whistles of the new “Science Fair” languages if that’s what you want.

    This thing is a meme that should disappear. The upcoming Perl 6 is still Perl, but it’ll be a really different language. There’ll will be syntax changes (adding new operators) between Perl 5.8 and Perl 5.10.

    It’s not something static. So, there’s no problem in being “over a decade old” if you’re constantly upgraded (and, besides, one decade ago it already had all these features that are only now appearing in languages such as Ruby). In fact, the post points out, it’s even something good, because it’s a tried and tested technology.

  5. Nebulous Says:

    Hi. I also think that Perl rocks. Hard. Thank you.

  6. ghenry Says:

    Perl Rocks. But I mean, what about C? That’s old, but it’s still used. Heavily.

    Just stear clear from “Flavour of the Month” ;-)

  7. iris Says:

    well i thim=nk that Perl is cool and is educatine…thank you…

  8. iris Says:

    hey people i didnt know this thins actually worked!!!!!wow!!!!!

  9. Lauren Says:

    Nice Topic… this was a great Idea that whgat went wrong with the projects….I will go thru the critical chain again after reading this post.

  10. Science Fair Projects Says:

    Hey, I still think perl is great. It helps me with science data mining and XML databases.

    awesome post…

  11. Daniel Says:

    I couldn’t understand some parts of this article Your Project is Not the Science Fair, but I guess I just need to check some more resources regarding this, because it sounds interesting.

  12. viagraFarfoormacher Says:

    The approach.botonomy.com is interesting resource, thanks, admin.
    viagra viagra pills.

Leave a Reply