Comment On Consultants of the Crystal Citadel

It was the mid-1990's and business was booming at the company that Terry worked at. It was booming so much that the existing process of entering an order — faxing in an order form torn out of an outdated-as-soon-as-it-was-printed catalog — was delaying things enough that it was costing the company some serious dough in missed sales. Needing a way to re-engineer the process without hiring an army of support staff, management decided on an innovative plan that would enable customers to place orders electronically without needing to contact customer service. [expand full text]
« PrevPage 1 | Page 2 | Page 3Next »

Re: Consultants of the Crystal Citadel

2009-02-19 11:04 • by DaveK
There was obviously one requirement missing from Terry's spec:

* Make it not crap.

Also, frist!

Re: Consultants of the Crystal Citadel

2009-02-19 11:06 • by DOA
244910 in reply to 244908
DaveK:
There was obviously one requirement missing from Terry's spec:

* Make it not crap.
I'd have gone with the more explicit: Don't design this while on crack.
DaveK:
Also, frist!
Why, you little...

Re: Consultants of the Crystal Citadel

2009-02-19 11:10 • by DaveK
244912 in reply to 244910
DOA:
DaveK:
There was obviously one requirement missing from Terry's spec:

* Make it not crap.
I'd have gone with the more explicit: Don't design this while on crack.
Crack would have made it better.
DOA:
DaveK:
Also, frist!
Why, you little...
ITYM "Why, I oughta ..."?

Re: Consultants of the Crystal Citadel

2009-02-19 11:12 • by Sutherlands
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.

Re: Consultants of the Crystal Citadel

2009-02-19 11:17 • by Charles400
It is 2009, and I'm working on a process that looks frighteningly similar to that flowchart.

Re: Consultants of the Crystal Citadel

2009-02-19 11:19 • by DOA
244917 in reply to 244912
DaveK:
DOA:
Why, you little...
ITYM "Why, I oughta ..."?
Think Homer Simpson
Sutherlands:
my first thought (very, very sadly) was to go type a comment that was simple "First!"
Ah, the fresh snow syndrome... don't worry everyone suffers from it.

Re: Consultants of the Crystal Citadel

2009-02-19 11:27 • by SomeCoder (unregistered)
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.

Re: Consultants of the Crystal Citadel

2009-02-19 11:31 • by DaveK
244920 in reply to 244913
Sutherlands:
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.
Well, at least I made a comment on the story. The point was, obscurely put, that the requirement specs should include at least some idea of an architecture, or at the least should have an approval clause of the major design before the implementation goes ahead.

[EDIT: Argh. I hit submit too soon, and now the delete function isn't working. Sorry for doubleposting.]

Re: Consultants of the Crystal Citadel

2009-02-19 11:33 • by DaveK
244921 in reply to 244913
Sutherlands:
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.
Well, at least I made a comment on the story. The point was, obscurely put, that the requirement specs should include at least some idea of an architecture, or at the least should have an approval clause of the major design before the implementation goes ahead.

So I'm afraid if you want a simple "First", you'll have to post it yourself after all.

Re: Consultants of the Crystal Citadel

2009-02-19 11:41 • by Alex G. (unregistered)
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?

Re: Consultants of the Crystal Citadel

2009-02-19 11:49 • by James (unregistered)
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.

Re: Consultants of the Crystal Citadel

2009-02-19 11:55 • by RBoy (unregistered)
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

Re: Consultants of the Crystal Citadel

2009-02-19 11:57 • by DaveK
244933 in reply to 244917
DOA:
DaveK:
DOA:
Why, you little...
ITYM "Why, I oughta ..."?
Think Homer Simpson
Oh....

Re: Consultants of the Crystal Citadel

2009-02-19 11:59 • by DaveK
244934 in reply to 244928
James:
My worst fear is, how do you word a contract so you can avoid paying for the software if it's this terrible?
You add an approval clause, where they have to submit the design and architecture for your approval before moving on to the next stage of implementing that design. It's actually quite normal in a lot of development contracts.

Re: Consultants of the Crystal Citadel

2009-02-19 11:59 • by lolwtf
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.

Re: Consultants of the Crystal Citadel

2009-02-19 12:02 • by Roy T. (unregistered)
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)

Re: Consultants of the Crystal Citadel

2009-02-19 12:02 • by snoofle
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!

Re: Consultants of the Crystal Citadel

2009-02-19 12:04 • by JamesQMurphy
244938 in reply to 244936
Roy T.:
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)

Probably because they didn't want to throw good money after bad.

Re: Consultants of the Crystal Citadel

2009-02-19 12:08 • by T604 (unregistered)
244940 in reply to 244928
SLA

Re: Consultants of the Crystal Citadel

2009-02-19 12:09 • by JamesQMurphy
Um, I'm looking at this box:


Copy the entire database of
products to an Order database
and an additional column
'quantity' is added (15,000
items total).


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.

Re: Consultants of the Crystal Citadel

2009-02-19 12:26 • by Alin (unregistered)
244945 in reply to 244941
JamesQMurphy:
Um, I'm looking at this box:


Copy the entire database of
products to an Order database
and an additional column
'quantity' is added (15,000
items total).


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.


No, they would just create a database of databases. Super Brillant!

Re: Consultants of the Crystal Citadel

2009-02-19 12:28 • by akatherder
244946 in reply to 244918
SomeCoder:
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.


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.

Re: Consultants of the Crystal Citadel

2009-02-19 12:35 • by Smash King
244949 in reply to 244945
Alin:
No, they would just create a database of databases. Super Brillant!
And it's not like we never heard of any of those, though this one is based on the "A glass of wine and a fresh new database every day" approach. But its comments mention databases where there's a new database for every new customer.

