Communication



  • I wrote a small code generator utility program a while back. Part of my job is to change it as required to support various development efforts.

    This year, two guys are doing a graft-on to our system that requires some changes to the utility, and the code it generates.

    First, one of the guys spent two weeks, by himself, without telling anyone, trying to understand why the changes he was making to generated files kept disappearing every time he did a build.

    When someone else just happened to spot what was going on, I got dragged into it and showed him how to modify the source to the code generator.

    Then the second lump of clay decided that he needed to change the arguments to some interface. Over 7 days, the following conversation took place (with every email cc'd to the boss): M=me, B=boss, J1=jerk-1, J2=jerk-2; simplified...

    J1: we need to add parameters to function x: Y and Z

    Me: ok, here's the code...

    J2: no, we need to pass them as:  Z, Y because the system we built to feed this function is hard coded to pass them that way

    Me: ok, here's the code...

    J1: My code doesn't work: I wrote a translator to flip the call from X(...,Z,Y) to X(...,Y,Z) and now it won't compile

    Me: talk to J2: it's already in that format; you don't need your translator

    J1 to J2: why did you do that? I already wrote a translator. I rewrote Snoofle's interface to take the original Y,Z order

    J2 to J1: no, don't spend time on that; it's due in two days and we haven't begun testing yet

    A whole flurry of J1-J2 back and forth arguing over the merits...

    B: let's have a meeting to discuss

    We meet, and after two hours of J1 arguing with J2 decide to simplify by getting rid of the J1's translator and leaving the code with the flipped parameters.

    I know the two jerks are losers for wasting three weeks arguing over nonsense, but I think the boss is worse for letting it go that far, and then allowing a two hour meeting over it.

    ... and no, there was no way I was going to provide two functions with the parameters in different orders to accomodate both because in reality it's about eight parameters and six functions


  • Discourse touched me in a no-no place

    @snoofle said:

    First, one of the guys spent two weeks, by himself, without telling anyone, trying to understand why the changes he was making to generated files kept disappearing every time he did a build.

    I found one solution to that problem round here - top line of the files reads :


    #Auto generated by [in-house] config system - edit at your stupidity


  • @PJH said:

    @snoofle said:
    First, one of the guys spent two weeks, by himself, without telling anyone, trying to understand why the changes he was making to generated files kept disappearing every time he did a build.

    I found one solution to that problem round here - top line of the files reads :


    #Auto generated by [in-house] config system - edit at your stupidity
    We have a generic auto-generated-do-not-modify warning, but apparently it's not enough and the suffix is required


  • @snoofle said:

    @PJH said:

    @snoofle said:
    First, one of the guys spent two weeks, by himself, without telling anyone, trying to understand why the changes he was making to generated files kept disappearing every time he did a build.

    I found one solution to that problem round here - top line of the files reads :


    #Auto generated by [in-house] config system - edit at your stupidity
    We have a generic auto-generated-do-not-modify warning, but apparently it's not enough and the suffix is required

    You need to actually tell people why not to edit it, that's the problem.

    #Auto generated by [in-house] config system - THIS MEANS IF YOU EDIT THIS FILE YOUR EDITS WILL BE ERASED

    Effective communication, man, effective communication!



  • @PJH said:

    @snoofle said:
    First, one of the guys spent two weeks, by himself, without telling anyone, trying to understand why the changes he was making to generated files kept disappearing every time he did a build.

    I found one solution to that problem round here - top line of the files reads :


    #Auto generated by [in-house] config system - edit at your stupidity

    In fact any auto-generated file which doesn't tell you which tool generated it is a guaranteed time-sink for every new member of the team who has to dig through documentation or ask around to find out how to change it.



  • @pjt33 said:

    In fact any auto-generated file which doesn't tell you which tool generated it is a guaranteed time-sink for every new member of the team who has to dig through documentation or ask around to find out how to change it.

    [code]#Auto generated by a very small shell script. Good luck finding me.[/code]



  • Your faith in your co-workers abilities to read and comprehend a comment line is admirable. Misplaced, but admirable.

    Coming from someone who once made a "DO NOT EDIT THIS FILE" message out of ASCII art to try and get the proper level of attention.


  • Discourse touched me in a no-no place

    @RichP said:

    Your faith in your co-workers abilities to read and comprehend a comment line is admirable. Misplaced, but admirable.
    Point taken. It's not just <cough> co-workers who miss that line. Granted I only spent 5 minutes figuring out what was going on that time...



  • @blakeyrat said:

    @snoofle said:

    @PJH said:

    @snoofle said:
    First, one of the guys spent two weeks, by himself, without telling anyone, trying to understand why the changes he was making to generated files kept disappearing every time he did a build.

    I found one solution to that problem round here - top line of the files reads :


    #Auto generated by [in-house] config system - edit at your stupidity
    We have a generic auto-generated-do-not-modify warning, but apparently it's not enough and the suffix is required

    You need to actually tell people why not to edit it, that's the problem.

    #Auto generated by [in-house] config system - THIS MEANS IF YOU EDIT THIS FILE YOUR EDITS WILL BE ERASED

    Effective communication, man, effective communication!

    "I didn't want my edits to be erased, so I deleted the comment at the top of the file. Then I edited the file to put my changes in, and after I'd performed a build, my new changes were erased again! Why, why, WHY?"



  • @snoofle said:

    We have a generic auto-generated-do-not-modify warning, but apparently it's not enough and the suffix is required
    I often mark auto-generated files as read-only (chmod -w or attrib +r).

     



  • @fatbull said:

    @snoofle said:

    We have a generic auto-generated-do-not-modify warning, but apparently it's not enough and the suffix is required
    I often mark auto-generated files as read-only (chmod -w or attrib +r).

     

    Put it in the filename as well: DefaultConfigs.txt --> DefaultConfigs-AUTOGENERATED.txt



    • Moments later the thread found a cure-all for stupidity...


  • @blakeyrat said:

    You need to actually tell people why not to edit it, that's the problem.

    #Auto generated by [in-house] config system - THIS MEANS IF YOU EDIT THIS FILE YOUR EDITS WILL BE ERASED

    Effective Verbose communication, man, effective verbose communication!

    FTFY

    Sadly, such verbosity is sometimes needed when dealing with idiots.



  • @fatbull said:

    I often mark auto-generated files as read-only (chmod -w or attrib +r).

    What about on those systems where everyone logs on as root and all scripts and programs run as root? That's ... normal, ... right?



  • @tdb said:

    FTFY

    Sadly, such verbosity is sometimes needed when dealing with idiots.

    No, it's not verbosity, it's telling the actual implications. Saying "this file is auto-generated" doesn't tell anybody WHY they shouldn't edit it.

    Which road sign do you think would be more effective: "DO NOT PASS" or "DO NOT PASS BECAUSE SERIOUSLY VISIBILITY HERE IS SHIT AND YOU WILL KILL THAT CUTE LITTLE GIRL TWO CARS IN FRONT OF YOU". Unfortunately, road signs have a tight length restriction, but that doesn't apply to your text file.



  • @blakeyrat said:

    Which road sign do you think would be more effective: "DO NOT PASS" or "DO NOT PASS BECAUSE SERIOUSLY VISIBILITY HERE IS SHIT AND YOU WILL KILL THAT CUTE LITTLE GIRL TWO CARS IN FRONT OF YOU".

     

     

    ooh, ooh I know this one: "DO NOT PASS". cos no driver is going to read that really long one.

     

    Not sure how that example is relevant to the thread though. I liked your first example better.

     



  • @blakeyrat said:

    @tdb said:

    FTFY

    Sadly, such verbosity is sometimes needed when dealing with idiots.

    No, it's not verbosity, it's telling the actual implications. Saying "this file is auto-generated" doesn't tell anybody WHY they shouldn't edit it.

    Which road sign do you think would be more effective: "DO NOT PASS" or "DO NOT PASS BECAUSE SERIOUSLY VISIBILITY HERE IS SHIT AND YOU WILL KILL THAT CUTE LITTLE GIRL TWO CARS IN FRONT OF YOU". Unfortunately, road signs have a tight length restriction, but that doesn't apply to your text file.

    On the contrary. "This file is auto-generated" tells exactly why editing it is a bad idea - because it's likely to be generated again and any manual changes discarded. If it said just "Do not edit", now that would be bad.

    Which do you think is more effective on a beach, "SWIMMING FORBIDDEN" or "SHARKS"?



  • @tdb said:

    Which do you think is more effective on a beach, "SWIMMING FORBIDDEN" or "SHARKS"?
    SWIMMING FORBIDDEN, because the idiot who sees SHARKS and decides to pop in the water to have a look will undoubtedly try to sue when he loses a limb.



  • @blakeyrat said:

    Which road sign do you think would be more effective: "DO NOT PASS" or "DO NOT PASS BECAUSE SERIOUSLY VISIBILITY HERE IS SHIT AND YOU WILL KILL THAT CUTE LITTLE GIRL TWO CARS IN FRONT OF YOU".
     

    I've always been partial to:

    Go soothingly on the grease mud, as there lurks the skid demon!



  • Was it because the "autogenerated" file was  in the source control?


Log in to reply