• a (unregistered)

    WTF?

  • snoofle (cs)

    So all they needed to do in the db was add a ternary flag?

    Sheesh, any boolean can handle that!

  • Alpha Bette (unregistered)

    Easy: just hardcode all the reports green. Everyone's happy!

  • Fred Oom (unregistered)

    It is hard to explain to end users sometimes why these things are so complicated. But every time the programmers tried to load the icon into the browser, they kept getting...

    wait for it...

    File not found!

  • Anon (unregistered)

    They had it all wrong and missed some critical steps:

    1. Process the report from the database
    2. Render the icon in memory
    3. Save the image to the server's hard drive
    4. Print out image
    5. Put image on wooden table
    6. Photograph image
    7. Scan image back into server
    8. Render that image within the web page
    9. Do all of this on the web site without conflicting with other alerts or users within the file system web site
  • Quango (cs)

    I don't get this one..

    "..an extreme challenge to manage the thousands of icon files.."

    There are only three: red, yellow, green. Why create them dynamically? Just reference static ones?

    Or did IBQ just not want to do the work?

  • atkretsch (unregistered)

    IBQ is missing out on a great opportunity:

    1. Process the report from the database
    2. Render the icon in memory
    3. Save the image to the server's hard drive
    4. Render that image within the web page
    5. Do all of this on the web site without conflicting with other alerts or users within the file system web site
    6. ???
    7. Profit!
  • SomeCoder (unregistered)

    I feel like I missed something in this story. Seems to me that TRWTF is the fact that the developers think it's so hard to add an icon.

    Though I don't know the specifics of the system, of course, it seems like you just create green, yellow, and red images, then the code can say something like the following:

    if (happy) loadImage(green); else if (ok) loadImage(yellow); else loadImage(red);

    So... what's the problem?

  • DaveAronson (cs)

    TODO: make a comment on this WTF before it becomes a royal pain to read existing comments

  • ambrosen (cs) in reply to Quango
    Quango:
    I don't get this one..

    "..an extreme challenge to manage the thousands of icon files.."

    There are only three: red, yellow, green. Why create them dynamically? Just reference static ones?

    Or did IBQ just not want to do the work?

    Well, the comment in the database pretty clearly says that they hadn't actually got a value for what the mood icon should say. So they lied about the reason.

    Obviously if they'd been asked to give a numerical value for the risk, then they'd have had to fess up, but as it was,...

  • jamface (unregistered) in reply to SomeCoder
    SomeCoder:
    I feel like I missed something in this story. Seems to me that TRWTF is the fact that the developers think it's so hard to add an icon.

    Though I don't know the specifics of the system, of course, it seems like you just create green, yellow, and red images, then the code can say something like the following:

    if (happy) loadImage(green); else if (ok) loadImage(yellow); else loadImage(red);

    So... what's the problem?

    Read the comment at the end of the article.

    Quango:
    I don't get this one..

    "..an extreme challenge to manage the thousands of icon files.."

    There are only three: red, yellow, green. Why create them dynamically? Just reference static ones?

    Or did IBQ just not want to do the work?

    Read the comment at the end of the article.

    Glad to help!

  • SomeCoder (unregistered) in reply to jamface
    jamface:
    Read the comment at the end of the article.

    Comment has been read (again). My previous statement still stands.

    I guess the WTF is supposed to be that the development team lied about how hard it would be?

    Unless the database is a complete clusterfuck, adding one column to a table to add mood shouldn't be that hard.

  • Charles400 (cs)

    Then, to really annoy the users, they used smiley emoticons instead of a color indicator...

  • cf18 (unregistered)

    Good, OK, Bad

  • Jason (unregistered)

    It's possible to Encode the image on the page itself. No need to save anything, just render it. I don't know why they didn't just do that -- I have two web apps where the binary data is encoded right on the webpage, because I wanted a one-page-that's-it app.

  • brazzy (cs) in reply to SomeCoder
    SomeCoder:
    I feel like I missed something in this story. Seems to me that TRWTF is the fact that the developers think it's so hard to add an icon.

    Though I don't know the specifics of the system, of course, it seems like you just create green, yellow, and red images, then the code can say something like the following:

    if (happy) loadImage(green); else if (ok) loadImage(yellow); else loadImage(red);

    So... what's the problem?

    You already have each of the 3 states in 2 places (icons and a happy/ok/bad enum). In a sufficiently enterprisey system, they would also have to be integrated into a dozen other layers (database schema, DAOs, DTOs, business objects, CORBA stubs, etc. pp.). It's still not rocket science, but TRWTF was that the developers got away with describing how a webbrowser works and making it sound so complex that management believed them that adding this "mood" would be a herculean task.

    I suspect that they didn't even really do it out of lazyness - after that huge multi-department email conversation they probably just wanted to save face.

  • Eric (unregistered)
    Comment held for moderation.
  • brazzy (cs) in reply to Jason
    Jason:
    It's possible to Encode the image on the page itself. No need to save anything, just render it. I don't know why they didn't just do that
    You don't get it - all that crap about icon files was a cover story to bamboozle management with technobabble. The real reason why they didn't want to do it was that they hadn't considered the need for this "mood" in their database schema. The problem was with where to put the data, not how to display it.
  • savar (cs) in reply to Anon
    Anon:
    They had it all wrong and missed some critical steps:
    1. Process the report from the database
    2. Render the icon in memory
    3. Save the image to the server's hard drive
    4. Print out image
    5. Put image on wooden table
    6. Photograph image
    7. Scan image back into server
    8. Render that image within the web page
    9. Do all of this on the web site without conflicting with other alerts or users within the file system web site

    alex just blue you

  • Dale E (unregistered)

    I've seen many applications where if you can't add a column to the database, just attach the data to the primary key:

    Report_ID

    1.Red 2.Red 3.Green 4.Red 5.Yellow

    Make sure you put it AFTER the ID, to confound anyone who wants to sort on mood. But why would anyone want to do that?

  • Homercles (unregistered)

    Also, the TODO comment shows that they did intend at some point to implement 'mood', but forgot. So the 'out of scope' comment was bluster as well.

  • C. F. Martin (unregistered)

    Where I work, we would spend three or four days discussing why green should be the "good" mood. Legal would be brought in. We'd need to justify it to communications. Many would have interesting points on various shades of green. Naturally, the process would be repeated for yellow and red.

    CAPCHA: odio (Its round on the ends and DI in the middle)

  • Block Progress (unregistered) in reply to C. F. Martin
    C. F. Martin:
    Where I work, we would spend three or four days discussing why green should be the "good" mood. Legal would be brought in. We'd need to justify it to communications. Many would have interesting points on various shades of green. Naturally, the process would be repeated for yellow and red.
    Don't forget to be culturally sensitive! Some people may be offended by yellow. Green could be a political statement. Better run it by HR. Although "run" is not really the operative term there.
  • Anon. (unregistered) in reply to savar
    savar:
    Anon:
    They had it all wrong and missed some critical steps:
    1. Process the report from the database
    2. Render the icon in memory
    3. Save the image to the server's hard drive
    4. Print out image
    5. Put image on wooden table
    6. Photograph image
    7. Scan image back into server
    8. Render that image within the web page
    9. Do all of this on the web site without conflicting with other alerts or users within the file system web site

    alex just blue you

    Does "blue" mean too healthy, one step above green?

  • Anon (unregistered) in reply to Block Progress
    Block Progress:
    C. F. Martin:
    Where I work, we would spend three or four days discussing why green should be the "good" mood. Legal would be brought in. We'd need to justify it to communications. Many would have interesting points on various shades of green. Naturally, the process would be repeated for yellow and red.
    Don't forget to be culturally sensitive! Some people may be offended by yellow. Green could be a political statement. Better run it by HR. Although "run" is not really the operative term there.

    Don't forget the colorblind!

  • Shial (cs)

    Basically they were trying to stop scope creap. It always starts as something little that you can add, then its another item, then another, before you know it the project is months behind and millions over budget. Nip it in the bud before it can grow.

  • Bappi (cs) in reply to Shial
    Shial:
    scope creap
    You mipselled "scope crepe".

    HTH.

  • tuna (unregistered) in reply to Anon
    Comment held for moderation.
  • Steve (unregistered)

    Put me in the column of folks who don't get it.

    I'm not a databaser so I'm probably way out of my depth here and will take my insults off the air, thanks, but it strikes me that in the previous system there was some metric used to determine the "goodness" of the report -- that apparently already worked. So how difficult would it be to transfer/port that calculation to the new system and flag the report with whatever icon, background color, bell, or whistle that the user wanted.

    What am I missing? I assume it's something obvious, so be gentle.

  • Outlaw Programmer (cs)

    Those algorithms are so complicated that they will never get them working. I suggest the following:

    1. Print each report out.
    2. Feed each page through a scanner and run OCR on it.
    3. Have another program looking for words like "ERROR", "WARNING", "CATACLYSM". If any of these are found, have the screen flash in the appropriate color.
    4. Hire an intern/consultant to run this program. When he sees the screen flash, he puts a colored sticker (preferably dot-shaped) on the corner of the report.
    5. Staple the report back together.

    Infinitely scalable: just add more interns, printers and scanners. Also infinitely extensible: adapts well to more colors, different shapes, etc.

  • my name is missing (unregistered)

    I think this site needs to add colored images to every comment.

  • John Hensley (unregistered)

    TRWTF is the phrase "custom web browser."

  • ! (unregistered)

    IBQ (the ones responsible for the report app) originally planned to implement the mood in their brand new database, but they forgot. When IBP questioned IBQ about the lack of moods, they made up a whole bunch of bunk to hide their forgetfulness.

    Captcha: nibh. It's like a word, but with an "h" at the end.

  • Walleye (cs) in reply to Quango
    Quango:
    I don't get this one..

    "..an extreme challenge to manage the thousands of icon files.."

    There are only three: red, yellow, green. Why create them dynamically? Just reference static ones?

    Or did IBQ just not want to do the work?

    But it's a WEB site. That means that you might have thousands of users at a time, so you need thousands of icon files. Maybe millions.

  • Khazwossname (unregistered) in reply to my name is missing
    my name is missing:
    I think this site needs to add colored images to every comment.

    Racist.

  • akatherder (cs) in reply to Walleye
    Walleye:
    Quango:
    I don't get this one..

    "..an extreme challenge to manage the thousands of icon files.."

    There are only three: red, yellow, green. Why create them dynamically? Just reference static ones?

    Or did IBQ just not want to do the work?

    But it's a WEB site. That means that you might have thousands of users at a time, so you need thousands of icon files. Maybe millions.

    Not if you have a good backup solution. Every time someone downloads the file you can just restore from backups. It saves the graphic artists people from redrawing all day.

  • mike (unregistered) in reply to Anon

    Nice.

    Actually I was thinking that you only need three (or five, ten, whatever) images, and you just choose which one to link to. Or, put them all in the page and use ajax to make one visible.

  • Bappi (cs) in reply to Khazwossname
    Khazwossname:
    my name is missing:
    I think this site needs to add colored images to every comment.

    Racist.

    Oh really? So how do you explain the fact that the comments currently only have white images on a white background?

  • Franz Kafka (unregistered) in reply to Steve
    Steve:
    Put me in the column of folks who don't get it.

    I'm not a databaser so I'm probably way out of my depth here and will take my insults off the air, thanks, but it strikes me that in the previous system there was some metric used to determine the "goodness" of the report -- that apparently already worked. So how difficult would it be to transfer/port that calculation to the new system and flag the report with whatever icon, background color, bell, or whistle that the user wanted.

    What am I missing? I assume it's something obvious, so be gentle.

    The big question is, of course, what constitutes a good mood for the report; if this was a rewrite, it's possible that the original logic is either hopelessly byzantine or that the design has changed enough to make it irrelevant. Regardless, I'd oppose the whole mood thing (unless specced by the client) on the grounds that it would lead people to rely on it instead of actually reading the report.

  • the amazing null (unregistered)

    it seems all of that BS could be shortened to: 1.generate report 2.determine colored dot to use 3.add dot

    you know, assuming that they could just reuse already generated dots in one of three colors that were already on the drive.

    this kind of reminds me of those star trek voyager episodes when the evil group of aliens [read: people with model parts and foamcore glued to their eyes, foreheads or chests] 'download' something from the ship and suddenly, the ship does not work because, evidently, this team designed the copy/paste integration software for the ship.

  • Franz Kafka (unregistered) in reply to Anon
    Anon:
    Block Progress:
    C. F. Martin:
    Where I work, we would spend three or four days discussing why green should be the "good" mood. Legal would be brought in. We'd need to justify it to communications. Many would have interesting points on various shades of green. Naturally, the process would be repeated for yellow and red.
    Don't forget to be culturally sensitive! Some people may be offended by yellow. Green could be a political statement. Better run it by HR. Although "run" is not really the operative term there.

    Don't forget the colorblind!

    Green circle, Yellw Triangle, Red X.

  • snoofle (cs) in reply to Anon
    Anon:
    They had it all wrong and missed some critical steps:
    1. Process the report from the database
    2. Render the icon in memory
    3. Save the image to the server's hard drive
    4. Print out image
    5. Put image on wooden table
    6. Photograph image
    7. Scan image back into server
    8. Render that image within the web page
    9. Do all of this on the web site without conflicting with other alerts or users within the file system web site
    But what if there's contention between different users for the camera, wooden table or scanner? Writing good software is hard!
  • snoofle (cs) in reply to mike
    mike:
    use ajax to make one visible.
    But Ajax cleans the spots away...
  • Tarwn (unregistered) in reply to SomeCoder

    What the article and code comment seem to infer is that nothing was storing the report state. Basically each time the report ran a final process would generate an icon file specifically for that report. The image file itself was the only thing storing the state for the report, so no matter how many web browsers hit the site, the image for "Report A" would always be called "Report_A_Mood.jpg" and it would have been generated (and overwritten the previous image) the last time "Report A" was executed. The database addition would have allowed them to store a mood and only have 3 images that could be referred to by mood, for instance "Mood_Green.jpg" rather than by the name of one of thousands of reports.

  • Anon (unregistered) in reply to Franz Kafka
    Franz Kafka:
    Anon:
    Block Progress:
    C. F. Martin:
    Where I work, we would spend three or four days discussing why green should be the "good" mood. Legal would be brought in. We'd need to justify it to communications. Many would have interesting points on various shades of green. Naturally, the process would be repeated for yellow and red.
    Don't forget to be culturally sensitive! Some people may be offended by yellow. Green could be a political statement. Better run it by HR. Although "run" is not really the operative term there.

    Don't forget the colorblind!

    Green circle, Yellw Triangle, Red X.

    Ah...But you forgot about the shape blind! Now what?

  • Anon (unregistered) in reply to Tarwn
    Tarwn:
    The database addition would have allowed them to store a mood and only have 3 images that could be referred to by mood, for instance "Mood_Green.jpg" rather than by the name of one of thousands of reports.

    Surely "Mood_Green.gif" or "Mood_Green.png". It's only a dot!

  • mxsscott (cs) in reply to Anon
    Anon:
    Franz Kafka:
    Anon:
    Don't forget the colorblind!

    Green circle, Yellw Triangle, Red X.

    Ah...But you forgot about the shape blind! Now what?

    They're not colourblind.

  • BeenThere (cs)

    Clearly, the logic that went into the mood determination was the main problem with implementing it - TRWTF is their excuse was so bad, that anyone with a hair of a technical background would be able to call them on it... which could really backfire.

    They should have either said "all reports are green now, since we cleaned everything up so much" or implemented a 'simplified' mood: Green: no missing rows in tables with foreign keys Yellow: maybe a few problems... Red: important table may have been dropped.

    What I'd really like to know is what exactly did the mood imply? What do you do if you have a yellow or red report?

    Do you tell your boss "I have that report you asked for, but I have to warn you - its pretty moody"

    Sounds like a simple "This report generated [x] warnings" tag at the bottom that could be expanded would be far more useful than "unhappy" reports.

  • real_aardvark (cs) in reply to SomeCoder
    SomeCoder:
    jamface:
    Read the comment at the end of the article.

    Comment has been read (again). My previous statement still stands.

    I guess the WTF is supposed to be that the development team lied about how hard it would be?

    Unless the database is a complete clusterfuck, adding one column to a table to add mood shouldn't be that hard.

    Read the comment at the end of your comment.

    Errr...

  • Anon (unregistered) in reply to mxsscott
    mxsscott:
    Anon:
    Franz Kafka:
    Anon:
    Don't forget the colorblind!

    Green circle, Yellw Triangle, Red X.

    Ah...But you forgot about the shape blind! Now what?

    They're not colourblind.

    Not so! I assert that Ray Charles was both color and shape blind. Ha! Now what would you do?

Leave a comment on “Not in the Mood”

Log In or post as a guest

Replying to comment #:

« Return to Article