Frustratingly Profitable



  • Our users need to look at data from another systems' database. As part of our nightly cycle, for performance reasons we grab the data from the other db and stuff it into ours. The original request was to view 3 fields from the remote table which contained about 300+ fields. I suggested we just grab the whole row as it was inevitable that our users would want to see the additional info. No, it would take more time to code and propagate the hundreds of extra new fields through the various parts of our system, so just give them the 3 fields they asked for. It takes about a day to modify all the data structures, config files, JTables, etc. and test everything.

    A week later, they ask for 6 additional fields from the table. We go through the work (and formal release cycle) again. A week later, 7 more fields. Then 3 more. Then 10 more.

    After a few iterations of this, I again asked if we could just code all of it and only expose the ones they asked for. This would eliminate 90+% of the work each time we had to go through this. No, three levels of management look at the code-diffs for each release and they'd see that you changed far more than you were supposed to.

    And so it goes every week. Our users complain that it takes too long to get stuff done but we're not allowed to suggest changes to the way they want stuff done. They also want to know why we only work 40 hours/week (we were working longer until senior management complained that we were running up bills and that we should limit our hours to 40/week).

    I'm a consultant and have lived through 6 similar situations at this place thus far. After the third, I decided that if they are going to ignore my suggestions on improving efficiency, then I'm just going to make the suggestion once and if they decline, then I'll simply go through the motions and keep on billing. If they limit us to 40 hours/week, then the work will simply take longer and my boss will need to deal with the politics.

    Ya gotta love end users.



  • @snoofle said:

    No, three levels of management look at the code-diffs for each release and they'd see that you changed far more than you were supposed to.
     

    :D 

    yeah, right.

    Part of the next release, somewhere:

    //Yo bitches, manage this! 

     



  • Do some proactive comment documentation "in case some other person has to do it in the future" along the lines of the following comment at every place you have to edit the code :p

     /* The following code is used in the Bar process that copies data from the system B database. This code will need to be edited (Give details how for each comment) each time the user's requirements change. */

    The in one obvious place

    /*For future reference the full list of possible fields in the system B database is:

    ID - already included

    Name - Not included

    Foo - Included

    Bar - Not included

    Baz

    */ 

     

    Then maybe a PHB will twig that there could be a better way to do this and come up with "their own great idea".



  • @snoofle said:

    three levels of management look at the code-diffs
    TRWTF.



  •  This is where you find that user who you have a good working relationship with and get him to demand that he needs access to all the fields.



  • @Bumble Bee Tuna said:

    This is where you find that user who you have a good working relationship with and get him to demand that he needs access to all the fields.

     

    +1 insightful.  "Thinking outside the box" became a cliche because it's so often the best way to deal with this sort of crap.

     



  • @snoofle said:

    the remote table which contained about 300+ fields.

    If this is literally a single table with 300+ columns, than there's a WTF right there. (Sadly, I'm dealing with such a WTF system right now.)



  • @blakeyrat said:

    @snoofle said:
    the remote table which contained about 300+ fields.
    If this is literally a single table with 300+ columns, than there's a WTF right there. (Sadly, I'm dealing with such a WTF system right now.)

    I feel your pain - I'm dealing with a table with 302 columns.  To further enhance the WTFery many of the columns have names that end in "_2", "_3" etc, and some are prefixed "Delta_".



  • @upsidedowncreature said:

    @blakeyrat said:

    @snoofle said:
    the remote table which contained about 300+ fields.
    If this is literally a single table with 300+ columns, than there's a WTF right there. (Sadly, I'm dealing with such a WTF system right now.)

    I feel your pain - I'm dealing with a table with 302 columns.  To further enhance the WTFery many of the columns have names that end in "_2", "_3" etc, and some are prefixed "Delta_".

    Mine has evar1 - evar99, then post_evar1 - post_evar99. Of course none of these columns are documented; it took us most of a week to figure out the relationship between evar10 and post_evar10. (There's an evar0, but its inexplicably named campaign.)

    It's also shat out from an Oracle database (I think-- a database with unsigned types, which MS SQL doesn't have), so I've had to write a decently complex Awk script just to massage the data into a format MS SQL likes. Most of the dates in it, for example, are stored as Unix timestamps, so the Awk script parses those into a date format MS SQL can read. (I'm not sure if Oracle stores dates internally as Unix timestamps, which would be a normal WTF, or if the client's back-end inserts Unix timestamps in BigInt fields, which would be a mega WTF.)

    If you're at all familiar with web analytics (one of the solid foundations of WTF in my business) you probably already know what database I'm talking about. It's an analytics tool recently purchased by a company whose name sorta rhymes with a-blowme. This is the same company that's just finished completely destroying one of the web multimedia editors I use frequently, basically they're becoming my personal nemesis at this point.



  • @blakeyrat said:

    company whose name sorta rhymes with a-blowme
     

    To my surprise, there is no ihateadobe.com yet. I'm tempted.



  • @blakeyrat said:

    I'm not sure if Oracle stores dates internally as Unix timestamps, which would be a normal WTF
    ... and why would that be?



  • @Lingerance said:

    @blakeyrat said:
    I'm not sure if Oracle stores dates internally as Unix timestamps, which would be a normal WTF
    ... and why would that be?

    Because a database ought to be able to store dates before 1969 and beyond 2038. For instance, maybe you need your database to store the original purchase date of your long-lasting items, say, a ship. Washington State Ferries is still running ships with hulls from the 1920's... you can't store that data with a Unix timestamp. Shit, my house was built in 1927... good luck putting that in your real estate database if it uses Unix timestamps.

    For comparison sake, MS SQL can store dates back to January 1st, 1753 and up to the year 9999 AD.

    In an ideal world, all date formats would be closer to Mac Classic's. (I know I harp on this, but I still believe Mac Classic did nearly everything correct the first try.) It can store dates from 32,000 BC to 32,000 AD, which is sufficient to cover all of recorded human history to the extent that specific days are known. (Earlier than about 2000 BC, you don't need days, just years-- I'd have to look up what the fist historical event that can be traced to a single day is, that's just a rough guess.)


  • Discourse touched me in a no-no place

    @blakeyrat said:

    Because a database ought to be able to store dates before 1969 and beyond 2038. For instance, maybe you need your database to store the original purchase date of your long-lasting items, say, a ship. Washington State Ferries is still running ships with hulls from the 1920's... you can't store that data with a Unix timestamp.
    You're one of those people who think time_t is restricted to 32 bits, aren't you?:

    In the negative direction, this goes back more than twenty times the age of the universe, and so suffices. In the positive direction, whether the approximately 293 billion representable years is truly sufficient depends on the ultimate fate of the universe, but it is certainly adequate for most practical purposes.

    Now if you wanted to represent times long before the Big Bang or long after the Sun has burnt out, you may still have a problem, but for most situations, 64 bits should be sufficient.


  • @PJH said:

    @blakeyrat said:
    Because a database ought to be able to store dates before 1969 and beyond 2038. For instance, maybe you need your database to store the original purchase date of your long-lasting items, say, a ship. Washington State Ferries is still running ships with hulls from the 1920's... you can't store that data with a Unix timestamp.
    You're one of those people who think time_t is restricted to 32 bits, aren't you?:

    Yesss! Make sure you call me stupid! Awesome forumship there, we gotta prevent that "politeness" thing from ever gaining a foothold.

    Look, I don't know how the fucking fuck Oracle stores dates. Maybe it stores them in hieroglyphics. I don't even know what the fuck "time_t" is or means. (I guess that's the name of the variable that stores the value? Why do you expect me to have memorized an implementation detail?) I apologize for saying anything, ever, anywhere, to anyone.

    Like I said in the original post, the most likely WTF is that the client's system is storing Unix timestamps in the database as a BigInt instead of properly converting them to a DateTime. The "storing dates internally as a Unix timestamp" was just a wild-ass guess on my part.



  • Nice. I totally mis-read PJH's reply, then made an ass of myself, and now I can't delete my post. Oh well, I'm the retard, heap on the derisive laughter.

    It's nice of Community Server to pretend to delete a post, then not really do it though. That's really reassuring.



  • In your defense, you were probably right about the

    @blakeyrat said:

    Maybe it stores them in hieroglyphics.
     



  • @b_redeker said:

    In your defense, you were probably right about the

    @blakeyrat said:

    Maybe it stores them in hieroglyphics.
     

    To answer your deleted post, it's probably some combination of:

    1) Not having coffee yet this morning

    2) Nervousness over the all-hands company meeting today (those are never good, not when the same holding company owns us and our biggest competitor, and they use Lotus Notes)

    3) Feeling compelled to answer threads in response to emailed updates (when the forum emails responses to you, it makes it seem like everybody's talking to you specifically-- I'm just going to turn off emails right now.)

    4) Being an born jackass with many fundamental character flaws

    Anyway, I apologize to PJH for flying off the handle and making assumptions, and to everybody else who had to read this crap.



  • @blakeyrat said:

    Anyway, I apologize to PJH for flying off the handle and making assumptions, and to everybody else who had to read this crap.
    Are you kidding?  Posts like that are why I come to this forum!



  • @blakeyrat said:

    To answer your deleted post, it's probably some combination of:
    1) Not having coffee yet this morning
     

    I feel your pain brother.



  • @Xyro said:

    @blakeyrat said:
    Anyway, I apologize to PJH for flying off the handle and making assumptions, and to everybody else who had to read this crap.
    Are you kidding?  Posts like that are why I come to this forum!

    I too enjoy the occasional Blakeyrat Rant™.



  • @Smitty said:

    @Xyro said:
    @blakeyrat said:
    Anyway, I apologize to PJH for flying off the handle and making assumptions, and to everybody else who had to read this crap.
    Are you kidding?  Posts like that are why I come to this forum!

    I too enjoy the occasional Blakeyrat Rant™.

     

    I think they come about every 4 weeks.

    Not implying anything, just saying.



  • @blakeyrat said:

    @b_redeker said:

    In your defense, you were probably right about the

    @blakeyrat said:

    Maybe it stores them in hieroglyphics.
     

    To answer your deleted post, it's probably some combination of:

    1) Not having coffee yet this morning

    2) Nervousness over the all-hands company meeting today (those are never good, not when the same holding company owns us and our biggest competitor, and they use Lotus Notes)

    3) Feeling compelled to answer threads in response to emailed updates (when the forum emails responses to you, it makes it seem like everybody's talking to you specifically-- I'm just going to turn off emails right now.)

    4) Being an born jackass with many fundamental character flaws

    Anyway, I apologize to PJH for flying off the handle and making assumptions, and to everybody else who had to read this crap.

    If anybody (other than me) cares, they didn't announce a switch to Lotus Notes. They also didn't re-assure us that we'd be sticking with Outlook. They also made a Lotus Notes joke, which makes me feel confident that everybody at this company at least knows what an awful product it is (which doesn't help if our parent company forces it down our throat, but. Still a good sign.)

    This Twitter search may or may not have anything to do with the anonymous company I anonymously work for anonymously.



  • Similarly, this story may or may not be relevant to your angst?



  • @b_redeker said:

    Similarly, this story may or may not be relevant to your angst?

    And a certain French ad agency holding company is basically the largest WTF environment I've ever come across. And I've worked in healthcare.



  • @Smitty said:

    @Xyro said:
    @blakeyrat said:
    Anyway, I apologize to PJH for flying off the handle and making assumptions, and to everybody else who had to read this crap.
    Are you kidding?  Posts like that are why I come to this forum!

    I too enjoy the occasional Blakeyrant™.

    FTFY



  •  Things like this are why I'm glad I work where I do (even if we've been featured on The Daily WTF... twice...).  We'll flat-out tell our customers "no" if they ask for something that doesn't make sense to do, or that there's a far better way to do, and our management will back that move all the way to our CEO.

     Hell, "Give the customers what they need, not what they ask for" is a phrase that's practically drilled into our heads.



  • @Cat said:

     Things like this are why I'm glad I work where I do (even if we've been featured on The Daily WTF... twice...).  We'll flat-out tell our customers "no" if they ask for something that doesn't make sense to do, or that there's a far better way to do, and our management will back that move all the way to our CEO.

     Hell, "Give the customers what they need, not what they ask for" is a phrase that's practically drilled into our heads.

     

    I worked at a place like that once, and then I had to go and eat the apple some snake gave my wife.


Log in to reply