- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
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!
Admin
There is JavaScript but where is VB and XML? What kind of WTF is this without them anyway? :)
Admin
Apparently you don't work with companies taht have to comply to SOX
Admin
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?
Admin
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
Admin
Nope. From the wikipedia entry, it sounds fun though.
Admin
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 =)
Admin
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>Admin
One second...
</sarcasm>>
There, you forgot to turn off that sarcam tag :)
Admin
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.
Admin
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...)
Admin
k .. i haven't been viewing this site long, but what's with the foosball/beanbag girl references?
Admin
The Real WTF™ is that the LocaleCriteriaHaveBeenMet function/process/workflow-thing has an I missing in Criteria.
Admin
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.
Admin
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.
Admin
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…
Admin
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
Admin
Hey they copied my business logic!
[image]
Admin
Kinda reminds me of LabVIEW. Of course this looks waaaay worse. And I always thought that labview was the ultimate source of spaghetti code...
Admin
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?
Admin
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.)
Admin
"..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.
Admin
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.
Admin
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.
Admin
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"
Admin
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 :)!!!
Admin
vignette?
Admin
I don't know why, but I find the phrase "Iowa-specific text" hillarious.
Admin
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.
Admin
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
Admin
...and the lord shall lay fire and wrath upon the consultant for it is meet and right to smite such an agregious sinner...
Admin
Looks a lot like programming a lego mindstorm brick, only more so.
Admin
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 ;)
Admin
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?
Admin
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)
Admin
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
Admin
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
Admin
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.
Admin
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...
Admin
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...
Admin
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
Admin
On further research, you're looking for 6:5 =P
Admin
What if I don't have that many fingers?
Admin
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.
Admin
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!"
Ha! Order your Mac Pro today, get one or two Apple Cinema HD 30" TFT displays for only +$2k each.
Admin
As in 'found on a forum on the Internet'? Wouldn't be TDWTF would it?
Admin
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.
Admin
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
Admin
No, RPN would be
6 5 :
Admin
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.