As a freshman in College I took an intro sculpture class called ‘3D Design’. It was fun but plagued with the indifference of students who had to take it to fulfill a requirement. One of the projects was to design a bridge out of only centimeter thick cardboard and hot glue. It was to support a brick between the walls of a hallway. The designs the class produced ranged from successful ladder/tube structures to unsuccessful cardboard as string nets. My bridge was an arch supported by a web of trusses and triangular supports. Not only did it hold one brick – but it was able to hold three more before even showing any sign of stress.
Not extra credit anymore
Some might say I have a problem over-designing. I try to think things through to the point where I’ve created openings for every possibility I can think of and abstractions for every layer. When working on a school project ‘over-design’ can be a virtue – a source of extra credit. I’ve found that in the real world, over-design can be a real problem.
Over-design in retail
A new restaurant just opened up across from the office. I saw them working on it and building though the summer. The sign on the door proudly letting us know that a ‘Grill and Creamery’ was coming soon. I’m a little worried they wont last though the winter. I’ll be honest I haven’t looked at their costs or revenues, but just general observations have led me to believe that this a dire case of over-design. Walking inside it looks like they had custom fixtures and counters made, not to mention all the little details. Yeah, its nice – but taken in context this all seems like a mistake. First, consider the neighborhood. They’re on the wrong side of Manhattan bridge to really get the families, and the lunch crowd these days is a lot less yuppie and a lot more blue collar. Also, perhaps because of waiting for all this custom work, they opened their doors in October, hardly the time to open an ice cream store. When you place an order you have to confirm the details of your order on a touch screen by the register.
All of these are symptoms of solving problems that don’t exist. Its one thing to preemptively close open loops and sew a patch before the whole gets to big. Its an entirely different to spend time, money, and energy eliminating ‘potential’ problems.
In coding and the web, over-design can be a feature. The fact that you’ve designed for every possible user interaction is zealous though sometimes worthwhile. There is still a line, though, where too much thought and debate over ‘potential possibilities’ can halt a project. Agile development is not under-designing – it’s riding this line. Determine the problem and work towards a solution, solving for possibilities and exceptions on the way. You’ll never be able to catch every possible issue in the initial design. There are always surprises. However, if you or your team is fast enough, you can close gaps as they arise, and sell that ice cream in the summer.
Photo Credit: http://www.flickr.com/photos/stoner/117939136/