• SR (unregistered)

    "Some scientists claim that hydrogen, because it is so plentiful, is the basic building block of the universe. I dispute that. I say there is more stupidity than hydrogen, and that is the basic building block of the universe."

    Frank Zappa

  • (cs)

    Ouch, this one really hurts... I would feel so f*cked up inside if I knew my manager was keeping something like this at bay. I wouldn't even (neccessarily) want the credits for such a fix, but simply knowing that it could be so much better would bug me...

  • Fer (unregistered)

    Oh, come on, this is par for the course.

    Everyone knows you have to release version 1 with some slow down loops and disk space hogging temp files, so that when version 2 comes to market you can say it is faster and smaller despite all the new bloat. Oh and let's not forget "our most secure version yet" meaning it only needs 97 critical patches after installation.

    The only place you (usually) can't get away with this is open source.

  • Patrik (unregistered)

    They should have done the upgrade secretly. A hit-and-run-and-mdash upgrade.

  • WTF Junkie (unregistered)

    I have a comment, but I can't put it here because it is confidential.

  • &mdash (unregistered)

    Political battle over, basically IT, in the military... Don't they have more important things to focus on?

  • Mike Beauregard (unregistered)

    Grown up people scuffling like small children ruin big companies and even countries. Yuck!

  • Gumpy Guss (unregistered)

    The real WTF was passing in the parameters by value. Just put a "const" or "var" in the declaration so the parameters are passed by address and the run time would really go down.

    Even better, there should be no need to compare strings at all in this kind of app. It's quit likely the values could be simple enumerated constants.

  • blah (unregistered)

    Idiots. They should have hit Ctrl+C to make it finish faster.

  • &mdash (unregistered) in reply to Mike Beauregard

    Also, they were wasting their breath, as the whole project was never upgraded and as a result was cut.

    So all of their confidential bickering just wasn't worth it I guess.

    Also, isn't posting this article a violation of confidentiality?

  • Shinobu (unregistered)

    If this were in the private sphere I probably couldn't care less, but as a military subcontractor, they were indirectly pissing away tax money. Normally I would say ‘Well you get what you deserve, I guess.’ but in this case the People got it while the manager deserved it and that stings. But of course, more errors were made, like for example the bic-muncher who was confronted with a project over budget and never stopped and asked why that was. Or the programmer for that matter. Confidential my ass, he knew his manager was flushing money down the toilet on the public purse, so he is morally responsible as well.

  • (cs) in reply to Shinobu

    This sitaution happened to me once, working for a small private company. I couldn't force it through, so I left --- I knew that if the boss was willing to screw the customer, he could easily do it to the employees as well.

  • SoonerMatt (unregistered) in reply to steenbergh
    steenbergh:
    Ouch, this one really hurts... I would feel so f*cked up inside if I knew my manager was keeping something like this at bay. I wouldn't even (neccessarily) want the credits for such a fix, but simply knowing that it could be so much better would bug me...

    Isn't this only a project manager? Where I work project managers are in a different department and are, in no way, higher up the totem pole.

    As a coder we complete tasks based on the requirements gathered by the PM or BA. Hell half the crap (most often the most fun stuff) never makes it to prod.

  • (cs)

    If you read this comment I'm gonna have to kill you.

  • Ethan Qix (unregistered) in reply to &mdash
    &mdash:
    Also, isn't posting this article a violation of confidentiality?

    Even if it is, he whole thing got scrapped, so big deal :)

    captcha : ...nah, i'm kidding.

  • (cs)

    That's just sad. How do you get rid of managers like that?

  • Populus (unregistered) in reply to Fer
    Fer:
    Oh, come on, this is par for the course.

    Everyone knows you have to release version 1 with some slow down loops and disk space hogging temp files, so that when version 2 comes to market you can say it is faster and smaller despite all the new bloat. Oh and let's not forget "our most secure version yet" meaning it only needs 97 critical patches after installation.

    The only place you (usually) can't get away with this is open source.

    You only get away with it in open source because virtually no product ever makes it to version 1

  • (cs)

    Can you see it. (needs a question mark instead of period.) Several other typos, some already mentioned. Anybody at least proof it ?

  • Georgem (unregistered) in reply to Kiss me I'm Polish
    Kiss me I'm Polish:
    That's just sad. How do you get rid of managers like that?

    Wait 25 years for massive cultural change, I guess

  • (cs)

    pouring over the code eh? I don't want to know what he was pouring over the code... well, with code like that, hopefully it was molten lead or boiling oil or something equally unpleasant.

    Seriously though, what the fuck? the code AND the management are the WTF here, I guess that's par for the course in military-industrial complex stuff.

    Also, Alex/others: Can you guys just IP ban the idiots spamming the inane comments at the start of every thread? This is getting ridiculous.

  • (cs) in reply to kastein
    kastein:
    pouring over the code eh? I don't want to know what he was pouring over the code... well, with code like that, hopefully it was molten lead or boiling oil or something equally unpleasant.
    That's an intransitive use of "pouring". I suspect that his brain melted and flowed out of his ears.
  • (cs) in reply to Mike Beauregard
    Mike Beauregard:
    Grown up people scuffling like small children ruin big companies and even countries. Yuck!

    Yes! How old are those people, twelve? Eight? Come on, grow up and act like adults.

  • CPas (unregistered)

    The real WTF is the 'hero' not knowing what declaring a 'var' parameter does.

  • (cs) in reply to Georgem
    Georgem:
    Kiss me I'm Polish:
    That's just sad. How do you get rid of managers like that?

    Wait 25 years for massive cultural change, I guess

    Massive cultural change takes longer than that. 25 years can cause death or retirement, though.

  • Georgem (unregistered) in reply to heltoupee
    heltoupee:
    Georgem:
    Kiss me I'm Polish:
    That's just sad. How do you get rid of managers like that?

    Wait 25 years for massive cultural change, I guess

    Massive cultural change takes longer than that. 25 years can cause death or retirement, though.

    Erm, I didn't say 25 +consecutive+ years, did I?</backpedal>

    You know what I mean, though. 25 years ago, disagreeing with management was a lot less doable than it is now. In this position, today, in my role, I'd simply make the change, and that would be that. No meeting first to discuss it, I'd just be tasked with "speed this up, will ya?" and get a pat on the back when I was done.

  • Jeff (unregistered)

    I agree that 'confidential' was probably getting thrown around here more than necessary; however, 'Confidential' is an actual DoD Security Classification level. As much as the situation sucks, if those meetings really were confidential, divulging could cost him not only his job, but also his security clearance, rendering him unable to get a job elsewhere in the defense/military contracting industry.

  • noway! (unregistered)

    Why didn't they just press CTRL+C, so it finished faster?

  • Jeroen Brattinga (unregistered)

    The worst part is ... this is a story that got out. How many other WTF code is sucking the life out of unsuspecting engineers?

  • -*-*-*- (unregistered)

    I work for a huge American IT company, which I shall not name here. At least here in this small European country, we can do pretty much whatever the fuck we want.

    I'm not even a software developer, but having quite a bit of experience in that field, I've come up with some applications that really, really help us in our day-to-day work.

    Nice.

  • Addison (unregistered) in reply to &mdash
    &mdash:
    Also, isn't posting this article a violation of confidentiality?

    You can divulge as much as you like as long as it's not specific. I have had psychiatrists tell me about patients their all the time. Because they're not saying who it is there's no problem.

  • panzi (unregistered)

    I thought pascal supports arrays with arbitrary lengths:

    function eval_strings_are_equal(s1:string[], s2:string[]):Integer
        «reasonably efficient string compare function implementation here»
    end

    Or is that a "new" feature of pascal that wasn't available at the time? Isn't there any call-by-reference semantic in old pascal?

  • Jammo (unregistered) in reply to blah
    blah:
    Idiots. They should have hit Ctrl+C to make it finish faster.

    Not one of them was an Irish girl.

  • Murray (unregistered) in reply to kastein
    kastein:
    pouring over the code eh? I don't want to know what he was pouring over the code... well, with code like that, hopefully it was molten lead or boiling oil or something equally unpleasant.

    Seriously though, what the fuck? the code AND the management are the WTF here, I guess that's par for the course in military-industrial complex stuff.

    Also, Alex/others: Can you guys just IP ban the idiots spamming the inane comments at the start of every thread? This is getting ridiculous.

    Agreed, i have yet to see one that is funny and not generic. Take funny snippet or general punchline from story, replace noun with comment and post.

  • jay (unregistered)

    I cry "complete fiction"! I don't believe that this story ever happenned. Really now, "Five years later, when it came time for budget cuts, the entire Electrical Capabilities project — military personnel and all — was cut for good. Apparently, the auditors weren't too thrilled that engineers just sat around all day, waiting for some program to run." A government project cancelled because it resulted in government employees wasting time? Come on, now. Has any project in the entire history of the U.S. government ever been cancelled because it was discovered that government employees were sitting around doing nothing? I don't believe it. I worked as a government contractor for 15 years, and I only saw two things that ever got a project manager in trouble: 1. Failing to fill out all the correct forms; and 2. Failing to spend your entire budget before the end of the fiscal year.

  • (cs) in reply to Shinobu
    Shinobu:
    If this were in the private sphere I probably couldn't care less, but as a military subcontractor, they were indirectly pissing away tax money. Normally I would say ‘Well you get what you deserve, I guess.’ but in this case the People got it while the manager deserved it and that stings. But of course, more errors were made, like for example the bic-muncher who was confronted with a project over budget and never stopped and asked why that was. Or the programmer for that matter. Confidential my ass, he knew his manager was flushing money down the toilet on the public purse, so he is morally responsible as well.

    The DoD has a fraud, waste, and abuse hotline. The developer could've called this number and reported the problem to them and gotten it fixed. Best of all, you get full whistle blower protection when you do this (and can even earn a bounty on the money you save the government). He would've been stuck dealing with a pissed off project manager after this, but with the whistle blower protection he would have been relatively sure not to suffer any real consequences.

  • Ken B (unregistered)
    "Yeah, yeah," he brushed off, "we'll keep it as our 'ace in the hole' in case they complain about slowness after the upgrade. We'll show 'em that we're not the ones who are causing all the problems."
    No, no, no! You've got that backwards. You implement the change, and tell the users, "see, we fixed their problem". And, you don't tell the contractor about the change. Then, when ("if"?) the upgrade comes along, and things slow down again, you once again tell the users "see, it's their problem again", and once again become the hero by applying the patch again. (After verifying that it still only needs 8 chars.)
  • Ken B (unregistered)
    "Yeah, yeah," he brushed off, "we'll keep it as our 'ace in the hole' in case they complain about slowness after the upgrade. We'll show 'em that we're not the ones who are causing all the problems."
    No, no, no! You've got that backwards. You implement the change, and tell the users, "see, we fixed their problem". And, you don't tell the contractor about the change. Then, when ("if"?) the upgrade comes along, and things slow down again, you once again tell the users "see, it's their problem again", and once again become the hero by applying the patch again. (After verifying that it still only needs 8 chars.)
  • Deep Throat (unregistered) in reply to Jeff
    Jeff:
    I agree that 'confidential' was probably getting thrown around here more than necessary; however, 'Confidential' is an actual DoD Security Classification level. As much as the situation sucks, if those meetings really were confidential, divulging could cost him not only his job, but also his security clearance, rendering him unable to get a job elsewhere in the defense/military contracting industry.

    Close.

    Presuming that the Project Manager had the authority to elevate this discussion to that of Classified Confidential and then did so, anyone with proper clearance could be told this information at any time without fear of losing his job or clearance, since they would have the requisite security clearance. Officially Classifying the meeting does not make the information confidential between only the two of them.

    My guess is that, by Classifying the meeting as Confidential, the PM wanted to keep the bug fix information out of the hands of the Contractor -- the only ones authorized to implement this fix due to the contract -- who might not have that level of clearance, so he could use that info as political leverage. This classification would not keep the PM's colleagues and superiors from this information.

    Or more likely, the PM wanted to keep the meeting confidential between the two of them, rather than officially designating it Classified Confidential which would have opened the information up to many more people.

    In fact, if this location were that secure, it's likely the receptionist has Confidential clearance.

    I would have kept mum as asked until the first missed deadline and then returned to the PM and tried to convince him to get the contractor to fix the bug. From there, depending on the organization, I would have elevated it to his boss.

  • Deep Throat (unregistered) in reply to CaptainSmartass
    CaptainSmartass:
    The DoD has a fraud, waste, and abuse hotline. The developer could've called this number and reported the problem to them and gotten it fixed. Best of all, you get full whistle blower protection when you do this (and can even earn a bounty on the money you save the government). He would've been stuck dealing with a pissed off project manager after this, but with the whistle blower protection he would have been relatively sure not to suffer any real consequences.

    oh, yeah. Forgot about FWA....

  • Matt (unregistered) in reply to jay
    jay:
    I cry "complete fiction"! I don't believe that this story ever happenned. Really now, "Five years later, when it came time for budget cuts, the entire Electrical Capabilities project — military personnel and all — was cut for good. Apparently, the auditors weren't too thrilled that engineers just sat around all day, waiting for some program to run." A government project cancelled because it resulted in government employees wasting time? Come on, now. Has any project in the entire history of the U.S. government ever been cancelled because it was discovered that government employees were sitting around doing nothing? I don't believe it. I worked as a government contractor for 15 years, and I only saw two things that ever got a project manager in trouble: 1. Failing to fill out all the correct forms; and 2. Failing to spend your entire budget before the end of the fiscal year.

    Paragraph fail.

  • Americium (unregistered) in reply to panzi
    panzi:
    I thought pascal supports arrays with arbitrary lengths:
    function eval_strings_are_equal(s1:string[], s2:string[]):Integer
        «reasonably efficient string compare function implementation here»
    end
    Or is that a "new" feature of pascal that wasn't available at the time? Isn't there any call-by-reference semantic in old pascal?

    There are two ISO Pascal standards. Standard Pascal is essentially Wirth's definition. ISO Extended Pascal supports arbitrary length strings.

    Almost no Pascal on the market follows ISO Extended Pascal. They have non-standard ways to do everything.

    As pointed out before, VAR parameters are Standard Pascal's way to provide call-by-reference semantics.

    procedure noCopy(VAR myString:char[256]);

  • Jeff (unregistered) in reply to Deep Throat
    Deep Throat:
    Jeff:
    I agree that 'confidential' was probably getting thrown around here more than necessary; however, 'Confidential' is an actual DoD Security Classification level. As much as the situation sucks, if those meetings really were confidential, divulging could cost him not only his job, but also his security clearance, rendering him unable to get a job elsewhere in the defense/military contracting industry.

    Close.

    Presuming that the Project Manager had the authority to elevate this discussion to that of Classified Confidential and then did so, anyone with proper clearance could be told this information at any time without fear of losing his job or clearance, since they would have the requisite security clearance. Officially Classifying the meeting does not make the information confidential between only the two of them.

    My guess is that, by Classifying the meeting as Confidential, the PM wanted to keep the bug fix information out of the hands of the Contractor -- the only ones authorized to implement this fix due to the contract -- who might not have that level of clearance, so he could use that info as political leverage. This classification would not keep the PM's colleagues and superiors from this information.

    Or more likely, the PM wanted to keep the meeting confidential between the two of them, rather than officially designating it Classified Confidential which would have opened the information up to many more people.

    In fact, if this location were that secure, it's likely the receptionist has Confidential clearance.

    I would have kept mum as asked until the first missed deadline and then returned to the PM and tried to convince him to get the contractor to fix the bug. From there, depending on the organization, I would have elevated it to his boss.

    Close.

    You need more than the appropriate security clearance; you also must "need-to-know". I have a Secret clearance, but that doesn't mean I get to see anything classified as Secret or lower; only those things that I need to know about. While the argument could be made that the primary contractor certainly needed to know, the problem is that the person requesting the information doesn't get to decide if they need to know. Thus, the Project Manager could have decided that nobody outside the two of them needed to know that information.

  • Rim Job (unregistered) in reply to Deep Throat
    Deep Throat:
    CaptainSmartass:
    The DoD has a fraud, waste, and abuse hotline. The developer could've called this number and reported the problem to them and gotten it fixed. Best of all, you get full whistle blower protection when you do this (and can even earn a bounty on the money you save the government). He would've been stuck dealing with a pissed off project manager after this, but with the whistle blower protection he would have been relatively sure not to suffer any real consequences.

    oh, yeah. Forgot about FWA....

    Holy crap long time no see.

  • Dan (unregistered) in reply to CPas
    CPas:
    The real WTF is the 'hero' not knowing what declaring a 'var' parameter does.

    You mean like preventing any constant string from being passed in?

    Are pointers a Turbo Pascal thing? If they existed in whatever Pascal they were programming in, that's probably what should have been used.

  • C (unregistered) in reply to panzi
    panzi:
    I thought pascal supports arrays with arbitrary lengths:
    function eval_strings_are_equal(s1:string[], s2:string[]):Integer
    Or is that a "new" feature of pascal that wasn't available at the time?
    I might have forgotten the specific details since i faded out of Pascal all those years ago, but i believe i remember "string" (without any brackets whatsoever) would mean an arbitrary-length string...
  • Anonymous (unregistered) in reply to heltoupee
    heltoupee:
    Massive cultural change takes longer than that. 25 years can cause death or retirement, though.

    You're not taking The Singularity into account, obviously.

  • Overpaid and Unserworked (unregistered)

    The smart thing to do would be release the 256-byte fix right away, then shave away another bit of resolution each year. He could milk years of upgrades out of it by going to 128, then 64, 32, 16, 8. All the while the customer is happy because it's getting faster.

  • (cs) in reply to Jeff
    Jeff:
    I agree that 'confidential' was probably getting thrown around here more than necessary; however, 'Confidential' is an actual DoD Security Classification level. As much as the situation sucks, if those meetings really were confidential, divulging could cost him not only his job, but also his security clearance, rendering him unable to get a job elsewhere in the defense/military contracting industry.
    Yea, it's very easy to say "oh man I'd stand up to that guy and push this through anyway" when you're sitting on the sidelines. When you're faced with the decision whose result is possibly your job and entire career experience it usually causes you to be a bit more cautious.

    Also if he truly felt that strongly about it the correct approach is not to force it through. You either lodge a formal complaint (and since this is the government there's plenty of red tape to do that) or quit.

  • Zoc (unregistered)

    Goddamnitsomuch.

    I daily thank TheDailyWTF for showing me how lucky I am not to work at a place like one of those it covers. I'm unemployed. But it could still be worse.

  • Mike D. (unregistered) in reply to Gumpy Guss

    The WTF I see is that you could do a string[256]. That was non-standard in the Pascals I messed with.

    Background: Pascal strings consisted of a length byte followed by that many characters. So a string[255] took 256 bytes. A string[256] would need a two-byte length and take 258 bytes. Most Pascals didn't support two-byte lengths.

    In the good old (sarcasm, people) Mac OS <=9, 255-byte-max strings were the standard string type used almost everywhere in the API, and were typedef'd as "Str255". So long as you worked with Str255s, you never had to worry about a buffer overrun; even random data could never indicate a string longer than 255 bytes. And strlen() was an O(1) operation.

    Gumpy Guss:
    Even better, there should be no need to compare strings at all in this kind of app. It's quit likely the values could be simple enumerated constants.
    IIRC, Pascal's enums were weird. You couldn't assign values to them and converting to/from ints was painful and illegible (store it, take address-of, typecast pointer, dereference).

    Additionally, you'd have to define all the enums in one place. On a lot of large projects, that's not practical.

    &mdash:
    Also, isn't posting this article a violation of confidentiality?
    Methinks someone is betting on the statute of limitations having expired. That or the project in question has been declassified.
    Kiss me I'm Polish:
    That's just sad. How do you get rid of managers like that?
    That's not the sad part. The sad part is that it probably wasn't that manager's idea. This is a typical defense contractor strategy, and probably originated at the executive levels. So getting rid of the manager would accomplish nothing.

    Those of you who say you hate seeing tax dollars wasted like this... I hope you don't look at your taxes as something to be "gamed," because it's the same thing.

    As for why there was no "var" used... I don't think Pascal had "const var", which would let you guarantee that the string compare did not alter its inputs, so they may not have been allowed to pass them as "var" parameters. Also, I don't remember if you could pass a constant string as a 'var" parameter; I think you couldn't.

    Jeff:
    I agree that 'confidential' was probably getting thrown around here more than necessary; however, 'Confidential' is an actual DoD Security Classification level. As much as the situation sucks, if those meetings really were confidential, divulging could cost him not only his job, but also his security clearance, rendering him unable to get a job elsewhere in the defense/military contracting industry.
    Don't forget the chance at an all-expenses-paid vacation to Fort Leavenworth.

Leave a comment on “The Confidential Upgrade”

Log In or post as a guest

Replying to comment #:

« Return to Article