Monday, March 20, 2006

Oops, my bad...or location, location, location.

I've spent some more time clicking around the 37signals part of the blogosphere, and have realized that I accidentally stumbled into an area that's more or less focused on web development, social networking, game theory, etc.. It's not actually meant to apply to us humble, fuddy-duddy IT folks. After all, I am significantly older than 15. More importantly, every single one of my users is, as well.

Which bring me to my next pet peeve about the internet:

Location.

In time as well as space.

You see, people tend to see things from their own perspective (duh). This includes their physical location, and the current point in time - the "here and now". The Internets (and software, by extension [actually, abstractions, by further extension]) exist outside of that little bubble we affectionately call "reality".

But people forget that. Or they don't really grok it to begin with, I don't know. Doesn't matter. The end result is that I go to google, say, a small-time band I haven't seen or thought about in a while, and I find their site, and on that site is a link entitled "News" or "Gigs" or somesuch. Often the link betrays the underlying problem by declaring itself "Upcoming Gigs". That should be the tip-off right there. But it isn't. [heavy sigh] It never is.

You know what happens next. You click on the link (emboldened by the sudden, unexpected shift into 2nd person), and he gets (just kidding), rather, you get some text that delightfully informs you that Bill Blender and the Purees will be performing on April 17th at Bobos on 4th street.

Great, now if they'd only specified April 17th of which year??? Or, indeed, 4th street in which city?

When they're publishing this information, they're thinking about things from where they are today. April 17th is next month, and 4th street is near that place with the really cheap Turkish food. They are not thinking about the information staying around long after it's exhausted its usefulness, which it undoubtably will.

Nor are they thinking about the fact that some people will find their site via a link on some other site and, prior to this chance electronic encounter, may not even know the band's name. Whaddayamean, which town? Kalamazoo, of course.

This problem is not limited to drug-addled, rock star wannabes. It's not even limited to web pages. It occurs any time information has a scope wider than a single conversation.

If you work in IT, you've probably got permanent ridges in your forehead from banging your head against this particular issue over and over again. The bright side is that as long as people continue to fail to grasp this, they will also continue to fail to dispense with our jobs.

So, exactly what does this have to do with 37signals? Well, I started this little rant a few posts ago, when I stumbled upon one of their posts about the uselessness of functional specs. I railed on (in my own quaint way) for a bit about that before realizing they weren't actually talking to me. The Web's funny like that, innit?

I assume all this will be resolved in Web 2.0, right?

Right?

[tee hee]

An answer to my own question

OK, so previously I asked a question. I suppose it was rhetorical. But some discussion is in order.

I suppose the obvious answer is that they don't know that they're wrong. Heck, for their circumstances, they may not be. Which is nice, but it doesn't help me. When all you have is a hammer, every problem looks like a nail. The corrollary is that when all you're trying to do is nail some stuff together, a hammer'll do the trick every time.

The response might be to simplify as much as possible, until the solution begins to looks "nail-ish".

Yeah, right. How exactly do I apply these principles to the practice of airplane-building?

Try creating enterprise software with that approach. You know how far it'll get ya? Well, pretty far -- as far away from that project as the boot out the door will carry you (allowing for weight and wind resistence, of course).

Say it with me now, "There is no One True Methodology". There are only ideas, principles and practices.

The rest is consulting.

Why can't they just admit it?

Anyone who says they know how to create quality software is either a) lying, 2) wrong, or iii) trying to sell you something.

We know - we've been here in the trenches, pulling our hair out, trying to get it right. BDUF? NDUF? Specs, no specs, bare specs, x-ray specs. Evolving design? Prototyped delivery?

No one really knows. Most typically, I suspect, they know what went wrong in their last project and have some Big Ideas about how they would've done it better. At most, they might know a few things that actually worked for them once before. At least these might have the added benefit of also being true.

I'm a data architect, so I intended this blog to mostly focus on data and SQL issues. But I'm always searching for that "higher process", that mythical "better way of doing things", so I tend to let myself get sucked into these ideological discussions. So what the hell, my first post is just a link to an interesting post on 37signals.com about specs.

http://www.37signals.com/svn/archives/001050.php

The 37 folks seem to be all about the XP/Agile stuff that seems to be all the rage with the kids these days. Who knows, maybe they're on to something. Lord knows I've seen my share of useless specs, and reams of documents that didn't move us one inch closer to the ever-receding-into-the-distance goalposts.

But I can't seem to bend my brain around the concept that the answer to poor documentation is none at all.

Reading through the comments, I was glad to see someone point out the novel notion that, hey, some projects are different than others. Web development is not the only development being done. Some projects just won't spontaneously reveal their True Nature through the clever use of drop-down boxes drawn on napkins. Some projects actually require some measure of ...[shudder]... design.

Of course I'm intentionally oversimplifying things. No one's advocating doing no design at all. But those of us who dabble in the information arts always get a good chuckle out of proclamations that "the UI is the app". We know better. We know that it's the data.

Everything else is just representation.