Delta Airline's ticket kiosks apparently were designed and built by 1st year CS students using Visual Basic. I'm guessing that's the case based on the fact that they apparently have never heard that when you sell someone something, it's bad form to take their money and not deliver the product. They don't know that you should wrap such processes in transactions to ensure they're atomic. Someone needs to give them a clue.
Last Friday on our way home from San Jose, Steve and I had the chance to get on an earlier flight for $50 each. I was checking us both in, so I popped in my credit card for the $100 charge. The kiosk said "We're sorry, we can't read your card. Please try again." So, I did. The card failed the second time, so we tried Steve's card. The machine didn't like Steve's card either and after showing the same message, it printed out our original tickets and sent us on way. We went to the counter and bought the upgrade.
This morning, Steve was looking over the credit card bill and, surprise!, the three failed upgrade purchases were charged to our cards even though the machine said the cards were unreadable and didn't deliver the earlier flight.
I might forgive a small startup for not getting transactions right, but Delta must have a few people who have heard of them, understand their importance, and can get the kiosk software right. Maybe I'm giving them too much credit. I couldn't imagine a big company in 2011 that has issues with transactional integrity on simple purchases. I've always assumed they'd get this much right. Maybe I ought to start questioning their ability to safely fly an airplane as well.