Whoops, my bad.



  • A not-long-enough time ago, I cut my teeth in this industry at a release-broken-crap-asap type of shop I'm sure we're all very familiar with around here.  I had been on the job for a month or two, and as this had been my first real job in IT, I was still adjusting from the world of personal projects for fun to the world of revenue-generating information systems.  For a new guy, learning your way around an undocumented million-LOC application is a lot to chew on, particularly if said app is long in the tooth.

    One of my more senior coworkers was criticizing me for my apparent difficulty in getting crap out fast.  "We work fast around here, if you can't keep up with us, we're going to have to let you go," he admonished.  It seemed difficult, even unethical, to accept writing software that didn't work and delivering it to the customer, though I did my best to carry on.  One night (night because it was time for our clients to run their quarterly reports, and we were there all day fixing bugs in them* in a rush), I was tracking down a problem where the totals weren't displaying on the report, but they were correct if I ran it for earlier dates.  No underlying data problems, nor a problem with the query aggregating them**.  It was difficult to make progress on it because the client was calling every fifteen minutes for a status update***.  Finally, after stepping through a web of modules, I found the offending code (or rather, the lack of code):

    [code]
    lblFirstQuarterTotals.Text = "";
    lblSecondQuarterTotals.Text = "";
    lblThirdQuarterTotals.Text = "";
    lblFourthQuarterTotals.Text = "";
    if(ReportQuarter[/code]>=[code] 1)
    {
    PrintTotals(lblFirstQuarterTotals,1);
    }
    [/code]

    Incidentally, tonight was time for the second quarter reports. I checked source control**** and guess who was the only one who had ever touched this report?  I get his attention, and in an attempt to be diplomatic, I asked, "Is this how we are supposed to calculate the totals on these reports?"

    "Whoops, my bad, I guess I needed to rush that one out!"

    I copy-pasted ifs for 2, 3 and 4, tested it quickly, checked it in, had my colleague do a build, phoned the client that all was well and went home.

    * Reports were generated and customized using the highly-efficient copy-paste-rename design pattern.

    ** 95% of the issues we encountered with these reports were due to bad data or bad queries, the latter exacerbated by the aforementioned design pattern.

    *** This was the day that I learned the triage/survival tactic that if anyone is yelling and screaming that something needs to be done by the end of the day, they don't mean it unless they are checking up on you every fifteen minutes.

    **** We had a single account to the source control system that was shared among all of us, because management was too cheap to pay for additional seats, so the "change log" was a string of comments in the files.



  • @Groaner said:

    We had a single account to the source control system that was shared among all of us, because management was too cheap to pay for additional seats, so the "change log" was a string of comments in the files.

    Yeah those Subversion licenses are insanely expensive. Especially if you host the server on an Azure Linux VM, the price tag can go up to $15 a month for the entire team.



  • @Ronald said:

    Yeah those Subversion licenses are insanely expensive. Especially if you host the server on an Azure Linux VM, the price tag can go up to $15 a month for the entire team.

    Fifteen dollars a month!? Why, that's enough to upgrade the Boss's Hyundai Sonata lease to "cup holders included"! Look, I know you developers think your little toys are expensive, but the Boss is the face of the company and there's a certain image of success he has to project.



  • @morbiuswilters said:

    @Ronald said:
    Yeah those Subversion licenses are insanely expensive. Especially if you host the server on an Azure Linux VM, the price tag can go up to $15 a month for the entire team.

    Fifteen dollars a month!? Why, that's enough to upgrade the Boss's Hyundai Sonata lease to "cup holders included"! Look, I know you developers think your little toys are expensive, but the Boss is the face of the company and there's a certain image of success he has to project.

     

    Must have gotten some kind of early prototype model for cheap. The cup holders come standard on a Sonata.

    EDIT: Oh, A LEASE ... right, so, cup holders removed and held for extra ransom.



  • @OldCrow said:

    @morbiuswilters said:

    @Ronald said:
    Yeah those Subversion licenses are insanely expensive. Especially if you host the server on an Azure Linux VM, the price tag can go up to $15 a month for the entire team.

    Fifteen dollars a month!? Why, that's enough to upgrade the Boss's Hyundai Sonata lease to "cup holders included"! Look, I know you developers think your little toys are expensive, but the Boss is the face of the company and there's a certain image of success he has to project.

     

    Must have gotten some kind of early prototype model for cheap. The cup holders come standard on a Sonata.

    Where's Blakey's sig when you need it?



  • @morbiuswilters said:

    Where's Blakey's sig when you need it?

    [b]Whoop, whoop, oxymoron alert![/b]



  • @Hmmmm said:

    @morbiuswilters said:
    Where's Blakey's sig when you need it?

    Whoop, whoop, oxymoron alert!

    I don't even..



  • @morbiuswilters said:

    @Ronald said:
    Yeah those Subversion licenses are insanely expensive. Especially if you host the server on an Azure Linux VM, the price tag can go up to $15 a month for the entire team.

    Fifteen dollars a month!? Why, that's enough to upgrade the Boss's Hyundai Sonata lease to "cup holders included"! Look, I know you developers think your little toys are expensive, but the Boss is the face of the company and there's a certain image of success he has to project.

    A guy I know works for a company where they cut 15% from everybody's salary, then put everyone on a 4-week schedule (i.e.: basically another 20% cut), then one month later the sales department got new company cars: four Dodge Vipers (and not the cheap ones at 85k). Only sales people are allowed to drive them, probably because the stink of poor people would hurt the soul of those sales props. Apparently even the CEO does not drive those cars, but he probably doesn't care as he usually fly one of his three helicopters. This may sound like a sick fairy tale but it's not, I've seen two of the three choppers and I haven't visited my friend that often.



  • @Ronald said:

    A guy I know works for a company where they cut 15% from everybody's salary, then put everyone on a 4-week schedule (i.e.: basically another 20% cut), then one month later the sales department got new company cars: four Dodge Vipers (and not the cheap ones at 85k). Only sales people are allowed to drive them, probably because the stink of poor people would hurt the soul of those sales props. Apparently even the CEO does not drive those cars, but he probably doesn't care as he usually fly one of his three helicopters. This may sound like a sick fairy tale but it's not, I've seen two of the three choppers and I haven't visited my friend that often.
     

    Could be worse. One finance company I worked for would buy the Vipers and let the salesmen keep them. Well, what actually happened is the sales guy would 'mention offhand' that he was thinking about replacing his 'old' XK8 with a 911, and wouldn't you know it? Magically his next quarterly bonus included a 'discrecionary performance enhancement' that's exactly the amount a fully loaded Carrera 4 costs!

     



  • @NoOneImportant said:

    discrecionary performance enhancement

    Product cycle

    1. Salesperson meets with customer (expensive dinner, paid for by company, travel and hotel expenses paid by company)
    2. Salesperson sells product to customer complete with non-existant feature, to be delivered when he gets back to the office.
    3. Salesperson calls office on way to airport, tells development manager about new feature and timeline.
    4. Development manager and development team work long, hard weekend and overtime hours to complete feature by promised date.
    5. Salesperson signs contract.
    6. Salesperson gets "discrecionary performance enhancement", trip to Hawaii, etc for job well done.
    7. Development manager gets another call from a different salesperson. Developers again work long overtime and weekend hours.
    8. Development team get tired of doing all the work and not getting the enhancements; leave.
    9. Salespeople get promoted to VPs of something or other.


  • @DrPepper said:

    @NoOneImportant said:
    discrecionary performance enhancement

    Product cycle

    1. Salesperson meets with customer (expensive dinner, paid for by company, travel and hotel expenses paid by company)
    2. Salesperson sells product to customer complete with non-existant feature, to be delivered when he gets back to the office.
    3. Salesperson calls office on way to airport, tells development manager about new feature and timeline.
    4. Development manager and development team work long, hard weekend and overtime hours to complete feature by promised date.
    5. Salesperson signs contract.
    6. Salesperson gets "discrecionary performance enhancement", trip to Hawaii, etc for job well done.
    7. Development manager gets another call from a different salesperson. Developers again work long overtime and weekend hours.
    8. Development team get tired of doing all the work and not getting the enhancements; leave.
    9. Salespeople get promoted to VPs of something or other.

    Wrong on #4. The feature is not completed; it ends up being a partially-functional abomination that only technically meets the terms of the contract.



  • @DrPepper said:

    @NoOneImportant said:
    discrecionary performance enhancement

    Product cycle

    1. Salesperson meets with customer (expensive dinner, paid for by company, travel and hotel expenses paid by company)
    2. Salesperson sells product to customer complete with non-existant feature, to be delivered when he gets back to the office.
    3. Salesperson calls office on way to airport, tells development manager about new feature and timeline.
    4. Development manager and development team work long, hard weekend and overtime hours to complete feature by promised date.
    5. Salesperson signs contract.
    6. Salesperson gets "discrecionary performance enhancement", trip to Hawaii, etc for job well done.
    7. Development manager gets another call from a different salesperson. Developers again work long overtime and weekend hours.
    8. Development team get tired of doing all the work and not getting the enhancements; leave.
    9. Salespeople get promoted to VPs of something or other.

    #10: developers create a fart recording app on iPhone and their startup receive 40 million dollars in VC, then get bought by Yahoo for 10 billions.



  • @Ronald said:

    #10: developers create a fart recording app on iPhone and their startup receive 40 million dollars in VC, then get bought by Yahoo for 10 billions.

    True story.



  • @DrPepper said:

    Product cycle
    1. Salesperson meets with customer (expensive dinner, paid for by company, travel and hotel expenses paid by company) 2. Salesperson sells product to customer complete with non-existant feature, to be delivered when he gets back to the office. 3. Salesperson calls office on way to airport, tells development manager about new feature and timeline. 4. Development manager and development team work long, hard weekend and overtime hours to complete feature by promised date. 5. Salesperson signs contract. 6. Salesperson gets "discrecionary performance enhancement", trip to Hawaii, etc for job well done. 7. Development manager gets another call from a different salesperson. Developers again work long overtime and weekend hours. 8. Development team get tired of doing all the work and not getting the enhancements; leave. 9. Salespeople get promoted to VPs of something or other.
     

    Nope. The company was pure finance and leasing. If they promised something to a customer in an unreasonable time frame, they either included a non-refundable preload in the contract to make it painful to cancel or made any delivery penalty revolve around internal paperwork so he could print a pretend purchase order and spread the blame around. 

    There was a fair bit of shit, like the assistant that got transferred because she couldn't fax to him while he was wilderness camping near Diamondhead and the IT guy that got fired for not making sure the salesguy took his company GSM phone to France instead of his personal CDMA one, but it really wasn't bad. 


Log in to reply