• Dave (unregistered) in reply to drdamour

    You should never put logic in the javascript layer that isn't double-checked by server because the user can rewrite your program however they want. Sure, it's probably not a big deal if all you are doing is capitalizing their first name, but what if it's something like validating the maximum quantity? Better hope the business catches it before it ships!

  • Pyromancer (unregistered)

    There is JavaScript but where is VB and XML? What kind of WTF is this without them anyway? :)

  • (cs) in reply to Digitalbath
    Digitalbath:
    drdamour:

    For a giant thin client app such as this, putting a lot of the logic in the Javascript layer can be a real advantage. Especially when you're an outside company.

    Most internal IT guys won't let you think about modifying compiled code, and now ASP/PHP pages are mostly untouchable, but when you just tell them you need to change some JScript around they let you have a free reign.

    It's a real world solution for a real world.

    Are you speaking from personal experience?  You have been in a situation where you have been brought in from outside a company to fix/modify a system and the only code you can touch is the javascript?  If so, that seems quite weird to me.  "Come fix this code without touching it."

     

    Apparently you don't work with companies taht have to comply to SOX

  • (cs) in reply to Dude

    I'll grant you that color coding only 2 of the blocks doesn't help a whole lot. But the other 135 diagrams were probably not as complicated!

    So did Alex decide to give Wal-Mart some free advertising or is it one of those subliminal ads?

  • Brendt Hess (unregistered)

    After I looked at this for a bit, i realized what it seems to be - an extension or Modification of PegaSystems' PegaRules Process Commander.  In PRPC, you also 'code' by implementing changes in Visio diagrams, you also can use Javascript to override or supplement the UI, and it also lends itself to "Hideous Diagrams o' Doom" (tm) when you try to show a complex process in one diagram.  However, at least you use more than one type of diagram entity to represent the processes, and a single process was a single process.  Nonetheless, it was still hideous.

    We tried this at my last job.  We moved on.  However, Pegasystem is still here

  • (cs) in reply to drdamour
    drdamour:
    Digitalbath:
    drdamour:

    For a giant thin client app such as this, putting a lot of the logic in the Javascript layer can be a real advantage. Especially when you're an outside company.

    Most internal IT guys won't let you think about modifying compiled code, and now ASP/PHP pages are mostly untouchable, but when you just tell them you need to change some JScript around they let you have a free reign.

    It's a real world solution for a real world.

    Are you speaking from personal experience?  You have been in a situation where you have been brought in from outside a company to fix/modify a system and the only code you can touch is the javascript?  If so, that seems quite weird to me.  "Come fix this code without touching it."

     

    Apparently you don't work with companies taht have to comply to SOX

    Nope.  From the wikipedia entry, it sounds fun though.

  • cognitivefusion (unregistered) in reply to rocksanddirt
    Anonymous:
    Somewhere out there right now, Martin Fowler is suffering a migrane headache


    You just made my day. Have you ever tried to spray pudding out of your nose? Not recommended.

    This has been added to my list of favorite quotes. Thanks =)
  • The Captain Answers (unregistered) in reply to Kiasyn

    Anonymous:
    ...where does it even start??

    This whold WTF workflow starts here (shown below).  Just press the "Easy" button. ;-)

    <FONT style="BACKGROUND-COLOR: #ffc0cb" face="Courier New" color=#ff1493>+-------------+
    </FONT><FONT face="Courier New"><FONT style="BACKGROUND-COLOR: #ffc0cb" color=#ff1493>|  <FONT color=#ffff00>S T A R T</FONT>  |
    (it's easy) |
    +-------------+
    </FONT>
    </FONT>

    <FONT face="Courier New">if(Captcha.equals("zork")) scream("eek!");

    </FONT>
  • (cs) in reply to Debbus
    Anonymous:

    I never knew that Visio can do that!?

    Can't wait till monday to try it out! This is not a WTF, it's the future!

    One second...
    </sarcasm>>
    There, you forgot to turn off that sarcam tag :)

  • Yaytay (unregistered) in reply to drdamour
    drdamour:
    Digitalbath:
    drdamour:

    For a giant thin client app such as this, putting a lot of the logic in the Javascript layer can be a real advantage. Especially when you're an outside company.

    Most internal IT guys won't let you think about modifying compiled code, and now ASP/PHP pages are mostly untouchable, but when you just tell them you need to change some JScript around they let you have a free reign.

    It's a real world solution for a real world.

    Are you speaking from personal experience?  You have been in a situation where you have been brought in from outside a company to fix/modify a system and the only code you can touch is the javascript?  If so, that seems quite weird to me.  "Come fix this code without touching it."

     

    Apparently you don't work with companies taht have to comply to SOX

    It's an insane solution for an insane world.

    Fixing core problems by papering over them with javascript is the most ridiculous thing I can think of right now (yes even more ridiculous than removing both foosball and beanbag girl).

    If you have some legislation that prevents you from fixing problems where they need to be fixed then either the legislation needs to be changed or the bug cannot be fixed - I suspect, however, that it's the lawyers/IT bods claiming that the legislation is at fault that need to be fixed.

    So please, send some examples to Alex, he needs more.

  • (cs)

    I don't really get it. There's nothing "WTF" about complicated proceses or systems.  Or the ability to quickly patch in special cases by writing little scripts. Those sound like features.

    So where's the WTF?

    (Though Visio seems like the wrong tool for the "user-programmer" to be using, it ought to be a bit more slimmed down and application-specific...)

  • TotalRubeNewb (unregistered) in reply to Yaytay

    (yes even more ridiculous than removing both foosball and beanbag girl)



    k .. i haven't been viewing this site long, but what's with the foosball/beanbag girl references?
  • Looce (unregistered)

    The Real WTF™ is that the LocaleCriteriaHaveBeenMet function/process/workflow-thing has an I missing in Criteria.

  • (cs) in reply to reed
    reed:
    I don't really get it. There's nothing "WTF" about complicated proceses or systems.

    (Though Visio seems like the wrong tool for the "user-programmer" to be using, it ought to be a bit more slimmed down and application-specific...)



    Part of it is that the diagram is completely unstructured. If they'd been able to tailor the visualization to the specific application (mortgages etc.) then they could have made it easy to identify key nodes in the workflow.  They could have added controls to filter nodes and collapse related node systems into blocks, etc.   They also could have made re-used nodes appear as multiple instances of the same node type, instead of nodes like the one featured that has a million incoming and outgoing edges, all for different purposes I assume.

    The other part is probably that Visio's tools are general purpose, they are for manipulating boxes and edges and UML concepts, not the application's concepts.  Plus Visio is designed for expert Visio users. The application concepts are hidden under convention, like using "Workflow Action" blocks instead of all the other complicated features Visio provides, thus requiring lots of special training and an experienced "user-programmer" who can ignore all the Visio tools that aren't needed.  Better would have been to expose application-level concepts only.
  • FrostCat (unregistered) in reply to R.Flowers
    R.Flowers:
    Alex Papadimoulis:

    Obviously, no end user ever saw or touched these diagrams. Though the "proof of concept" was simple enough for a "technically unskilled" user, changing the workflow logic on the full-developed system required a highly-trained programmer...


    Oh, why not? Obviously, we just need to give the user a user-friendly way of manipulating the diagram! All we need is JavaScript, some AJAX and XML, and some cute graphics to shuffle around on the screen... ;^)

    Alex Papadimoulis:

    And what was John's simple UI change?, you might ask. It was to "use the [JavaScript] HTML Parser (/inc/p2/v/hparser.js) to filter out Iowa-specific text before it's passed to the page renderer (/inc/p2/v/hrenderer.js)."


    Can someone tell me what "Iowa-specific" means here? I read the article, but I see only one mention of Iowa.

    It means something specific to Iowa.  Hard to say more without knowing the context of the app.  For a mortgage-related or insurance-related app, it could mean that whatever they wanted modified doesn't apply in Iowa, so that the users shouldn't see anything related to Iowa on that screen or whatever.
  • XMLord (unregistered)

    Yeah, modularity is for suckers.

    I’ve had the misfortune of working with Oracle’s workflow product. That was one diabolic tool I will not soon forget…

  • FrostCat (unregistered) in reply to Yaytay
    Anonymous:
    drdamour:
    Digitalbath:
    drdamour:

    For a giant thin client app such as this, putting a lot of the logic in the Javascript layer can be a real advantage. Especially when you're an outside company.

    Most internal IT guys won't let you think about modifying compiled code, and now ASP/PHP pages are mostly untouchable, but when you just tell them you need to change some JScript around they let you have a free reign.

    It's a real world solution for a real world.

    Are you speaking from personal experience?  You have been in a situation where you have been brought in from outside a company to fix/modify a system and the only code you can touch is the javascript?  If so, that seems quite weird to me.  "Come fix this code without touching it."

     

    Apparently you don't work with companies taht have to comply to SOX

    It's an insane solution for an insane world.

    Fixing core problems by papering over them with javascript is the most ridiculous thing I can think of right now (yes even more ridiculous than removing both foosball and beanbag girl).

    If you have some legislation that prevents you from fixing problems where they need to be fixed then either the legislation needs to be changed or the bug cannot be fixed - I suspect, however, that it's the lawyers/IT bods claiming that the legislation is at fault that need to be fixed.

    So please, send some examples to Alex, he needs more.



    Well, yes, it *is* an insane solution, because SOX doesn't say "consultants can't touch the app."  I've worked as a consultant for a client who has to deal with SOX-compliance, and been up to my elbows in the application guts.

    Any company says that the consultant can't the main app, so "fix it with JavaScript" has some kind of (typically stupid) motive.

    captcha - awesomeness
  • (cs) in reply to FrostCat

    Hey they copied my business logic!

    [image]

  • cvi (unregistered)

    Kinda reminds me of LabVIEW. Of course this looks waaaay worse. And I always thought that labview was the ultimate source of spaghetti code...

  • A. Non - E. Mus (unregistered)

    In the blown-up action, under requirements ... is each bulleted item in the list required to evaluate TRUE?
    If so, why have the first half of the second item: ArbitrationCodeIsNotInTargetRange(r)?

    captcha: captcha ... who has the captcha?

  • Anonymous (unregistered) in reply to Dave
    Anonymous:
    You should never put logic in the javascript layer that isn't double-checked by server because the user can rewrite your program however they want. Sure, it's probably not a big deal if all you are doing is capitalizing their first name, but what if it's something like validating the maximum quantity? Better hope the business catches it before it ships!


    Sanity-checking order quantities?  Wouldn't it be nice if...

    Reminds me of a fun story from another part of the company I work at.  The program in question was a fairly simple ordering system which would dispatch lists of part numbers and quantities to a supplier in their chosen data format (which was some sort of structured fixed-length monstrosity).  The supplier would then stick the requested items in a van for delivery the next day.

    One morning, one of the users made something of a typo - instead of ordering 3 widgets, he somehow managed to place an order for 30,000 or so.  Still, not to worry - this sort of thing happened fairly often, and there was a simple workaround: he simply added another order for -30,000 widgets and sent that off as well.  Unfortunately, the quantity field in this file was only 5 characters wide... including the sign.

    (Fortunately for the poor oblivious user, there was a human being involved somewhere at the other end who had the presence of mind to phone him and ask if he really, really wanted a fleet of lorries full of expensive widgets to turn up at his door first thing the next morning.  And thus was a legend in the making tragically averted.)
  • (cs)

    "..required a highly-trained programmer and a highly-powered desktop (2-4GB RAM)..."

    And it probably needs a nice 3-head video card to view the diagram across a trifecta of 21" monitors.

    Project fails someone gets a helluva nice desktop.

    Sweet.

  • not(foosball_girl) (unregistered) in reply to Whiskey Tango Foxtrot? Over. (at work)

    I have used executable UML for a couple of projects and when the diagrams start to look like this you KNOW you have got it wrong. The UML 2.0 metamodel - no arguments there.

  • Gootfried (unregistered) in reply to not(foosball_girl)

    I <font color="#000080">really </font>love the diagram-equals-workflow-equals-code idea!

    Okay, so the diagram looks complex, but maybe that's because the workflow is.
    Just imagine what it would have looked like in "real" code.

  • (cs)

    Ten bucks says:

    - The consultants had already forumulated this "pet" solution and were just itching' to impliment it as soon as they could find a client.

    - Failing to grasp the scope of the project in the intial interviews, or ignoring all other options, they blindly charged ahead with development.

    - Having realized, that they had created a monster, the JavaScript layer was thrown in to maintain the "Customer Friendly" directive.

    ...Six months of "peer training" to learn to use a solution... that's "Customer Bleeding"

  • (cs)

    Get ready because coming your way soon enough is a whole new wave of craptastic garbage like this developed in a product called "Sonic ESB". Only it uses Xpath and Xquery and Xthis and Xthat and you end up with a craptastic piece of garbage. Anyway looks like fun :)!!!

  • brindy (unregistered)

    vignette?

  • Not From Iowa (unregistered)

    I don't know why, but I find the phrase "Iowa-specific text" hillarious.

  • Richard Head (unregistered) in reply to Not From Iowa

    I work with a SOX-compliant corporation that is a huge defense contractor.  And of course there are restrictions in place and everything has to be documented, but if you have a bug you need to fix, no auditor is going to tell you you CANT fix an application, but instead come up with a workaround for it.

    SOX is about being accountable for what you've done and having a paper trail of everything.  Its not to make you never be able to fix an application.

  • (cs) in reply to Digitalbath

    You haven't been to quite a few companies bringing in outside help....  have you ?

    There seems to be an epidemic level of different companies which shall remain nameless
    who are seeming prone to using several levels of code (quite a lot of which is now broken
    due to manipulation by newer levels being added on and given ever-increasing control
    of what was originally the core, and wanting you to "fix what's broken, but you can't lay
    a finger on anything but the javascript."

    Been there.   Seen that movie.  Didn't even like the popcorn.


    Captcha=pacman

  • (cs) in reply to Jesus Christ
    Anonymous:
    This is an abomination in the name of the lord.


    ...and the lord shall lay fire and wrath upon the consultant for it is meet and right to smite such an agregious sinner...
  • (cs)

    Looks a lot like programming a lego mindstorm brick, only more so.

  • (cs)

    Someone once said: <font size="-1">"...the nipple is the only 'intuitive' user interface". </font>And in my opinion all user interfaces must take the nipple as an example ;)

  • Ishai (unregistered)

    I wonder if you can reveal which company it is, or at the very least where they are from. It sounds very familiar - like a company I was called upon to help about 4 years ago when they developed a workflow engine and wanted a UI for "technically unskilled" users. They wanted to go with Visio and I was the only visio expert. I wonder what happened to them...

     

    I eat CAPTHAs for breakfast. doesnt everyone?

  • Mike (unregistered) in reply to mjonhanson
    mjonhanson:
    Anonymous:
    This is an abomination in the name of the lord.


    ...and the lord shall lay fire and wrath upon the consultant for it is meet and right to smite such an agregious sinner...

    And from the ashes shall arise a new better system...

    Hang on a moment...

    Sorry wrong script.

    Ahem

    ACK AHEM .. HEM HEM...

    And the Lord learnt his lesson and never let intelegence evolve again.

    Amen.

    CAPTCHA == CAPTCHA (it's nice to know this)

  • David (unregistered)

    And GOD saw that the wickedness of man was great in the earth, and that every imagination of the thoughts of his heart was only evil continually.

    Genesis 5:6

  • when's the sue date (unregistered) in reply to Mike

    Sadly, this didn't surprise me at all.  Okay the visio part did, but the rest of it was all too familiar.  I once worked on a similar system where all the workflows were defined with insanely insane XML files.   The intent was to write a "GUI Tool" as some point in the far distant future to allow the user to modify the workflows in a seemless and enterprisey fashion.  Of course, to my knowledge, this never happened.

    What we ended up with was a snazzy GUI and a program that I think is still in "testing" 2 years after it was supposed to ship.  Of course, it worked fine -- until something unexpected happened.  See, all those workflows had been designed without the "rainy day" scenario in mind.  No exception processing or error handling whatsoever.  Hell, there wasn't even a mechanism for defining exceptions in a workflow - no branching or anything.

    It was a total nightmare.  The only part of the system that "worked" was the low-level embedded device drivers (the part I worked on, coincidentally) - and even they had to handle WAY more than they should have.

    I ramble.  Anyway, you may get a chance to see this system in action if you park your car at the right airport.

    CAPTCHA:  pizza



  • Dazed (unregistered) in reply to drdamour
    drdamour:
    Digitalbath:
    drdamour:
    For a giant thin client app such as this, putting a lot of the logic in the Javascript layer can be a real advantage. Especially when you're an outside company.

    Most internal IT guys won't let you think about modifying compiled code, and now ASP/PHP pages are mostly untouchable, but when you just tell them you need to change some JScript around they let you have a free reign.

    Are you speaking from personal experience?  You have been in a situation where you have been brought in from outside a company to fix/modify a system and the only code you can touch is the javascript?  If so, that seems quite weird to me.  "Come fix this code without touching it."

    Apparently you don't work with companies taht have to comply to SOX

    Apparently you don't work for a company that actually does comply with SOX.

    To the extent that SOX mandates properly controlled changes to software, it prohibits placing business logic in Javascript, since Javascript is inherently uncontrollable.

  • MBV (unregistered) in reply to Saarus
    Saarus:
    This sort of WTFery amazes me. It's the second example I've seen (but only the first of its kind on TDWTF) of so many levels of thinking, so brilliantly flawed that it's impossible to wrap my mind around it. The whole concept just sort of... slips away.

    I'm working with a system with a similar level of WTFery, although the WTFery comes about in a different way. I can't really explain it technically, and I doubt even the creators could, by now.

    Imagine a MxMxM Rubik's Cube, M larger than, say, 20, and the cube starts out solved. Make a minor change through the interface, and you've just made one turn of the cube, and everything gets slightly messed up. After N such changes, it is completely impossible for a human being to figure anything out.

    The system itself can't even seem to figure it out, for that matter. After trying to make sense of this application for some weeks, my team lead finally asked the original developers, "Why? Why would you do this?"

    The answer? "Because it was fun to build."

    I'm glad I wasn't there for it. I have difficulty holding my tongue in such situations, and in any case I felt like slapping someone.

    It brings me great relief to see that there exists a system such as this, The Customer-Friendly System. At least now I know that the sort of idiotic genius that can design such WTFs is not unique.


    I'm working on an (PHP with templates) application right now, that was designed in a pretty nice way. In a rough way, the class model does even fit my 'redesign' (that will probably never be executed, because the current app works and the IT-department is underpowered). It looked quite OK, until I made a minor change in the GUI. After a while, I figured out that part of the information is in the database, and another part in a single include file. Why have the information in the database if some crucial parts are in code? It took me another day to find out that to remove an item, you also had to remove it from a template :(

    Conclusion: Design was not too bad, could have been worse. Implementation sucks bigtime. I asked a college (afer I found something even nastier): "Don't you have a clue where Daniël lives?" Response was: "somewhere I can't hit him". That was after yelling "WTF" "How could someone do THIS" "Oh my" in random order for a hundred times...

  • DOA (unregistered) in reply to Zemyla

    There is always some "bright" MBA who wants programmers to create a very complex system that can be maintained by unskilled workers. "Let's get this highly paid programmer to built this so that we only have to pay minimum wage workers to make modifications later on. What a great idea! Fortune 500 here I come!". Years later they wonder where it all went wrong...

  • Kemp (unregistered) in reply to David

    Anonymous:
    And GOD saw that the wickedness of man was great in the earth, and that every imagination of the thoughts of his heart was only evil continually. Genesis 5:6

    Dunno what bible you have, but all the ones I can find Genesis 5:6 is some variation of

    "Seth lived one hundred five years, and became the father of Enosh."

    Which has very little to do with this that I can see

  • Kemp (unregistered) in reply to Kemp

    On further research, you're looking for 6:5 =P

  • (cs) in reply to Anon
    Anonymous:
    Hey, its pretty simple.
    Just put your finger on the screen and follow all the lines.

    What if I don't have that many fingers?

  • Bill Waite (unregistered) in reply to TotalRubeNewb

    Anonymous:

    k .. i haven't been viewing this site long, but what's with the foosball/beanbag girl references?

    See the ads in the top right corner?  One of the ads used to have a hot girl playing foosball, and one had a hot girl sitting on a beanbag.

  • (cs) in reply to Pyromancer
    Anonymous:
    There is JavaScript but where is VB and XML? What kind of WTF is this without them anyway? :)

    What Alex did not mention is that the company is preparing to port the Workflow Diagram from Hell to Visio 2007 so they can store it as XML with embedded VB.NET macros. These macros will allow the diagram to change shape autonomously, in any way necessary. When viewing a prototype of the new file together with his loyal assistant, the head architect euphorically exclaimed: "It's alive, Igor! It's alive!"

    Rotary Jihad:
    And it probably needs a nice 3-head video card to view the diagram across a trifecta of 21" monitors.

    Ha! Order your Mac Pro today, get one or two Apple Cinema HD 30" TFT displays for only +$2k each.

  • Your Name (unregistered) in reply to olddog
    olddog:
    - The consultants had already forumulated this "pet" solution and were just itching' to impliment it as soon as they could find a client.


    As in 'found on a forum on the Internet'?  Wouldn't be TDWTF would it?

  • Llelldorin (unregistered) in reply to Kemp
    Anonymous:
    On further research, you're looking for 6:5 =P


    What, you don't use RPN for your Biblican quotations? It's really a much cleaner system, as long as you have a good stack-based liturgical library.


  • brian (unregistered) in reply to Digitalbath

    Are you speaking from personal experience?  You have been in a situation where you have been brought in from outside a company to fix/modify a system and the only code you can touch is the javascript?  If so, that seems quite weird to me.  "Come fix this code without touching it."

    actually, i've been a consultant for a few years now, and this is one of my more frequent frustrations. i can't count the number of times i've pointed out something about a system that i think (or can demonstrate) needs to change, and i get back something along the lines of "well, we really don't want to touch that part. can you fix [the problem i've identified] by only changing [a particular module that often has nothing to do with the problem i've identified.]?

    brian

  • Boaz (unregistered) in reply to Llelldorin

    No, RPN would be

    6 5 :

  • Ken (unregistered) in reply to Not From Iowa

    re: Iowa-specific Text ....

     

    That's probably because you are a programmer and you know that...

    The bane of many (most?) programmers is that they can design a marvellous system and then one customer turns round and says "Can we have this configurable?". The answer is probably yes, although the design may have to "flex" a little to isolate and expose the configurable bit.

    Then *every* other customer turns round and makes a similar request and by the time all those things have been isolated and exposed, the application has been turned into a framework for writing itself. It no longer does *anything* useful itself, all functionality now residing in whatever "quick and dirty" scripting language or configuration files were used for the original mod.

    Almost any application that handles financial information suffers this in spades, because every legislature is fiercely independent about which arbitrary variations they will write into their own law.

Leave a comment on “The Customer-Friendly System”

Log In or post as a guest

Replying to comment #:

« Return to Article