Our problem at Everbread is difficult. I mean the problem our product Haystack solves. It's also complex.
To imagine how complex just look at
this presentation from ITA one of our competitors.
I was describing our Rotate into the Product Training program where new developers start in Client Integration for 2 months, move to Infrastucture (Operations) and then to Maintenance and Debug before getting to touch the core code. MY good friend who is a smart guy says to me: "If your product takes 6 months to get good at programming it, then I'd hazard a guess your software is too complex"
Now if he was talking about an IPhone Application, I'd agree with him. But in this case, we're are talking about a virtual rocket ship, or a Ferrari Steering Wheel, and make complex stuff like this is both complicated and difficult. Our Code is designed to work, it's not designed for developers to develop. I try to force the team to keep the architecture as simple as possible but even still, it's not easy, and it's not simple.
A blog post from Douglas Gorney
http://convo.us/conversations/4658-how-not-to-design-for-user-experience-the-ferrari-example refers to the idea that some think a 9 minute video on how to use a steering wheel suggests that the wheel is too complex. He quite correctly observes that this steering wheel is for
RACECAR Drivers and a 9 minute video on how it's used and how it was designed is not too much to ask for guys who drive at 200 MPH (360 KPH). I guess I'd say the same about software that crawls thru 100s of Millions of possible combinations of fares and flights. In order to do it correctly, in order to do it well, I guess it's worth waiting 6 months before I let you hack around on it.
Here is the original video on YouTube.
...