by Pavel Simakov 2007-11-28
I recently visited a major San Jose attraction Winchester Mystery House. Hesitant and skeptical up until the beginning of the tour, I was instantly blown away by the significance of this landmark. I now insist that all software engineers of Silicon Valley and beyond regularly visit this attraction as a part of their professional training.
On this tour, you are taken around this huge house. You can see first hand all the design decisions that the principal (Sarah Winchester, Winchester Rifle heiress) made. You can see both the inside and the outside. You walk as a group from a room to a room and exchange your feeling with each others. Not quite so in the software.
What blew me away, you ask? I was stunned how the evolution of the Mystery House reminded me the evolution of many software engineering projects. The Winchester Mystery House is a metaphorical story of a software project completed without the design skills or a strong architectural vision. The house has been completed, it is beautiful in many dimensions and brings crowds daily, but it’s also ugly, dysfunctional and plain dangerous to live in.
When you visit the house on a guided tour a few things might raise your eyebrows. These are essentially the same design issues that we find in many software projects. Let me start with the executive overview:
- a psychic suggested the project
- the funding came from existing established brick and mortar business (the rifles)
- the principal decision maker (the widow) knew four foreign languages, played three instruments and went to the best private school, but had no training in architecture or engineering
- takes 65 minutes to get a brief overview of the property from knowledgeable stuff; takes 2 minutes in any normal hotel or house
- no original plans or blueprints to be found anywhere; none were given to the visitors even now
- the daily plans were drawn by the principal personally in the evening and given to the workers next morning; workers had to interpret the drawings in solitude
- for every prior mistake found, there was fix suggested next morning
- there was/is a reason for everything (at least in the mind of the principal); the current employees have 'solid' theories why certain things are the way they are, but they don’t realize how far those theories are from reality
- all employees used to live and eat on premises for free
- the activity was going on around the clock; each shift lasted 24 hours
- the construction lasted for 38 years with 24/7 labor, but never ended
- if an employee did not find the principal within 5 minutes of a warning buzz he was fired (a.k.a. fix this bug in the live site now)
- the project cost was an arm and a leg
- all windows imported from Tiffany&Co (a.k.a. no one ever got fired for choosing IBM as a supplier)
- really beautiful outside on sunny day; major attraction and a success story thought the history all the way till present time
- the house had no practical use of any kind except being a perpetual effort of a lifetime for all parties involved
The lack of the design skills also resulted in many funny and some scary deficiencies:
- don't lean against the wall or you will fall trough
- if you go through a door to nowhere, you will fall 20 feet to your death
- some of the columns were installed upside down
- there are many literally infinite loops in the pathways leading from room to room
- some pathways are way too long and force you half way around the house
- there are 40 bathrooms, but only one shower
- doors open into the walls or ceilings
- closets open into the doorways
- there was a chimney that was not quite finished, so none of the connected furnaces could be used
- the stairs were customized to one specific customer, rather then being generic (widow had an arthritis and liked small steps)
- no guests room were built in the house (a.k.a. no real customer ever used the product)
There was much more, but I got tired of taking notes on my Blackberry…
Being a software architect myself I always find it challenging to continuously explain what architects actually do on the projects and why the software development teams can’t just live their lives without them. Now the answer is simple. If you want to know why architects are important simply visit the Winchester Mystery House. Have you seen the Louvre of Paris, have you walked around the Golden Pavilion of Kyoto, have you experienced The Grand Palace of Bangkok? Have you been stunned by Winchester Mystery House of San Jose? Welcome to the software baby!