Slashdot Mirror


Mass Fatality Identification System

Shipud writes " Bio-IT World is running a story on how Gene Codes corporation created the Mass Fatality Identification System (M-FISys) in the aftermath of the 9/11 attacks. The story goes into the details of processing large amounts of data, aiming for a 99.9% accuracy rate, and extreme programing."

32 of 137 comments (clear)

  1. extreme! by Anonymous Coward · · Score: 5, Funny

    extreme programing

    One of the philosophies of extreme programming is "once and only once". Glad to see you applying this philosophy to that redundant "M"! Down with unnecessary repetition!

    1. Re:extreme! by WegianWarrior · · Score: 2, Funny

      If you want extreme, you should check out these extreme guys... extremly fast!

      --
      Everything in the world is controlled by a small, evil group to which, unfortunately, no one you know belongs.
  2. Handy after a nuclear war by torklugnutz · · Score: 4, Funny

    In the even of identification will be done in the following manner: The 30 of us that survive, that aren't cockroaches, please raise your hands.

    --
    Often in Error, Never in Doubt.
  3. Wheeee! by Anonymous Coward · · Score: 5, Funny

    Mass fatality system! Oh boy! All of my many nefarious plans will see fruition, I just hope it's open source. Oh, it's an Identification system? Slot off /.!

  4. am I the only one.... by MarcoAtWork · · Score: 5, Insightful

    who absolutely positively -HATES- the idea of 'paired programming'? While I wholeheartedly agree with having lots of meetings and discussions during the design phase (requirements, functional spec, detailed design) and during the review phase (post mortem, code reviews) I feel that having two coders on one computer is extremely wasteful and unbelievably stressful.

    When I'm in the 'zone' I can't talk with somebody else, I can't verbalize why I'm writing a code fragment the way I am writing it without getting yanked out of it. If the design is done well, and programmers are fairly equally competent, pairing two of them is going to probably be LESS productive than having only ONE, let alone two.

    The only time I can see paired programming being useful would be in a tutoring way, where coder A that has lots of experience with the codebase is paired with coder B that has never seen it, but this is more for getting coder B up to speed rather than to improve productivity and code quality.

    --
    -- the cake is a lie
    1. Re:am I the only one.... by B3ryllium · · Score: 2, Insightful

      I think that extreme programming really only works when people are having a hard time initially getting in to 'the zone'. It helps to have someone to bounce ideas off of, when you hit stumbling blocks on the code. Using the same computer is stupid, but extreme programming over, say, a ping-pong table - that works great.

    2. Re:am I the only one.... by ralico · · Score: 2, Insightful

      And here I thought paired programming was a way for a company to save on hardware.

      --

      SCO to Hell
    3. Re:am I the only one.... by Anonymous Coward · · Score: 2, Interesting

      While I wholeheartedly agree with having lots of meetings and discussions during the design phase (requirements, functional spec, detailed design) and during the review phase (post mortem, code reviews) I feel that having two coders on one computer is extremely wasteful and unbelievably stressful.

      what? that's not extreme programming! that's regular programming! XP goes against "big up-front design" -- which is exactly why they chose it for this particular project!

      xp wants: no big up-front design (just small "user stories" and maybe use cases), plus no big arduous code reviews (because of collective ownership and paired programming)!

      get a clue!
    4. Re:am I the only one.... by lawpoop · · Score: 3, Insightful
      Extreme programming was designed for a team of developers. It takes a while to get in the 'zone', eh? What does your 'zone' code look like? Is it well-commented? Readable? If so, you are alright without extreme progamming.

      The idea of extreme programming is that it forces you to make readable code, simply because of the fact that you're in the presence of someone else.

      If you're in a project where you won't be responsible for the code you write later on, it would be a waste of time to have you write any code at all, if it takes that much time to decipher it.

      --
      Computers are useless. They can only give you answers.
      -- Pablo Picasso
    5. Re:am I the only one.... by BlueGecko · · Score: 5, Interesting

      I definitely agree that having two programmers sitting next to each other is very distracting and ultimately counterproductive (at least for me). However, I have found that the Mac programming editor SubEthaEdit (formerly known as Hydra, but recently renamed due to legal issues) can be a tremendously productive alternative. In essence, you can think of it as an alternative implementation of paired programming. SubEthaEdit allows multiple users to edit a single document in real time. It uses color coding to distinguish who has added a modified what parts of the text to make real-time version tracking easy even in an highly chaotic environment, and even supports a fairly intelligent undo system. I've found that you get the benefits of paired programming (multiple people working and reviewing code at once), yet you also don't have to constantly explain everything as you're going or have that annoyance of someone leading over your shoulder, craning at the screen. Best of all, it becomes practical to have more than two people working on a single file at once. If you want, you can do NASA-style programming and have two people just searching for bugs and two people just coding. The results can be quite spectacular. SubEthaEdit may be not be everyone's cup of tea, but I'd highly recommend you at least take a look.

    6. Re:am I the only one.... by kevinvee · · Score: 5, Interesting

      Throughout my higher education we have had paired and extreme programming shoved down our throats. I consider myself to be a fairly competent programmer, and have worked with others that have a wide array of skill sets. It has helped me personally in dealing with people that have such a wide array of skill sets. My communication skills have improved drastically. I'm sure there are other things which factored in to this, but paired programming certainly played a big role. My experiences overall have been pleasant. This is entirely subjective. I know people that feel completely different, and will rationalize it to the end. But, when I have worked with less knowledgable programmers we are able to get tasks done in almost the same amount of time it would have taken me to do it by myself, and a small fraction of the time it would have taken the other person to do it. When I work with people that have similar capabilities, and especially when we have personalities that work well together, we are able to get a ton more accomplished together than we ever could individually. And, when I work with people more knowledgable than mine, the earlier situation is reversed and I have the opportunity to learn at an accelerated pace. The most helpful thing I have found in my paired programming experiences is to have an open mind because in that kind of a close environment your ideas and thoughts can be trampled on rather quickly, and you have to be able to accept that environment and both acknowledge that some solutions are better and be able to rationalize any decisions you are making. In my experience it is entirely worth it. The code usually has less bugs when testing, and the end product is much more understandable in terms of structure and future upkeep.

    7. Re:am I the only one.... by Anonymous Coward · · Score: 2, Funny

      My communication skills have improved drastically.

      Sadly, not to the point of using paragraphs.

    8. Re:am I the only one.... by panaceaa · · Score: 4, Insightful

      I hate paired programming too but my roommate is a proponent of it. He says that average coders have a hard time staying on focus and are often lured by quick hacks rather than doing needed redesigns. When you pair two of these programmers together, with a stated goal of following extreme programming practices, they're ultimately more productive because they have to explain their decisions and not slack off.

      But my roommate agrees, that for competent and motivated coders, who actaully know what they're doing and take pride in their work, extreme programming's paired programming fails. However, the software industry is not filled with competent and motivated coders. Most software developers graduated in CS for the money, without writing a lick of code before CS 101, and they could use a good deal of oversight.

    9. Re:am I the only one.... by marko123 · · Score: 2

      When I'm in the "zone" I make absolutely sure that all thoughts and reasoning gets documented as I code, and in an external document of notes.

      Otherwise, you run the danger of looking at the code later, and not being in that mental ecstacy of understanding everything at once, and wondering why you wrote what you did, mainly because you had conceived of a frightfully, inhumanly efficient and clever way of doing something that no human may ever imagine again.

      --
      http://pcblues.com - Digits and Wood
    10. Re:am I the only one.... by marko123 · · Score: 4, Funny

      I'll look at it, but I can imagine myself just pissing off my programming partner by inserting characters right where her cursor is until she smashes the backspace key... on my head.

      --
      http://pcblues.com - Digits and Wood
    11. Re:am I the only one.... by monkeyboy87 · · Score: 3, Insightful
      Why do you find it stressful? because you have to share space with another carbon unit? yes, there are situations where pairings can lead to friction - for me if the "pair" is a slow or hunt/peck typer i insist on driving.

      on the upside you get the following benefits:

      0) two people looking/reviewing the code as its written you get a review/concensus of two people thinking the code as written was a good idea. vs a guy alone in an office who creates something only they can understand/debug/modify which then has to be justified to the group after the time/cost/effort have been expended. I am sure you have reviewed code after it was written and walked away saying "WTF was Ken thinking when he wrote this POS!" With pairing you can keep Ken from polluting the code base or if nothing else be his accomplice in his misdeeds.

      1) you aren't likely to "launch make" to justify surfing with someone in your office. while you might be dedicated to being productive you can probably name 2-3 people in cubes/offices around who are more "wired" than working.

      2) As someone pointed out it can help facilitate rehabilitating weaker team members who (if they have a clue) will gain from the experience locked away inside the stronger more gifted programmers.

      On the otherside if you hate the "working in pairs bit", you can still adopt the other things XP advocates like test driven/test first programming you and can get a quantum leap in reliablity. I always look at XP as the manfestation of Demmings TQC/TQM applied to programming.

    12. Re:am I the only one.... by aricusmaximus · · Score: 2, Funny

      "Otherwise, you run the danger of looking at the code later, and not being in that mental ecstacy of understanding everything at once"...

      okay, someone has to stop coding while on LSD...

      "conceived of a frightfully, inhumanly efficient and clever way of doing something that no human may ever imagine again."

      Okay, and I imagine this happens to you, how many times a day? Month? Year? Lifetime? And of those times, what percentage of the time do you look back and wonder what the hell you were smoking? Or worse yet, have to come back to your "clever code" and modify it? Perhaps having someone else there to provide sanity checks might help?

      Unless it's a solo poject for pure comp-sci research (and even then you're going to have to write a paper on it), your code doesn't exist in a vacuum. Whatever "clever" code you make will be a headache to whomever has to come afterwards to change, modify, or maintain it. Especially if it's "something that no human may ever imagine again."

    13. Re:am I the only one.... by tamnir · · Score: 2, Interesting

      I have been doing extreme programming for 4 years, and I started with pair programming. Since from the wording of your comment, I take it you haven't tried pair programming for yourself, please, allow me to share my experience.

      First, let me begin with how I started pair programming:

      I started pair programming in the tutoring way you describe. I was "coder B" in your scenario: fresh out of university, I just joined a development team between projects, so there wasn't too much pressure. But the environment and tools used were mostly new to me. Our team wasn't doing any Extreme Programming at that time, but our "Coder A" read about it and wanted to try it out. There are serveral practices in Extreme Programming, and pair programming was the one he found the most intruiguing. Since I was the newbie, he wanted to use me as a guinea pig to see if he could bring me up to speed faster.

      Like you, I really wasn't convinced at first, but he was the guru, and me just a newbie, I really couldn't refuse. So after a few days, I finally accepted and reluctantly sat next to him in front of his console. All I would do for now is watch, while Coder A codes stuff and explains what he is doing so that I can follow what is going on. Luckily, it was some Python code. Even I at that time I hadn't even heard of Python, I could kind of figure out what was going on in a particular loop. But I had no idea about the higher level of the design, and the first pair programming session was very painful. After 2 hours, my head was about to explode. I did learn a few things about Python, but that was about it.

      The next day, we tried again. I was even more reluctant given the previous bad experience, but anyway, I sat down, repressing a sigh. Again, painful time, headache... But somehow, the code structure started to appear to me, like pieces of a puzzle magically putting themselves together. But one piece wasn't fitting. Coder A was stuck on a problem and asked me if I had any idea. Again, I wasn't even sure what was going on, I had only a very high level and blurry view of the system. Yet, somehow, I could see the problem with that piece had something to do with granularity. Being a newbie talking to the guru, I sheepishly apologized for not being sure what a certain function really did, but suggested anyway adding an argument and removing a certain loop. I really had no idea what I was saying. Just, in my blurry picture, that would make the puzzle piece fit. Coder A pondered the idea for a few seconds, then his eyes popped wide open and he exclaimed: "You're a genius!". Then he went into a coding frenzy by himself and I was lost again, but I knew something special happened there. Sure, that was in a tutoring setup you described, but that is actually a generality of pair programming: while the driver (the coder at the keyboard) takes care of the low level details, the navigator (the coder watching) keeps track of the higher levels of the implementation, and thus can point the driver in the right direction.

      Now, let me answer your concerns with what I have learned from practicing pair programming:

      Wasteful:
      You do loose some raw speed from having only one keyboard typed on instead of two, but actually not that much: whenever you get stuck on something, pair programming gets you unstuck really quick. In raw lines of code per hour, I think the loss is something around 15%. But this is largely made up for in code quality. I found that pairs produce much higher quality code than individual programmers. Therefore, you also save time on debugging and code maintenance.

      Stressful:
      It can be at times. See my first session of pair programming. First thing: pair program with someone you get along with well. After you got used to them, pair programming sessions are still very intense, since they keep you totally focused, with constant peer review, for the 2 hours they usually last.
      However, I found an overall reduction in stress level thanks to pair programming. It's a bit like doing a lot of sports h

      --
      I code, therefore I am.
    14. Re:am I the only one.... by torpor · · Score: 2, Insightful

      Well, then you wouldn't be a 'programmer', you'd be more like a ... husband, or something.

      But seriously: SubEthaEdit rawks hardcore. Put two people together to work on the same code together, and it can make for some really nice results ... you have to think of it more as a team scenario, constantly communicating and discussing things -as needed- and then working around/with each other too. It can go like this:

      Programmer Bob - "Okay, I'll do all the util code today for module_XXX - load/save/parse/etc."

      Programmer Jane - "As you start to get that stuff working, I'll do the structural work for the major logic."

      You can really work efficiently this way, because by having another person to talk things through you can get a structure/organized state very rapidly.

      Many programmers have a difficult time laying out their app structure individually, choosing to 'evolve' the framework of their app as they figure things out - paired programming is designed to overcome the 'flaying around blindly' aspect of design, by giving you another pair of eyes.

      Done right, it can be very, very, very efficient. But, of course, as with anything: it can also be a pain in the ass.

      --
      ; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
  5. Hmm.. by Anonymous Coward · · Score: 5, Funny

    Let's see..

    new technology ... check.
    mass fatatilies ... check.
    extreme programming ... check.

    Yep, Slashdotters will love this one. :)

  6. But... by Anonymous Coward · · Score: 2, Funny


    In a clone infested future this will be useless

  7. Re:Cash, Howard Cash by gazoombo · · Score: 5, Insightful

    Approaching the second anniversary of Sept. 11, 1,521 of the 2,792 people who perished in the WTC disaster have been identified.
    It does take time. Rember that every single positive ID that is made is a life that has been lost. Imagine the familes associated with these 'numbers' and mass ID. I do not appriciate your comment.

    --
    John Hancock
  8. XP programming?? by 1000101 · · Score: 2, Interesting

    From XP web site:
    "Extreme Programming (XP) was created in response to problem domains whose requirements change. Your customers may not have a firm idea of what the system should do. You may have a system whose functionality is expected to change every few months. In many software environments dynamically changing requirements is the only constant. This is when XP will succeed while other methodologies do not."

    I'm no expert, but isn't this exactly what OOA and OOD is all about? Isn't the whole point of OOA and OOD to get away from the "waterfall method" and allow changes in requirements, use cases, code, etc...?

    1. Re:XP programming?? by richieb · · Score: 2, Interesting
      I'm no expert, but isn't this exactly what OOA and OOD is all about? Isn't the whole point of OOA and OOD to get away from the "waterfall method" and allow changes in requirements, use cases, code, etc...?

      Not really. OO is a different approach to structuring systems and is a replacement for Structured Programming.

      Even with OOA and OOD people have tried to apply formal or semi-formal processes, which tend to look a lot like a waterfall approach (eg. RUP etc).

      XP starts with the assumption that requirements will change and the that all requirement are not known at the time when you start building the system.

      --
      ...richie - It is a good day to code.
  9. Re:Yuck... by dakryx · · Score: 2, Informative

    buccal - Of or relating to the cheeks or the mouth cavity.

  10. 12 hour days? by JRManuel · · Score: 2, Informative

    The article mentions how the developers worked "... arduous 12-hour programming shifts." This goes against one of XPs core practices: No Overtime. However, if a team is well-motivated (as these guys were), I think it becomes possible to stretch this rule. The second that their motivation wanes, they should switch back to a regular schedule.

  11. How ironic... by BladeMelbourne · · Score: 4, Funny
    Isn't it ironic that the Extreme Programming site is written in HTML 3.2 & JavaScript 1.0?

    Markup languages are hardly extreme, but surely they could push the bounds of the latest standards and do something truely extreme. ;-)

    Mike

  12. Remember...in extreme programming by teamhasnoi · · Score: 4, Funny
    There is no 'I' in team, but there is a 'me' in extreme.

    There is also a 'ramming' in programming, but I got nothin' for that.

  13. Mission Creep by LuYu · · Score: 2, Insightful

    Could this not be used on the living as well? It would bring us closer to that frightening world we saw in Gattica.

    Should we be creating identification systems that can ID people with scraps of DNA?

    --
    All data is speech. All speech is Free.
  14. God bless them by The+Tyro · · Score: 2, Interesting

    I have all the respect in the world for these guys... programming methods or no, what they did and are doing is priceless.

    I was in New York on Sept 11... flown in on a C-141 as part of the rescue/relief effort (the rest of my Urban Search and Rescue team had to drive... I beat them there by a number of hours). That was the most unique flight I've ever been on, since by then the entire civilian air fleet had been grounded... between us and the f-15s, we were basically the only things flying... .

    Closure is important, and these guys are providing it... I'd like to shake their collective hand and buy them a nice cold beer.

    --
    Even if a man chops off your hand with a sword, you still have two nice, sharp bones to stick in his eyes.
  15. Re:not a joking matter by ctaylor · · Score: 2, Insightful

    "There are several good posts about the programming issues etc., but why are so many mods wasting their mod points modding up so called "funny" posts?"

    Because humor is one way for humans to deal with tragedy.

  16. Re:To the moderator who thought this was funny: by kelnos · · Score: 2, Insightful

    i'm sure i'll get modded as flamebait like the others, but so be it.

    have a little perspective! the attacks of 9/11 were terrible, to be sure, and i'm both sorry for those that lost friends and family, as well as thankful i didn't lose anyone i know. but one of the worst tragedies ever? hardly. look at history - the holocaust comes to mind. think of those that have died in slavery - no, i don't have exact numbers. how about natural disasters? a single earthquake, flood, etc. has often resulted in much larger loss of life. how about people - children, even - that die in less-developed countries every day due to malnutrition and easily-curable diseases?

    the 9/11 attack has had so much spin put on it it's ridiculous. a terrible, horrifying occurrence, yes. the worst thing to happen ever, no. and i'm sure saying that makes me "unamerican" or some silly thing like that. my country disappoints me sometimes.

    --
    Xfce: Lighter than some, heavier than others. Just right.