Just a small request
Yes, this is a second posting about Working in Keystone, because I've been up here for 5 days now spending roughly 12 hours a day in a cramped conference room with 6 of my favorite developers. Kinda derails my ability to think about anything else.
So that I don't bore you with the nasty little details, suffice it to say that building an application whose primary function is solely to interface to two legacy systems is a whole new ball game. On the one side: an archaic AS400 reservation system built 30 years ago. This is the good news. The bad news is on the other hand we have the Apollo GDS, one of the behemoth airline reservation systems built in the dark ages and bastardized time and time again to keep up with an ever changing industry. Have you ever watched a travel agent book flights? Go ahead - step around the computer screen someday, you'll be dazed.
But we had a secret weapon - Apollo was very proud of it's new Web Services interface that was bringing their system up to date with technology from this century. We'd gone into this project with expectations that this new interface was going to make airline reservations a predictable, reliable venture. HA. Little did we know the new interface really is somewhat unproven, very much undocumented, and everybit as subject to the gyrations of the native system as the native system. The biggest surprise was that we did kind of think that the Apollo people would know how it worked. HA HA.
Fortunately Vail contracted with Apollo to have top tier support. Quite often the process went: we'd ask how to do 'X'. We'd be told to do 'MNOP'. We'd do 'MNOP' but would not get what we wanted, so would ask for more help. They'd come back with do 'QRSTUV'. We do that, with still no better results. Sometimes after a few revolutions they'd come back with a whole new idea sure to work: try 'MNOP'! Trial and error is the rule of thumb.
It's bad enough to try and interface to one system that isn't well understood, but when that system in fact interfaces with alot of other systems - i.e. all of the airlines' individual reservation systems - the pain reaches magnificent thresholds. Each airline decides what they are going to do. I kid you not, one day a month ago we were notified that as of 4 hours after notification one airline had declared that they were initiating a $7 fee for anyone making reservations for their flights through a GDS. This fee, however, could not be handled adequately by Apollo, and therefore some views of fares would include the fee and others would not. There were quite a few raised eyebrows not just within our group but throughout the travel industry in general, I gather, to the extent that 3 days after this fee was initiated it was abandoned.
Apollo does have a test system against which projects like ours are allowed to test. We didn't really understand, then, why they wanted us to stick to rules like giving all of our passengers the last name of TEST, and to make sure that we always canceled the tickets we booked. Until we found out that while Apollo has a test system, not all of the airlines do, so even in test we might be booking real tickets! Suddenly we got a lot more careful.
But then we were told that the test system doesn't support all of the features that the production system does, so at one point we were instructed to do all of our testing against production! This is such an enormous faux-pass in the software world we were really stunned. The point of test is that we don't really know what our code is doing and we would rather not cause trouble in anyone's live system. However, we had no choice. Apollo gave us a test code that would help airlines identify our bookings as test.
That lasted about 3 days before the calls started coming in. Seems that American's system, for what ever reason, was not recoginizing our test code as such, and we were actually booking seats. Not just seats mind you - we have automated tests that run our code many times a day. We were booking entire flights. Yes, we are doing our best to cancel them, nevertheless American was / is none too pleased to see that much traffic. We were asked to avoid testing against American Airlines.
Then Alaska Airlines.
But yesterday's call surpassed all others. Melanie, Vail Reservation's asst manager, got a call from a guy in New Zealand telling us to stop booking flights on Air New Zealand. Seems that our testers were sending through special requests - for instance that a paricular passenger would like a vegitarian meal or needs wheel chair assistance - in lower case text. Yessiree, this alone is enough to crash this airline's resevation system. No one told us this should be upper case, Apollo has no trouble with them. Not only that, but their system crashes again when we send a cancel message! He called us mid morning here in Colorado - you just know he was yanked out of bed in the middle of the night because their system was being bombarded by lower case special requests.
We never knew we weilded such power.