Friday, March 21, 2008

Unintended Consequences

When software developers design and code programs, they usually have a pretty good reason for each feature they add. Many times they have dreamed it up, sometimes a customer requests it, sometimes they see it in another program.

One of the coolest things about designing/writing software is seeing what customers actually do with a feature. The initial intent of the feature (the reason the designer added it) is pushed way beyond what the designer thought it would do.

The HTML object in Web Studio is a great example. We originally thought it wouldn't be necessary since we thought our customers wouldn't know, or want to know anything about HTML.

In 1997 we were having a meeting with Adobe and the guys who wrote one of the original web design programs, Adobe Page Mill.

They asked to see how people could add/edit HTML to a site. We told them there wasn't any way, our customers wouldn't want that.

They though we were nuts not allowing access to the HTML of the site. We told them they were nuts allowing access to the code. We felt it was similar to allowing customers access to the code for Microsoft Word, or Photoshop. We knew they were nuts.

Well, we gave it some additional thought after the meeting. And decided it may not hurt, much, to allow customers access to the code.

Boy were we wrong, it ends up the HTML object and the associated Web Studio Expansion Architecture was one of the most important features in the program. It allows anyone to add anything they want to their site, even if it isn't a built in function in Web Studio. Boy those Adobe guys are smart :)

So what's the point?

We just ran across an unusual use of another feature we added in a Service Pack for version 4.0.

We added a Website ID number to the HTML code. We didn't know what it would be used for, but based on our surprise with the HTML Object, we knew someone would figure out an important use for it.

Guess what? That's right, someone smarter than us has figured out what to do with it.

Seems this customer had his website stolen and he wants to prove he was the original author of the site. Well, here comes the Calvary to the rescue (trumpet sounds the charge here), the Website ID is the key to his case!

Each Project file created in Web Studio has a unique ID number similar to our registration numbers (you know, those stupid 26 characters "numbers" filled with random letters and numbers).

That ID number is permanent part of the Project file and is added to the HEAD portion of the HTML for all websites create by WebStudio. The ID for a specific Project never changes, and each ID is unique.

The customer now has proof that the website is his, via the ID number and the Web Studio Project. Case closed!

Hmmm, maybe we should do some marketing on this feature, I can see it now, "Thief's beware, this site protected by Web Studio Site ID Technology"!!

Ahhh, other the other hand, maybe we should just go write some new features that you guys will put to uses never thought of. Yeah, that's what we should do.