Re: Consultants of the Crystal Citadel

2009-02-19 12:36 • by fanha (unregistered)
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.

Re: Consultants of the Crystal Citadel

2009-02-19 12:38 • by Zerbs (unregistered)
244952 in reply to 244936
Roy T.:
(Sorry for the mumbo-jumbo I'm not a native English speaker)

Your English is much better than many so called native English speakers that I've come across.

Re: Consultants of the Crystal Citadel

2009-02-19 12:44 • by kastein
244953 in reply to 244941
JamesQMurphy:
Um, I'm looking at this box:


Copy the entire database of
products to an Order database
and an additional column
'quantity' is added (15,000
items total).


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.
Don't count on it... what with the rest of the architecture of this Expert System, it may well make a whole new database for every order in progress. I barely know anything about databases and wow, I could probably do better than that in an afternoon :(

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?

Re: Consultants of the Crystal Citadel

2009-02-19 12:46 • by Superconsultant (unregistered)
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?

Re: Consultants of the Crystal Citadel

2009-02-19 12:48 • by ParkinT
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!!

Re: Consultants of the Crystal Citadel

2009-02-19 12:57 • by Roy T. (unregistered)
244958 in reply to 244950
fanha:
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.


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).

Re: Consultants of the Crystal Citadel

2009-02-19 12:59 • by Wickerman (unregistered)
244959 in reply to 244926
Alex G.:
I read through the flowchart, and I have this sudden urge to donkey punch people in the kidneys.


I'm not sure you used 'donkey punch' in the correct context.

Re: Consultants of the Crystal Citadel

2009-02-19 12:59 • by Candy (unregistered)
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.

Re: Consultants of the Crystal Citadel

2009-02-19 13:01 • by Anon (unregistered)
244961 in reply to 244956

Once the inner workings of the program were explained to management, the project was scrapped in favor of implementing a simple PDF catalog on CD where a customer would fill out a paper form and fax it into the order processing center where it would be hand entered.


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.

Re: Consultants of the Crystal Citadel

2009-02-19 13:16 • by MT Guy (unregistered)
244963 in reply to 244961
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.

Re: Consultants of the Crystal Citadel

2009-02-19 13:19 • by fanha (unregistered)
244964 in reply to 244958
Roy T.:
fanha:
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.


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).


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.

Re: Consultants of the Crystal Citadel

2009-02-19 13:25 • by Sakkie (unregistered)
244966 in reply to 244928
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.

Re: Consultants of the Crystal Citadel

2009-02-19 13:36 • by fanha (unregistered)
244968 in reply to 244966
Sakkie:
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.


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.

Re: Consultants of the Crystal Citadel

2009-02-19 13:59 • by Sam Tyler (unregistered)
244971 in reply to 244915
Charles400:
It is 2009, and I'm working on a process that looks frighteningly similar to that flowchart.
It is 1973 what is a web app?

Re: Consultants of the Crystal Citadel

2009-02-19 14:03 • by snoofle
244973 in reply to 244971
Sam Tyler:
Charles400:
It is 2009, and I'm working on a process that looks frighteningly similar to that flowchart.
It is 1973 what is a web app?
Something you apply to a spider web to kill the spider.

Re: Consultants of the Crystal Citadel

2009-02-19 14:23 • by David Claughton (unregistered)
244977 in reply to 244964
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.

Re: Consultants of the Crystal Citadel

2009-02-19 14:28 • by Americium (unregistered)
244979 in reply to 244950
fanha:
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.


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.

Re: Consultants of the Crystal Citadel

2009-02-19 14:40 • by fanha (unregistered)
244980 in reply to 244979
Americium:
fanha:
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.


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.


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?

Re: Consultants of the Crystal Citadel

2009-02-19 15:19 • by SomeCoder (unregistered)
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.

Re: Consultants of the Crystal Citadel

2009-02-19 15:31 • by Anonymous (unregistered)
244986 in reply to 244977
David Claughton:
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.


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.

Re: Consultants of the Crystal Citadel

2009-02-19 15:49 • by PublicLurker (unregistered)
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?

Re: Consultants of the Crystal Citadel

2009-02-19 15:57 • by jkupski (unregistered)
244990 in reply to 244915
Charles400:
It is 2009, and I'm working on a process that looks frighteningly similar to that flowchart.


So much for the laugh I was just having...

Re: Consultants of the Crystal Citadel

2009-02-19 16:08 • by Throknor
244993 in reply to 244986
I have to agree that the company did provide what was asked for:

1) Here's what we want the UI to look like.
2) It should let the user enter the quantity of the items they want from the items we carry.

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.

Re: Consultants of the Crystal Citadel

2009-02-19 16:24 • by MrsPost
244996 in reply to 244956
ParkinT:
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!!

You sir are my hero for today.

Re: Consultants of the Crystal Citadel

2009-02-19 16:55 • by Travis (unregistered)
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

Re: Consultants of the Crystal Citadel

2009-02-19 17:03 • by Jadawin (unregistered)
245006 in reply to 244980
Americium:

Compare this process to a hand example. How does a human being solve this problem?


Okay!

<< Place Order >>

1. 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.

2. Rip out the order form from the catalog, sit it down next to the catalog.

3. Flip through the catalog, writing down quantities as you find products you want.

4. Interoffice order form to local Purchasing Dept.

5. 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.

Re: Consultants of the Crystal Citadel

2009-02-19 17:35 • by Sir Twist
245010 in reply to 245006
Jadawin:

1. 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.

I have never in my life ever seen such an order form, except the "catalog catalog" where you circle the numbers of the catalogs that you want, and send it in with your payment (if any were not free).

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.
« PrevPage 1 | Page 2 | Page 3Next »

Add Comment