This is madness, no this is just stupid.



  • Hi, first story posted, i'm not english or american so sorry for typos,syntax, broken english and... the very long post :p

    please understand that because this story is not past but currently happening, and my customer's business is really specific, i can't give as many details as i would (lucky for you, post is long enough).

    My customer is a quite big world-sized compagny, kind of a 3-headed Hydrae, ( Us, Europe, Asian heads ).
    I had to deal with the European head. They had an old application, business-critical, but made by inside-people that weren't programmers or DB designers, so you can guess what kind of organic-grown-WTFactory it was ( no real DB design, Access involved... ), can't blame them.
    After years of a slow degradation, they had in fact no real, accurate data, constantly struggling with bogus input.
    We simply rebuilt the whole app from scratch, based on specifications, after a long but useful design time.
    App was done in time, users can reach it from anywhere on the planet, anytime, it works perfectly.
    They were happy with it, it was so much efficient than before, the design of the database is good, every possible checks are handled by the database itself, and the application layer above that also checks things while doing everything to allow an easy use from operators/monkeys.
    Medium-bosses can produce the perfect, accurate reports that the big bosses love, everybody was happy.

    App version 1 was in production for some time, requests for improvements or new features from time to time, but nothing special, maintaining this was cool.
     
    Then the other heads of the Hydrae, still stucked with their own proprietary crappy tools, started to be interested by the new, shiny toy of the European Head.
    "Hey your stuff actually works !, gimme gimme !!"
    So they asked us if the application scope could morph from Europe to Worlwide.
    So we did that, it wasn't that hard, 'cause we saw it coming, and we decided quite early during design to invest (hidden/free for customer) extra time and efforts to build the application so that it could easily handle such a twist ( was that instinct ?, foreseeing dream ?, dunno, smart move anyway )

    App version 2 is in production, requests for improvements or new features from time to time, but nothing special, maintaining this is still cool.

    Now that we deal with the US head, we have to send them some data, via some export files with ev' they need inside.
    For what purpose ? we don't know, not your business they ( let's call him Bob ) said.
    The US Head bought another compagny, so a new whole range of product enters the show, of course, this is not an problem for the app (new sites, customers and products.. normal behaviour).
    No extra-development needed.
    But for a reason that we know nothing about, The US head doesn't want those new products to be part of the export, not your business Bob said.
    To handle that 'Bob' wants the operators to use a special dummy value in an extremely important field that has a totally different purpose every time they manipulate a record involving one of those products.
    Then we should exclude from export every records where this 'magic' value' appears.
    Why this field ? we don't know, not your business Bob said.

    When we first read that, we were horrified.
    Not only this is stupid, it will also break the whole logic of the statistics that rely on that field,( which is extremely important for dispatching info to the good people, building reports etc.. trust me. ), It also relies on the fact that operator will not forget to do something stupid, instead of just using the application as usual when they deal with those products.
    It is just amazing that an It guy has enough guts ( or is dumb enough ) to say that.

    We proposed several good ways to handle this.
    We used several real-world examples to demonstrate that it will not work, will clutter their until-now accurate database with stupid/useless value, that they will have to deal with this for the rest of the Application's lifetime, That it will be impossible for them to get proper stats for this whole range of products (that is extremely important for them)
    No matter how hard we fought to send back the demons of stupidity where they belong, we failed..

    Please note that the European Staff is aware of all this, in fact they totally agree with us, one of the executives even admitted during a 'unnoficial off-the-record chitchat' that the whole Us idea is dumb and Bob a real #censored#

    But there's nothing they can do.

    Meanwhile, we found why Bob refuses to negociate,
    Every other solutions would need Bob to modify his import procedure.
    Even if the simplest was just to add an :

     if ( field.value in a_certain_range ) do_nothing

    line of code.......
    This is still too much for him.
    He doesn't want.
    We know It.
    Everybody at our customer's compagny knows it.

    But things will be done the Brillant! way.

    This whole thing is driving me nuts!
    Alone in my office, I am having visions of a white dog with a pair of glasses and a vicious smile, sitting on my desk, laughing at me.



  • Why not store the odd-value in another table and join as appropriate? Hide the details from the user with a view, or something similar.

    This way, Bob gets what he thinks he wants without you having to trash the internals of an otherwise clean system, and you can sleep at night.

    Good luck!



  • yes.

    We proposed several good ways to handle this.


    using a new field, a stroed proc, a view, tagging the unwanted products so things can evolve without extra dev.. many thing so Bob would'nt have to care

    no way.

    Bob wants it to be wrecked the way HE said ( we fought for weeks before surrender ).
    This is still a mystery how that guy didn't get fired yet.
    He seems protected by some magical charm.

    The only positive point of this total insanity is that we'll charge them ($$$) hardly for dirty work without remorse in a few months when they will ask us to clean this announced mess.



  • One of my earliest jobs was in a company where we had a boss that kept adding crazy logic like that to the solution on which we were working.

    The solution was designed to be one of the two main products of the company portfolio. But it was already so doomed with so many WTF's from that boss that it became impossible to go on. Even though all kinds of resources were raking in (the boss superiors were betting high on that project's success), eventually the whole of the dev team quit. I was the last one to quit - everybody else had quit one week earlier than me (all on the same day, for the boss despair).

    I'm coming up with this because 9 out of every 10 WTF's he'd come up with were magic tricks like the one you mentioned, which I personally call "database raping" if I got it right. And our tricks were also not negotiable.



  • Easy thing to solve. Tell Bob's boss to fire Bob or else you stop working on it for them.



  • @henke37 said:

    Easy thing to solve. Tell Bob's boss to fire Bob or else you stop working on it for them.

    and most importantly, WHY!



  • [quote user="Renan "C#" Sousa"] ...eventually the whole of the dev team quit. I was the last one to quit...[/quote]

    I too worked for someone like that. This guy lived in Rational, and kept changing his model. For 5 full months. Until 2 months before delivery I pointed out that we hadn't started to do actual work yet, and that the users didn't care about a model.

    In the space of 4 months, all 7 developers on the team quit (I happened to leave 3rd), until it was just the project leader who ultimately delivered the "system", minus most of the required features, 2 years late. And he got promoted for it.

    Pardon the quote, but sometimes, the only way to win is not to play the game.

     



  • @henke37 said:

    Easy thing to solve. Tell Bob's boss to fire Bob or else you stop working on it for them.

    We (my compagny) wish we could do that.
    But we have many projects running on different topics with that customer, mainly because of the success story of this one..
    We cannot afford to take the risk that they don't fire him and stop having business with us, i mean we could, but we would lose a lot of possible profit.
    And he wouldn't be fired, We already gave them 10 times enough things to bump him if they were ready to do that.
    That guy is protected, in a way or another, frustrating.



  • If that's so, then Bob's boss is as guilty as Bob himself for all the things Bob does wrong.



  • [quote user="Renan "C#" Sousa"]

    If that's so, then Bob's boss is as guilty as Bob himself for all the things Bob does wrong.

    [/quote]

    To be honest, the whole US IT staff acts weirdly.

    Maybe that's because they are a big kick-ass american compagny and we're just a really small european one,

    but everything they say is godspeak, everything they do is genius

    while everything we do or say is shit.

    Other two heads of the story do not behave that way, although they are equal/superior in size, or profit.
     



  • (...) IT staff acts weirdly.

    Geeks worldwide aren't models of sanity, nor normality. I am considering that for a signature >:D

    (...)but everything they say is godspeak, everything they do is genius

    while everything we do or say is shit.(...)

    Commonplace in many companies, and not only on IT related stuff. There is always the risk of having to work with assholes no matter where you go. I wish you good luck on getting rid of your Bob problems. Anyway, be strong, and never give up. Always do your best. If you just do your work well someday you might be promoted (or get a better job somewhere else) and then you'd be in a position in which you wouldn't have to deal with Bob and the likes of him. Maybe there'll be some other kinds of assholes, but I believe the current to be of the worst kind.



  • @MustBeUsersFault said:

    yes.

    We proposed several good ways to handle this.


    using a new field, a stroed proc, a view, tagging the unwanted products so things can evolve without extra dev.. many thing so Bob would'nt have to care

    no way.

    Bob wants it to be wrecked the way HE said ( we fought for weeks before surrender ).
    This is still a mystery how that guy didn't get fired yet.
    He seems protected by some magical charm.

    The only positive point of this total insanity is that we'll charge them ($$$) hardly for dirty work without remorse in a few months when they will ask us to clean this announced mess.

     

    If you really can do it (1) cleanly and (2) in such a way that Bob won't notice unless he explicitly peeks into your system's internals, then do it that way, and then tell Bob that you did it his way.  (And explain to your users how they need to do the same two things.)  And then cross your fingers that he won't actually bother to peek.  Like Penn and Teller say, "it's easy - all you have to do is lie".

     

    You should also put things in motion to get Bob fired for his incompetence, but like you said, that's a longer-term project.

     



  • @emurphy said:

    If you really can do it (1) cleanly and (2) in such a way that Bob won't notice unless he explicitly peeks into your system's internals, then do it that way, and then tell Bob that you did it his way.  (And explain to your users how they need to do the same two things.)  And then cross your fingers that he won't actually bother to peek.  Like Penn and Teller say, "it's easy - all you have to do is lie".

    You should also put things in motion to get Bob fired for his incompetence, but like you said, that's a longer-term project.

    In fact, we still have a "hide-from-bob-and-do-it-clean" solution, but our customer's european staff's contacts ( which are 'sane' people, definitely not stereotypical customer if you see what i mean ) still do hesitate about it ( and will probably give up too), because of US legal/law related reasons i can't really explain here.

    And for the motion thing, i'm just the main dev on this project, i don't (can't) do politics, and as you've pointed, longer terms things are involved.

    I posted this story because it is clearly a WTF for me, everybody (we, them) knows it is insane, but i know that in the end, the insane solution will win
     



  • I solved this problem many years ago. I quit a job because of just this kind of stupidity. At every job interview after that, I have explained that I will not do something if I do not believe that it is the right thing to do. I explained that this may sometimes be irritating, but the benefit will be that you will have my personal assurance that anything I do for you is done right. Problem solved.



  • @joelkatz said:

    At every job interview after that, I have explained that I will not do something if I do not believe that it is the right thing to do. ... [The] benefit will be that you will have my personal assurance that anything I do for you is done right.

    I see. And all these companies have your reliable assurance that you will always know what the right way to do something is? ;-)



  • @joelkatz said:

    I explained that this may sometimes be irritating, but the benefit will be that you will have my personal assurance that anything I do for you is done right. Problem solved.

    The next Bob?



  • @dande said:

    @joelkatz said:
    I explained that this may sometimes be irritating, but the benefit will be that you will have my personal assurance that anything I do for you is done *right*. Problem solved.

    The next Bob?

     

    Exactly what I was thinking. I bet Bob has the same philosophy that this guy does.


  • Discourse touched me in a no-no place

    @pyro789x said:


    @dande said:
    @joelkatz said:
    I explained that this may sometimes be irritating, but the benefit will be that you will have my personal assurance that anything I do for you is done *right*. Problem solved.

    The next Bob?


    Exactly what I was thinking. I bet Bob has the same philosophy that this guy does.

    I fail to STR - hint please?

     



  • If I don't know what the right thing to do is, obviously I can't do the right thing. But that's true of anybody. If I don't know what the right thing to do is, they have to tell me. Again, that's true of anybody.

    The difference is, they also have to convince me that it's right. If they can't, I won't do it. If they don't trust my judgment about the wisdom of the tasks they want me to do, then I'll gladly work someplace that does.

    A human being is not an instrument. It has responsibility for what it does and so can never excuse mistakes by claiming it was only following orders.



  • @joelkatz said:

    If I don't know what the right thing to do is, obviously I can't do the right thing. But that's true of anybody. If I don't know what the right thing to do is, they have to tell me. Again, that's true of anybody.

    The difference is, they also have to convince me that it's right. If they can't, I won't do it. If they don't trust my judgment about the wisdom of the tasks they want me to do, then I'll gladly work someplace that does.

    I think joel's got a point, and here's the difference between him and Bob.

    @Bob said:

    It's none of your business why I want it done this way, but it must be done this way.

    whereas hopefully

    @joelkatz said:

    Well that's one way of doing it, but I like this way.  I think my way is the right way.  Prove to me that your way is the right way.
     


Log in to reply