Poll: Your Worst Design Mistake
OK, it’s time to fess up. I want to hear about your worst design mistake.
“Design” in this case can mean visual design, user interface design, product design, code design (software architecture)… basically anything you determined how it’d be made or fit together.
I’d like to hear about something that made it to “production,” or almost did, not something that was strangled in its infancy. And it doesn’t count if you weren’t trying to do a good job.
Me First
I used to be a real procrastinator, so most of my worst designs only occupied my attention for a few hours before they were consigned to the “Old Projects” folder, and therefore never actually produced. But I want to talk about one that made it “live” (in this case, to the client).
Hello, yes, design me some crap…
My story goes something like this…
It was ~2003. I was doing some subcontracting for a friend. The friend’s client was a guy who owned a company that produced a tool that kept dog kennels cool. He was all excited; I was supposed to be designing his new logo and web site (the originals were truly disgusting).
I should have paid more attention to the originals. Before long, this guy had me adding gradients from “cold to hot” (blue to red), icicles, and more. At first, I found the entire process incredibly dubious. I was a bit cash poor at the time, though, so I said nothing. But near the end, I was kinda getting into it. Sure, it looked silly… but I told myself it was cartoony, charming. It’s not like anyone is expecting a morose professionalism from people who make ice pads for dogs, right? So I attacked what the client said he wanted with gusto.
The final logo did indeed have a gradient, and icicles hanging off it. The letters were all cockeyed. I thought it was kind of cute. The client was overjoyed—he LOVED it.
Until a week later, when my friend fielded a phone call from the client, totally irate, yelling about my “kindergarten crap” and demanding a refund. He didn’t get it, of course, but I was a little shaken anyway.
Hopefully we both learned a lesson. I’m not so sure about him, but I learned that there’s a “morning after” for designs as well as drunken debauchery. It’s a consultant’s job to make the client happy, but that doesn’t always mean doing what he wants today.
But wait, there’s more!
I feel like that’s not a dramatic enough example so I thought I’d give another one. I’ve been very lucky in that I’ve never made a design mistake that, say, cost people a bunch of money. That I know of, that is. That’d make for a better story, though. Now a business or technical mistake, that’s another animal entirely. I’ve made lots of big mistakes in those categories.
But I digress. Onwards, to more mistakenness…
Oh, we’ll just trust them to not be stupid (HAHAHAH)
Back in the bad old days when I did PHP consulting, I had many a customer decide to forgo form data validation (beyond empties) when they looked at how many hours it took up on my proposal’s breakdown. And, reader, I let them.
I used to be one of the bad guys.
Mea culpa.
Your Turn
Well, I’m feeling cleansed (in my dreams, by one of those $10 bars of soap, mmm minty).
Now it’s your turn.
And folks, please don’t disclose anything that might cause harm to somebody’s business 🙂
My worst design mistake ?? I created once ( 1998 ) a web application using … ( it’s really scaring.. ) FRAMESET !!
mea culpa
Dont know if its my worst design mistake but its relatively recent. I decided to implement a web project in .NET using the Mono framework. sounded like a great idea in order to get a high degree of componentisation and re-use. Why was this bad? well it was over architected, in fact hugely over-architected. We’d assumed the re-use was an important issue, and filed to cotton onto the fact that it really wasnt. We ended up spending ages designing and building re-usable controls and plugging them together to build the front end for what was a relatively simple web based app.
When we finally realised this me and colleague re-wrote the entire app using php in three days, and happy to say its still being used without any issues.
A few years ago, I was designing a web application to help manufacturing workers get their information "more quickly". This was my first big web project and, being green, didn’t plan the application as well as I had hoped. My first function was called ‘drawHeader’. I figured I could include a big "functions" file and make all of my pages by calling various scripts to generate my pages’ HTML. In PHP, it’s pretty easy to escape into and out of HTML…Sooooo, drawHeader got very big, bulky, and required no less than 10 arguments for page title, script includes, meta tags, etc. I followed it with a drawFooter, drawBody, and other various "draw" functions. In the end, each individual page consisted of insane looking function calls:
drawHeader(‘title’,’script src="/path/to/script/"’, etc); drawBody(‘insert page content here’); drawFooter(‘Copyright text’,’email address’,’address line 1′,’address line2’….etc etc );
You get the idea. I was the developer, tester, and project manager – armed with an out-dated PHP book, some crude drawings from sales, and a requirements doc written on a napkin.
I started a re-write after version 0.1 hit the shelves (I had gained a ton of experience with PHP and learned some valuable lessons through forums, courses, books, and lots of practice) Version 0.1 is still running today in a production environment.
This is the best one I know of. I once took over the marketing position at a company (that shall remain nameless).
The person before the person I replaced made quite a big mistake. (We’ll call her Betty to be nicely anonymously generic)
The CEO is a brilliant guy, had all kinds of great ideas. He even had a copy of Macromedia Fireworks that he’d use to sketch his ideas.
The business was something to do with selling them your old cellphones, so the CEO sketched together his idea for a postcard that would be printed and snail-mailed to thousands of customers as well as emailed to their massive email lists. Betty* was supposed to use that idea to produce the final design using high resolution stock photos and nice typography and all that jazz.
Betty* got the sketch from the CEO with pretty clear instructions on what to do with it. But she just sent it out for print asis. Not only that but she sent out the email newsletter to the list without getting approval or fixing typos or anything.
As if that all wasn’t bad enough, when the CEO got his copy of the newsletter (he made sure he was on all the email lists) he explained to her what she had done and why that was such a massively bad thing to do, but he wasn’t going to fire her (yet) and give her another change.
So, can you imagine what she did?
She his the old "Recall Email" thing** in outlook for the 100,000 or so emails that had gone out!
**(Outlook has a feature where if you send someone and email in your intranet, you can recall that email from the exchange server before the person reads it. But if the email is sent outside of the intranet into the outside world, then the recall message is sent. The recall message is some long winded email explaining that the original email was recalled by the sender, yadda yadda)
Ahhh, good times™
*(NOTE: I am not Betty)
I designed a poster for a company that worked in Purdue’s Research Park. It was to celebrate the firing of the largets thruster ever at Purdue’s aerospace research labs. We found out the word "University" was spelled wrong after we got htem back from the printers. Ooops.
I was working on an open source web application (early days of Java/JSP) with a friend. Most of the work I was doing was back-end stuff, so I was happy to let my friend do some of the screen design, etc. The first version of the app rolled out to a few companies, and they all starting complaining about the colour scheme of the UI. Remember this lesson: Never let the colour-blind guy pick out your web app’s colour scheme.
I implemented a conference managing system. I still use it and am quite fond of what can be done with it – and, of course, <a href="http://www.comas-code.org/">you can download it</a> as well. My mistake? I started with quite a rigid vision of what a conference consists of, and implemented a system for <em>exactly</em> that conference. Then I decided to make it flexible, allowing for all kinds of fields to be added, and depending only on the most basic stuff. Then, of course, I found out the templating engine I started with (and not because of choosing it, but because it was the first I came across) was too stupid to handle this (HTML::Template – Great for very small and limited things, but terrible for having some more intelligence). Then… Well, I started reengineering the whole front-end. And it’s now a mixture of working code and crap code. And it works, as long as your name is exactly the same as mine and you are willing and able to dig into its internals just to change what should be a view.
Awesome! Keep it coming guys & girls.
Listening to your guys’ mistakes have made me remember some more of my own… I can’t offer particular examples, but many of them just involved overengineering in general (yeah, Gunnar & Nadeem 🙂
And for you, Lori – http://www.guuui.com/images/20020923.gif
My worst software design mistake was shared with a couple of my team members. We decided to create a domain-specific language (DSL) for the type of business application our company developed, in order to reduce the code burden for application developers. That approach has worked well for me in other cases, but in this case the domain proved to be much too large, so we kept adding features to the DSL to accomodate needs, until we ended up with the most laughable beast of all: a generic DSL. It turned out that 90% of the time the application programmers still had to code just as much, plus we had to support the DSL layer. Needless to say, it was shortly abandoned.
🙂 so tough to chooose… they’re all so good.
I took a project to design a network health monitoring system. Outside of basic system health stuff, and some tie-ins to the application layer, they didn’t really have any ideas about what they wanted. Asking them to be more specific, they just said to make it general enough to attach anything they might need to.
Being an idiot, I took that as a design spec, wrote up a plugin interpreter and DSL for common tasks, (and normal stuff like paging and emailing reports) and presented it. It was exactly what they asked for, but not what they wanted. Turns out no one there could script! You have to get the specification down, and I should have realized that. 🙁
I wrote a CMS in PHP, instead of using GET and POST params I used ENV[‘PATH_INFO’] to pass the paramaters in and around.
You had to split up the path info string (which looks like this /pages/update/x/y/z) and know what index was which data.
Before I had even finished the project (there were only a few pages!) it was a pain in the arse.
Some poor bloke ended up having to maintain it and I think the rewrote the thing 🙂
My worst design experience is happening right now. I am doing some overflow work for a local web development company, the project is a pretty standard site with a CMS for an automation company. I was supplied with an MS-Word document that had the "layout" of the site they had in mind. Just imagine, Times New Roman, 16pt, bold, underline, and a home-made looking logo right out of the early ’80s. I (as usual) took the supplied materials as simply a guideline of what the client was looking for, after researching their market, customer base and competitors I created a very professional looking comp of the home-page, and updated their identity to be on-par with the rest of the world. Expecting to hear the usual, "It looks great but what does ‘Loreum ipsum’ mean?" I was greeted with a "This looks nothing like the design we supplied you." Long story short, after many frustrating days of trying to explain to this client what good design is and why it is important that he trusts me to create something for him, I simply gave up. I created the most hideous (albeit standards compliant) design that I have ever created, I cut and pasted his ultra-low-res 16-color GIF logo (the only one supplied) and I recreated his MS-Word layout to a tee in an effort to mock him by following his instructions literally. Then he said I LOVE IT, and I said (to myself) F**K. So now I am finishing up a website, whos interface is one of the saddest excuses for design I have ever let out my door. The saddest part is that when one of his customers or buddies says "wow man, your website looks like a complete piece of crap" I am going to be at fault. At least he pays his bill 😉