Slashdot Mirror


Risk Management - A Cautionary Tale

Mr. Ghost writes "By now many people have heard about the fiasco and financial blunder Comair had over the 2004 Christmas holiday. An article on CIO provides a timeline of the decisions that led up to the system failure costing the division of Delta Airlines $20 million. The article points out the need for proper risk management and what can occur when a risk analysis is not performed or ignored. It goes on to mention that although this was a very public failure, this type of system failure can occur in other companies." From the article: "The prospect of replacing the ever-maturing crew management system was floated again the following year, with plans laid out to select a vendor in 2000. But that didn't happen. Over the next several years, Comair's corporate leadership was distracted by a sequence of tumultuous events..."

37 of 203 comments (clear)

  1. Yep by Anonymous Coward · · Score: 0, Insightful

    Hindsight is 20/20.

    1. Re:Yep by airrage · · Score: 4, Insightful

      To me, when you look at code you always want to rewrite it thinking you could do it better. But if you look at what they had to work with, you realize most coders write (at a given time), write pretty good code.

      This software has been working for over 20 years! What will your code look like in 20 years? I doubt it has the same track record. I'm not sure foresight was a problem. I think they did the best they could with language and hardware of the day.

      The comair meltdown wasn't a software problem if you ask me, it was the business changed.

      --
      "This isn't a study in computer science, its a study in human behavior"
    2. Re:Yep by EnronHaliburton2004 · · Score: 4, Insightful

      How could nobody in 11 years see that the changes were counted with a 16 bit signed integer?

      If this company was run by a typical big company, somebody DID complain about this 16-bit signed integer. Chances are, they were told to shut up about it and not rock the boat. This frequently happens when someone points out a bug which would require a fundamental change to the system.

      Most companies only like employees who think inside the box, despite telling people to think outside the box.

    3. Re:Yep by Anonymous Coward · · Score: 2, Insightful

      Well, IIRC, the problem was that the 32K was known, and not important and the crew affectation *changes* were WAY under that number.

      But during the holidays, the storm forced a *lot* of crew *changes*, several time, and they went outside the limit.

      It seems that the feeling was "there is no way we have 32K *changes* in a single month", and /that/ was proved wrong.

    4. Re:Yep by ucblockhead · · Score: 2, Insightful

      Probably because when the code was written, there were only 25 planes, so 32,000 changes "would never be reached". There's probably a decent chance the line had a comment that said something like "// Make sure to change this if we ever need more than 32,000 changes!".

      Then, no one looked at the code for 11 years.

      That's how this happens. Not because people are stupid, but because people simply aren't looking at the old crufty code. They're too busy with new projects.

      --
      The cake is a pie
    5. Re:Yep by Marillion · · Score: 5, Insightful

      First thing 32767 changes are a lot. A whole f*ck*ng lot. It averages over 1310 changes per day. For a company that flys over 1300 flights a day, it means they averaged a change every flight every day. That's insanely high.

      I'm personally getting sick of people asking about backup systems. It was a problem with the data. Too much of it. Given the safety and goverment oversight that hinges on this data, you don't mess with it. Any backup system, whether one or one hundred backup systems, when presented with the same data, would also fail.

      The DOT report issued back in March (sorry don't have karma link handy) said neither Comair nor SBS (the closed source vendor that supplied the application) were aware of the limit.

      Eric Bardes (Yes, the one from TFA)

      --
      This is a boring sig
    6. Re:Yep by mankey+wanker · · Score: 4, Insightful

      Is there no way to moderate a post simply "odd"?

    7. Re:Yep by alienw · · Score: 2, Insightful

      That's exactly the same reasoning that leads to problems like this. We've all heard that 640k should be enough for everybody. A good rule for counters and bit values is to go several orders of magnitude above what you think will be the maximum possible value for that counter.

      One or two changes per flight is unlikely, but possible. Yeah, it's insanely high. Yeah, such a thing might only occur once every 15 years. However, the value should have been a 32-bit unsigned integer instead of a 16-bit signed integer, because a thousand of changes in a month is well within the domain of possible values. Also, these types of limits should be conspicuously published in a specifications sheet, just like every other industry does.

    8. Re:Yep by Shotgun · · Score: 5, Insightful

      I worked for IBM, coding in the mainframe networking department. Their motto should have been, "Don't change anything...it's working."

      I got irritated. I would find stuff that was just STUPID. Horrendously mangled logic. Algorithms from other parts of the code applied completely wrong. Whenever I tried to improve the code I got the "It's working. Don't change anything" line. I left, determined to find a job where I could actually write code.

      That was several years ago. I've gotten smarter since. I've worked on several large-scale, 5-9's systems. After several major and minor fuck-ups, now I know....

      If it's working, don't change anything.

      --
      Aah, change is good. -- Rafiki
      Yeah, but it ain't easy. -- Simba
  2. Why didn't the CIO yell louder? by winkydink · · Score: 5, Insightful

    Yes, senior management was distracted, but it's the CIO's job to warn senior management and the board about risks to the business as well as their liklihood of happening.

    --

    "I'd rather be a lightning rod than a seismometer." -Ken Kesey

    1. Re:Why didn't the CIO yell louder? by Knara · · Score: 4, Insightful

      I'd agree, but the fact that it was written in FORTRAN and they didn't have a single maintenance developer (even if it wasn't that developer's primary role) assigned to it that *knew* FORTRAN suggests that a whole lot of "buhhhhhh??" going on in that particular IT department.

  3. Interesting Technical Detail ... by rewinn · · Score: 3, Insightful

    From the article:

    As it turned out, the crew management application, unbeknownst to anyone at Comair, could process only a set number of changes--32,000 per month--before shutting down.

    Sounds like some sort of overflow problem. Hmmm....

    The big issue is, of course, the business units and IT playing "After you, Alfonse..." but it's fun to seek out the pebble that set off the avalanche.

    1. Re:Interesting Technical Detail ... by UdoKeir · · Score: 2, Insightful

      And yet the idiot from EDS has this to say:

      "These systems are just like physical assets," says Mike Childress, former Delta CTO and now vice president of applications and industry frameworks for EDS. "They become brittle with age, and you have to take great care in maintaining them."

      You can easily run software for 20 years and it will not fail so long as you don't exceed its operating parameters. That's also assuming you can source replacement kit for hardware failures.

      Software does not age.

    2. Re:Interesting Technical Detail ... by josecanuc · · Score: 4, Insightful

      Exactly... The article author seems to point to the fact that the software was old and just waiting to die...

      Becase of the fact that NO ONE knew of the particular limit that was exceeded, those who were supposed to calculate risk never knew what the tipping point was.

      All they could say was "our software is old, someday it may not work any more, but I cannot say for what reason, because I do not know FORTRAN."

      How the hell can you calculate risk if your only input is the chronological age of a software system?

    3. Re: Interesting Technical Detail ... by Alwin+Henseler · · Score: 2, Insightful
      Sounds like some sort of overflow problem. Hmmm....

      That depends. I suppose you could call the software involved here mission-critical. In that case one might expect limits like the ~32000/month to be documented (not in this case if I read it right). If that limit had been documented, then the failure would not have been overflow, but not RTFM/using the system out-of-spec, which is management/operator error.

      Also it matters how exceeding a limit is handled (graceful degradation). Did this system say: "I'm stuffed, I can't take no more input for a while" or did it say "Oh dear, I'm confused, I'll be doing totally silly crap now". In the first case, the failure is partial and you can still get some work done. In the latter case (=what happened here?), you're totally screwed once you reach that limit.

    4. Re:Interesting Technical Detail ... by BattleTroll · · Score: 4, Insightful
      "How the hell can you calculate risk if your only input is the chronological age of a software system?"

      That wasn't the the only input in this case. In fact, you don't have to know the gory details of the implementation to determine risk, just the business impact of a problem to the system.
      • Since no one at the company understood the language used, it stands to reason no one understood what the system was doing. Risk: Medium
      • The system was mission critical to the performance of almost every other function of the airline. If the system was lost, the airline was hosed. Risk: Critical
      • They had no failover plan in place in case the system went down. Risk: High
      • No load tests were possible since they only had the one system in place. Without load testing the only way to find out the system fails under load is to wait until it fails in production. Risk: High
      It stands to reason there were other risks involved that weren't identified in the article.
    5. Re:Interesting Technical Detail ... by Peter+La+Casse · · Score: 4, Insightful
      Software does not age.

      Software does age. As a program grows older, people change it, its inputs and how it is used, and the older a program gets, the less the people making the changes are likely to understand it.

      In addition, some bugs don't manifest themselves under usage patterns from 20 years ago, or when the software is run on hardware from 20 years ago, but they do manifest themselves under usage patterns or on hardware that's in use now. The more you change, especially without understanding all of the ramifications of that change, the greater the risk for error.

      That's what software aging is.

    6. Re:Interesting Technical Detail ... by ScuzzMonkey · · Score: 5, Insightful

      "They had no failover plan in place in case the system went down."

      With that, you've hit the heart of the matter, and what the article should have focused on rather than the "old software breaks down" BS. This was a bug which could have hit at ANY time since the software was installed; it was an overflow, not a rusting subroutine that fell off. I can't personally see any way that they could have foreseen this particular problem but when you have a system that is so critical to your operation, you don't look for problems it might have--you look for alternatives to fall back to when it DOES have problems.

      You never see them coming. But you'd better plan for them anyway.

      --
      No relation to Happy Monkey
    7. Re:Interesting Technical Detail ... by Peter+La+Casse · · Score: 2, Insightful
      That's not aging, that's modification.

      That's what software aging is. When people talk about software aging, they're not talking about something that doesn't exist, they're talking about the effect that I described: ongoing changes with less and less understanding of the system.

      We're talking about the same software running on the same hardware for 20 years. If nothing changes, it will continue to function.

      Change is inevitable. It is common and reasonable to expect change in the hardware, the inputs, the business models and the code itself. It's not reasonable to expect the same software to run on the same hardware under the same conditions for 20 years, even though it does happen in some extreme cases (like space probes.)

  4. I have a friend that lived this nightmare. by zorkmid · · Score: 2, Insightful

    And even though she was screaming from the highest mountain to anyone and everyone that would listen that doom was rushing towards them. That bad, bad things were going to happen. She was still made the sacrificial goat when the fecal material hit the rotating blades.

    And this was for a federal agency.

    Scary no?

  5. Crew Scheduling system? How about Aircraft maint by NetNinja · · Score: 4, Insightful

    If the crew scheduling system was old as the hills how old is the system used to track aircraft maintenance? Oh wait that issue will be addressed when we crash an aircraft.

    Maintenance manuals and procedures are written in blood. The next tragedy will be no different.

  6. I told you so ... NOT! by argoff · · Score: 3, Insightful

    It is always easy to say "I told you" so after the fact, but the reality is that this failure has far more to do with the companies attitude about technology than failure of somebody to say "look out!". In fact by the sounds of it, the entire application could probably be ran on 2 souped up PS'c running in parallel in different co-locations over the internet - the hardware and infrastructure would not cost alot.

    Even worse, is when these types of failures happen, then comes in the ole "policy and procedure" routine kicks in.

    To tell a story, one time I went to a boarding school, and at the beginning of the year they had almost no rules, and then when ever something went wrong they added a new rule. Well needless to say at the end of the year there were so many rules, people could get repramanded for flushing the toilet twice instead of once! Not having their shoes tied left over right, etc .....

    Well I grew up and found the same is true in companies, how much you wanna bet they are gonna loose more than 20 million from too many piled up policy and procedures that keep anyone from getting anything done?

  7. Risk management by uweg · · Score: 3, Insightful
    Well, the problem starts with being born or getting up in the morning. And a system running since 20 years normally doesn't start to stink by itself.

    OTOH, what does "Risk management" in IT really mean, besides drawing nice PowerPoints and putting a chapter "Risk analysis" into change request forms, that are normally filled in with "No risk, no fun!" or "If I make a very big mistake, it will extinguish mankind"?

  8. A game of Jenga by lake2112 · · Score: 4, Insightful

    Unfortunately, it is commonly seen that upper management abides by the if-it-aint-broke, dont fix it mentality. With many systems there is a huge amount of pressure to fix bugs/ outstanding issues, once that is done they work on money-making initiatives. I see it as a game of Jenga. Pieces are removed from the bottom, to create a taller structure. Instead of reinforcing the base there is a constant push to make the tower taller until it comes crashing down.

  9. Re:Why did this system fail? by QuestorTapes · · Score: 2, Insightful

    > I don't like the idea of making assumptions that just because a system is 20 years old, that it absolutely must be replaced.

    >...if I have a 20 year old system that I can't get parts for, that's a high risk system.
    > However, if I can get parts for a 20 year old system, then the risk is lower.

    Good points. The article does contain some facts, though. The system was Fortran based, ran only on one aging hardware platform, and no one at Comair knew Fortran. Those are risk factors with older software.

    A better lesson than the article's implied "don't use old software" lesson would be, "periodically review legacy systems against changed business conditions and environment. Do not assume that software and hardware will continue to function when the business environment changes significantly."

  10. Old? by Nemi · · Score: 3, Insightful
    Age of the software should make no difference. The problem in this particular case was that the system could only handle 32,000 transactions a month (the programmer obviously used the wrong data type). That could be a problem with software of any age. Age had nothing to do with it failing.

    This article rings more as a sales article than anything else - only it isn't selling anything. Which puts it squarely in the "wtf" category for me.

  11. Some flaws in the article... by CatsupBoy · · Score: 3, Insightful
    Ok, the bottom line, they should have upgraded. Fine, we can all agree on that.

    Now, first the article states:
    [The application] was the only system left that ran on the airline's old IBM AIX platform (all other applications ran on HP Unix).
    First off, IBM AIX platform can be very new. Just because the application is old and possibly has bugs in it, doesnt mean the OS and hardware inst updated, or that HP Unix is any better.

    Secondly, the following scenario makes perfect business sense:
    SBS came in to make a pitch for its new Maestro crew management software [...] The existing crew management system wasn't exactly elegant, but all the business users had grown adept at operating it, and a great number of Comair's existing business processes had sprung from it.
    The article sets this up as the root of all thier problems. Good grief!!! dont waste resources on an inferior product for goodness sakes! If the product doesnt perform any better, and there are no known issues with the current product, forget it, its a waste of money.

    Then a series of unfortunate events lead to 4 more years of no funding for a replacement product. So what, the business is under a financial crunch, why go back and fix something that isnt broken (that they know of)? The business still needs to survive dont they? I'm guessing they maintained the hardware and OS, otherwise we'd be here talking about how stupid they were for not updating maintenance contracts.
  12. Re:software decays by adjuster · · Score: 3, Insightful

    But the environment in which the software operates changes, and that change is analagous to weather corroding a pieces of physical equipment. Every time the OS gets a patch, the filesystem changes, a shared library is upgraded, the underlying hardware changes, there's a chance of triggering a failure in the software.

    It's rather sad, to me, that we design these wonderful machines that can perform logical operations in great quantities with a high degree of repeatability and low occurance of failure, then create a culture around them that encourages sloppiness, and ultimately introduces a large measure of uncertainty into the operation of these machines. I am baffled at the perverse desire-- nay need-- that people seem to have to make software suffer from entropy.

    The only "decay" in software should happen as a result of changing business requirements. There's no reason that, provided the business requirements don't change, that a well designed and properly implemented piece of software should not be usable in perpetuity. There may be changes in the underlying hardware and operating system software, but provided that the application is sufficiently abstracted from the underlying platform (or, provided that an emulation-layer for the original platform can be constructed) there's no reason other than changing business requirements for software to be "thrown away".

    Let's put this a different way: How does a patch to the underlying operating system cause an application to fail? If the patch changes the behaviour of the underlying operating system in such a manner as to return unexepected values to the application, the patch is the cause of the failure. A flawed patch doesn't make an application "age" or "decay"-- it's simply a flawed patch. An application has to make assumptions about the underlying operating system. These assumptions are based on the API documentation-- the contact between the operating system and the application. When the OS violates the terms of the contract, that doesn't mean the application "decayed"-- it means some moron who coded the operating system patch messed up, and the operating system manufacturer/maintainer didn't perform good regression testing.

    We should be designing software systems with 10 to 20 year usability goals. It would do a lot for the frustration level that the "suits" have with IT if we stopped being proponents of hugely expensive but "throwaway" systems, and started designing systems with an eye for longevity.

    --
    The Attitude Adjuster, I hate me, you can too.
  13. Application lifecycles by ehiris · · Score: 2, Insightful

    IT people know that technology will be obsolete in a short time but most business people always see technology as flashy cost reducers and they never plan on retiring the systems from the get-go. It's an annoyance but it is not suprising in an industry where duct taping old systems is preferred over structural improvements through architecture.

  14. Re:software decays by hawaiian717 · · Score: 4, Insightful
    The only "decay" in software should happen as a result of changing business requirements.

    Exactly. This software would have failed the month after it was installed if Comair had needed to do 32,001 changes in that month. But when it was installed, Comair wasn't that big, so having to do that many changes was not something that was considered. Now that Comair has grown considerably, the business requirement has changed but the application has not kept up.

    --
    End of Line.
  15. Airlines have been using IT for 40+ years. by Richard+Steiner · · Score: 2, Insightful

    They've also historically had fairly large IT shops. That has given them a lot of time and manpower over the past four decades to write custom software for themselves, and that has resulted in many unique airline-specific systems, sometimes running on interesting combinations of hardware.

    One of the main problems with a "central IT shop" for the airlines is the fact that, operationally, each airline is somewhat unique in terms of the internal operational procedures they use, and many of the software applications at each airline are very tightly tied to that airline's own local set of procedures and business rules.

    I worked for ten years at Northwest Airlines on a flight operations system that was originally written at United Airlines in the mid-1960's, and we had to make a lot of fundamental changes to displays and other things so our pilots and flight dispatchers could use their own in-house terminology, and so that the software would match the largely paper-driven procedures that it was replacing.

    Even were the airline industry not in its current financial bind, the prospect of replacing some of those systems isn't one to be taken lightly -- not only are the systems at a major airline closely intertwined with unique procedures, but they also tend to be tightly tied together in terms of data with lots of real-time message passing going on not only between the airline's internal systems but also between the airline and various third parties (ACARS messages, weather info, flight plan information, reservations info, etc.).

    It's a very interesting industry from an IT perspective, at least when it isn't in a death spiral...

    --
    Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
    The Theorem Theorem: If If, Then Then.
  16. Unmaintained code (and shoddy work) is the problem by Anonymous Coward · · Score: 2, Insightful

    "As the article says, a lot of resistance to upgrades comes from employees who know how to do things a certain way, and won't retool without much screaming and kicking."

    And why is that a bad thing? If the software is a good tool for the task at hand, they should keep using it. In fact, the article clearly says that this program was in many ways superior to newer programs on the market - which is why they didn't upgrade earlier. They say they were able to create good workflows based around the software - extending the ideas of the software's design to other processes.

    What the article fails to discuss is that you could have a brand new piece of software which fails just as badly. Software doesn't age, and this wasn't a hardware failure. If they tried to do 32,769 crew changes the first month they used the software....it would have failed just as it did now. And buying something new (just because it is new) doesn't mean it is bug-free. If anything, conventional wisdom would imply that the older software is less buggy than new software because it has years of usage. Whoever wrote this program was obviously an idiot and didn't consider "what happens if there are more than 32,768 changes a month?" But most people write shoddy software, and managers don't catch them on it. Do you think that's changed in 20 years? Have programmers become better? I doubt it. The new software they bought almost certainly has some bug lurking in it, ready to cause havoc.

    The real issue is software that is not maintainable, mostly because noone has (or can use) the source code for it. In that sense, just because software is old, doesn't make it a Legacy Application. Lack of maintainability makes it a Legacy Application. What confuses me is, it sounds like they had the source code for the current application. How hard would it have been to go hire a Fortran programmer to review it, since noone in the organization was familiar with Fortran? And, it certainly should serve as a warning to anyone willing to use software critical to a business process without source code. You can't count on software being maintained if the company discontinues support, or goes bankrupt, or just doesn't feel like it. And if you can't count on someone else to support a critical system for you, you better make sure you can support it yourself. (It doesn't have to be FOSS, but you ought to have access to the source code for your own use)

  17. The truly relevant cautionary tale... by EricTheGreen · · Score: 2, Insightful

    ...IMHO, can be found in the following single line from The Fine Article:


    But after nearly 15 years in use, the business had grown accustomed to the SBS system, and much of Comair's crew management business processes had grown directly out of it.

    (emphasis added)

    Talk about putting the cart in front of the horse. This system would never have been replaced before it's crash--the cost of readjusting process and any other attached technology would have dwarfed simply updating the software. There was no business case you could make that would appear to justify the expense. Other than the little matter of "your company won't function if something goes wrong", of course...

    Also, you'd never find a decent replacement product--since it's functionality would have to mirror those same system-driven business processes.

    The truly major oversight was in letting the package drive how Comair did this part of it's business in the first place. Done otherwise, the meltdown might still have happened, for plenty of reasons outlined in the article. But left this way, this result was pre-ordained. No amount of planning or "risk assessment" was going to counter the inertia created by this process/technology inversion.

  18. "Old software breaks down" is not BS by susano_otter · · Score: 2, Insightful

    First, the longer a piece of software is in use, the greater the chance of finding an obscure or unlikely error condition. The older a piece of sofware, the more of its bugs will become apparent, and the more likely it is that a crippling bug will be found. Old software breaks down.

    Second, operating constraints change over time. If a piece of software meets its initial demands, greater and greater demands are placed on it over time. If a piece of software is kept in use for many years, it will likely find itself handling a workload far in excess of what was imagined when the software was first created. When Comair first began using this software, it probably didn't have the business volume to make the transaction limit a problem. Because Comair's business grew over many years, but the software was not grown along with it, what was originally an unimportant design constraint turned out to be a major bug. Old software does not grow to meet new demands. Old software breaks down.

    Old software doesn't rust. It doesn't develop stress fractures. It doesn't corrode or go stale. But in its own very real and very important way, old software does degrade over time; if not in itself, in its relationship to the constant growth in the demands placed upon it. Old software breaks down.

    --

    Any sufficiently well-organized community is indistinguishable from Government.

  19. Re:What if they won't listen? by kelleher · · Score: 2, Insightful
    When it comes to technology, managers often don't care and don't want to know, except when it costs money.

    That's their job. Companies exist to make money - end of story. Technology for technologies sake is foolish and wasteful unless you're in an R&D department.

    That being said, all technology spends (e.g. upgrades, redesigns, rewrites, replacements, etc.) can and should be boiled down to dollars that either fall into a profit/loss or risk/benefit catagory (hopefully over 3-5 years). If a CIO isn't doing this (or having it done for them) they should be fired.

    If you think more subtlety is needed, then I hope you're a low to mid level SA/DBA/Developer because you don't understand the "business" side of the company that employs you. I'm not trying to be rude, but that's the brutal reality of the business world. On a lighter side, there'a always academia... if you'd prefer politics to dollars.

  20. I haven't seen the code, but... by Anonymous Coward · · Score: 1, Insightful

    I haven't seen the code, but here's a guess. This is from a guy who started programming on an IBM mainframe and Burroughs minis in the late 70's,

    When this code was written, hard disk space and memory space in mini computers and mainframes were at a premium

    So you didn't use a fullword when a half would do. That would be the equivalent today of storing a lossless music file on your iPod Mini.

    So they knew they were doing a few hundred events a month; the idea of going beyond 32K per month was probably absurd when it was written, and the programmer couldn't waste space, and anyway, when they got to that point, somebody would just patch the code and they'd be on their way.

    Meanwhile, those programmers retired 10 years ago and this disaster erupted.

    If you learned to program during the era this was written, it makes perfect sense.

  21. You're too young to understand by Anonymous Coward · · Score: 3, Insightful

    These systems were written when a computer had maybe 4M of main memory. So if you double the size of your counter, that means you can hold....1/2 as many events.

    So as a programmer, you make a choice. You either make the counter smaller, or you limit the system in some other way.

    Computers today have 3 orders of magnitude more memory, and the choice between a short and a long is easy to make. But back then, it wasn't.

    To help you understand, if a programmer from that era used a long int, he'd better have a damned good reason. Although, he should have made it an unsigned int and got double the space . See? You're not old enough to feel in your gut the need to save *BITS*.

    Back when I learned to code in the late 70's, we used assembler (BAL 360), and we saved space by making all number packed and then stripped off the sign byte. You did a MVO to the same memory location, and it had a side effect of shifting the packed number on nibble (1/2 byte) to the right, erasing the sign bit. We did that because a 40M disk pack on an IBM 370/148 cost about $40,000 and we couldn't waste it. Now I have a thumb drive with 1G on it. You just don't understand.