- 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
There was obviously one requirement missing from Terry's spec:
Also, frist!
Admin
Admin
Admin
I was actually on tdwtf when he put the article up, and my first thought (very, very sadly) was to go type a comment that was simple "First!" Luckily, DaveK saved me from this humiliation by doing it instead.
Admin
It is 2009, and I'm working on a process that looks frighteningly similar to that flowchart.
Admin
Admin
Looks like you forgot to add a "Yes" and a "No" on the last Yes/No gate in your flowchart.
Also... as I read through the flowchart, this WTF actually made me say "What the fuck...?" out loud. This is... pretty terrible to say the least.
I'd recommend goggles but they do nothing.
Admin
[EDIT: Argh. I hit submit too soon, and now the delete function isn't working. Sorry for doubleposting.]
Admin
So I'm afraid if you want a simple "First", you'll have to post it yourself after all.
Admin
I read through the flowchart, and I have this sudden urge to donkey punch people in the kidneys.
I would expect such a thing be a criminal offense on some level that would result in incarceration. For many years. With the whole soap in showers affair.
Seriously, couldn't they sue them or ask for their money back, or at least a correct product?
Admin
My worst fear is, how do you word a contract so you can avoid paying for the software if it's this terrible?
It's like if you went to get a custom-tailored suit, and you get it home to find out most of the cloth is held together with staples and chewing gum.
Admin
What letters would you like in your comment?
A[0] B[0] C[0] D[0] E[0] F[1] ....
Your Comment contains:
F[1] T [1]
Is this correct?
What letters would you like in your comment?
A[0] B[0] C[0] D[0] E[0] F[1] ....
Your Comment contains:
F[1] T[1] W[1]
Is this correct?
Sending Order . . . . . . Order Complete
Admin
Admin
Admin
Give me a few minutes while I copy the entire database of comments and set the quantity of the one I want to post to 1.
Admin
I don't understand why they didn't ask for a refund. Doesnt refunds for crappy acomplishments exsists in America (assuming american companies since tdwtf is armerican).
We always hear about those lawyers trying to sue everyone. Why not do that here? The program is definately flawwed. Or don't judges have the technical know-how to do justice in these matters?
(Sorry for the mumbo-jumbo I'm not a native English speaker)
Admin
re: How do you word a contract to include "make it not crap"?
It's called service level agreement; performance must meet certain minimum criteria (eg: order must be enterable from scratch in x seconds with at most n clicks for single item purchase, or back-end processing completes in x ms). This way, crap designs like this implicitly fail.
Oh and BTW, putting 15000 items in an on-screen list? Priceless!
Admin
Admin
SLA
Admin
Um, I'm looking at this box:
I think that's supposed to be "... to an Order table", yes?
So, either the site works properly only when one user is shopping, or every user gets their own personal table. Brillant.
Admin
No, they would just create a database of databases. Super Brillant!
Admin
That happened to me when I got to the lower left hand part of the flowchart. The part about deleting the item if quantity is not greater than 0.
Admin
Admin
The real WTF is that this passed acceptance tests. Were the requirements testable? Did the tests pass? If so, what's the problem? What do you care if it's optimized as long as it meets performance requirements? Sure it's not the best under the hood, but if it's so bad that it was delivered non-functional and you didn't know, you failed at defining and enforcing testable requirements. And if having it architectured a certain way was going to be mandatory to maintaining it, that should have been specified as a requirement too and reviewed.
Sounds like the programmers delivered a product that matched the requirements, on-time, on-budget, without engineering beyond what was necessary to meet the requirements (saving the client money assuming their requirements were accurate). No WTF there.
Admin
Admin
The only reason I can think of for a system like this is if the consultants thought maybe the catalog changed so frequently and so much that the products didn't always have the same SKUs minute to minute. Otherwise couldn't they just make a table (or a row in a table of currently open orders) and list the SKUs for that order as they are added, instead of copying the whole table, adding a column, and modifying the result... what exactly were they thinking?
Admin
Where's the WTF? The process works flawlessly, HDDs cost nothing anymore, and performance isn't always a factor.
Just think of all the hassle you'd have to go through to keep the orders consistant from a historic viewpoint. You might be forced to deal with versioning, item status and other ugly stuff...
CAPTCHA: dolor - sit amet or what?
Admin
Let's see if I understand this. The busines logic is: o Write out a copy of the entire catalog o Troll all records for the ones the consumer wants o Flush any that have NOT been selected
Makes sense to me!!
Admin
Well for me the WTF was that the company explicitly sought after a respectable (thus) expensive company so that things like this wouldn't happen. And apparently the program did not get trough the tests because they started sending pdf's around instead of using the new system. (And I dare to say that management is not going to throw money away so easily).
Admin
I'm not sure you used 'donkey punch' in the correct context.
Admin
I'd go for this solution as well. It's the simplest thing that could possibly work, fitting the requirements.
The only way to point some customers to their silly requirements is by following them to the letter. There's no time requirement on this action, so we don't care. Literally.
Admin
This seems like TRWTF to me. Sure the way the program is handling the data is completely retarded, but it doesn't seem like it would require that much effort to replace it with something more sane. It had a working UI already which might only need minor tweaking after you've replaced the database logic.
Admin
Hail hail. We're not talking about the finer points of orbit trajectories here, just the code used to:
a) copy a database b) query items from new database c) delete records
Changing those around to:
a) use new user_orders table b) query items from existing database c) not delete records
would have been a relatively simple undertaking.
Admin
They sought after a respectable expensive company so they wouldn't get their own requirements wrong and so the company would spend more of their money implementing features beyond the requirements instead of delivering a system which generates the highest feature-value for the lowest cost to the customer?
No, that's what BAD companies do: deliver the wrong product on the wrong budget according to their own (wrong) imagined specs. The real WTF is blaming a company that got the job done to your requirements for the fact that you didn't ask for nor verify what you actually wanted.
Admin
Problem is, you'd generally check a custom-tailored suit to make sure there aren't staples and chewing gum.
It's frightening how often companies just accept code from the likes of IB...Mmmm I mean "we named our building after ourselves" type companies without doing any kind of QA on it.
Admin
What makes you think this didn't pass QA? The client seemed happy, and it apparently met the requirements. QA's job isn't to test that the product is the best thing since sliced bread, its job is to test that the product meets the requirements.
Of course, as long as clients continue to try to pass the buck for their bad requirements to programmers, programmers will continue to be "clever" and try to make "creative" "enterprise" solutions to problems, thinking that the solution that meets the requirements is insufficient.
Admin
Admin
Admin
No, a BAD company is one that gives you exactly what you asked for.
A GOOD company does analysis on the client requirements prior to starting development in order to ensure they are giving the customer what they actually need rather than what they think they need.
Admin
Compare this process to a hand example. How does a human being solve this problem? Any method that makes an example person do too much is a bad algorithm.
In this case, no person would copy all the products to a sheet of paper. Then, cross out any products he doesn't want. Finally, list the number of each product he does want. Therefore, this is a WTF.
People write a list of the N products they want to buy. Then, they write down quantities. The list gets sent to the company to fill theat order. No program has to do more work than this.
Admin
Obviously, a HUMAN copying all the products would be ridiculous, as it would incurs hours of overhead and violate a time requirement. However, copying these items might take a couple seconds at most (presumably this was tested and didn't stand out as anomalous?), which does not violate a requirement. Optimizing is great when it's free, but the costs in engineering, coding, and testing for a more complex but "optimal" system are non-trivial. If it generates no significant value for the client (e.g. does fulfill requirements) but does cost them money, why would you do it?
Admin
I can't believe people are defending this.
Anyone who knows even the very basics of a DBMS would know that the way the consultants did it was retarded.
This is a very simple online catalog/shopping cart type of scenario. I can't really think of any way more retarded to do this than to require the customer to print out the finalized order form, take a picture of it (on a wooden table) and send it in to be manually processed.
The story said that it passed requirements with test data. Presumably, the test data was much smaller than the actual data. Copying the entire database is stupid anyway but when you have a lot of data, the stupidity is mind boggling and I'm sure it won't pass performance metrics.
As usual, The Real WTF(tm) are the comments.
Admin
Not disagreeing with these statements but that obviously doesn't always happen in the real world. Sometimes what you need might change after you have to actually work with what you thought you needed. Hindsight is always 20/20 and there are lots of examples out there where someone goes back to work they previously did and asks themselves WTF they did it one way instead of another.
Admin
Is is just me or does the reference to a dialup modem make it look like this program actually copies the entire database to the users system (via dialup)does it's work and then sends back the result?
Admin
So much for the laugh I was just having...
Admin
I have to agree that the company did provide what was asked for:
Now, many here (myself included) might have come back with "How should the choose the item entered? A lookup, just let them enter a part number, what?". But there's a better than zero chance the consultants were just a front for coders 'elsewhere' who simply took the requirements and coded to them.
So while it is practically useless in a real world setting, it is what was asked for.
Admin
Admin
I'm not in IT in any way, shape, or form. I'm a hobbyist programmer who came to TDWTF through a link in another programming forum and thought the stories were funny.
Since then, I like to judge how much I'm learning about app development/being a programmer by how often I get the jokes (especially the CodeSOD stuff). My responses are usually:
a) "I don't get it" or b) "Oh...yeah, I get it now. I see why that's weird"
But today was the first day I had a gut-level, visceral "WTF". I guess I'm learning
Admin
Okay!
<< Place Order >>
Pick up a printed copy of the catalog, which contains an order form at the back that is basically a list of all the part numbers, with a place to write in numbers.
Rip out the order form from the catalog, sit it down next to the catalog.
Flip through the catalog, writing down quantities as you find products you want.
Interoffice order form to local Purchasing Dept.
Did I forget something? Yes? Call purchasing, tell them to throw away the order form, I'll send them a new one; then repeat steps 1-4.
It sounds like they DID model it from a human process, probably even based on what a user actually did.
Admin
Every order form I have ever seen has "item #" and "item quantity", plus possibly other columns such as description (to check against the item # during processing), color, size, etc.