I have been building Web pages for myself, friends, and corporations since 1995, and I'd love to be able to say that I've never messed anything up. Of course that would be a huge lie. Here are some of the bigger mistakes I've been involved with - maybe you can learn from them. And if you have your own stories you'd like to share, I'd love to hear them, and I'm sure others would to. Submit your horror stories - anonymously.
Welcome to Web Development, Jenn
The first corporate Web job I had was at NETCOM On-Line Communications, Inc. My title was something like "Web Slave" or "Web Lackey" or something equally silly. This was back in the 90s when Web design was more a matter of deciding whether to use the rainbow horizontal line or which "under construction" image to use. The single-pixel GIF trick was in the future, and NETCOMplete and Netscape browsers barely supported images, let alone tables for layout. Ahh, good times!
You'd think that with the limited scope, it would be hard to mess things up, but I found a way. We were using a Web content management tool built by our Senior Web Technologist/Developer/Wizard, called HTDB. This was a really cool technology that combined HTML with C and database technology to create dynamic sites well before most sites were dynamic (or if they were dynamic, it was with animated images rather than actual dynamic content).
Of course, because it had so much power, it could break more spectacularly. I don't remember the particulars, but my first or second introduction to HTDB I was asked to edit the Homeport to remove something minor. I removed it - and the whole Homeport as well. For those of you who weren't NETCOM customers, the Homeport was where Netcom software dumped every customer when they logged in. So it was a pretty important page. Luckily it was only down 15 minutes. But it was the worst 15 minutes of my life.
Not Me This Time
Another mistake that happened at NETCOM involved our customer's Web pages. This time, it wasn't me, it was another developer who accidentally deleted the entire tree of customer personal Web pages. "Oops!" I knew about it because I had to restore the pages once we got them from the backup tapes. Lucky junior developer. So if your pages disappear from your site, you know who to blame - not me!
I'm Not Just Limited to Web Pages
At Symantec one day I decided to set up a script to send a content owner an email when her page was updated. This sounds like a good idea (or at least not a bad one) except when you then connect them to autoresponders. What I didn't know when I turned on the script (after testing it on my own email account) was that she was on vacation for four days.
She had set up an auto-responder that would reply to every email she got saying she was on vacation. And I had set up my script to send from an account that would send a "this is not a valid email address" autoreply whenever someone wrote to it. Now you can set up vacation messages to only go out to a specific email address once. But at the time you couldn't. Can you guess what happened?
I did get it turned off after an hour or so, but by that time her email had received probably a million messages. I also left like five messages on her phone saying things like "don't open your email" and "don't kill me". Luckily, she was in Toronto, Ontario and I was in Cupertino, California.
This One Wasn't My Fault Either
There was the day that the Marketing team set up a URL that was over 280 characters long. Domain names at the time had a physical limit of 256 characters, max. Plus, why they thought anyone would type in 280 characters into a URL line is another mystery.
When I say "set up" I mean published in a magazine. The week before the ad was to go out, they came to me and my boss and said "We need you to set up this domain to point to www.symantec.com". Telling them that it wasn't possible just made them take it up to the Senior Vice Presidents. Luckily, Michael, my boss, took the calls. I mean, how do you tell your CXO that it's just not possible to convert lead into gold when he's already paid for it?
I Really Have Nothing Against Canada
But one of the worst mistakes I was involved in was when my team replaced the Symantec Canada home page with an extranet home page. We didn't even realize anything had happened. The index.html file had been uploaded to the extranet page, and then when we checked, it hadn't changed. We figured it was caching and didn't think more of it. The designer working on the page just re-uploaded it (to the right place this time).
A while later, the Canadian content team called me in a panic, "what happened to our home page?" I looked at what was up there, and called IT to get a restore from the backup tapes. IT responded "sure, we'll be happy to - we'll have the backup to you in three days." Well, three days is an eternity for a home page. So we rebuilt the Canadian Home page from scratch (no one had any local copies because we'd just done a file clean up).
Some Things I've Learned
The important thing about mistakes is if you learn from them. Some of the things I have learned:
- Always have a backup.
It's not enough to rely on a tape backup. Make sure, when you change a page, that you have a backup that you can restore from easily. This is especially true if you work "without a net" - in other words, if you have only your production server and no staging server or QA server. - Work offline.
It may be faster to edit a page directly on the server, but if you make a mistake, you won't have a backup (or Ctrl-Z to undo). - Double check directories before you upload.
This is especially true when you upload a default file (like index.html) - as every directory will have one of those. - Mistakes happen.
Don't assume that it's the end of the world when a mistake happens. Just get it fixed and move on. No one was fired for any of the mistakes we made above. And we all lived through the embarrassment. - Be careful with the tools you have.
Just because you can use the unix command "rm -rf *" on a directory doesn't mean that you should. (For non-Unix people: rm -rf * will delete everything in that directory and below without any confirmation.)


