- 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
This is giving me a headache, just looking at it.
Admin
As long as none of those parameters are Booleans, they'll be OK.
Admin
tri-booleans? like OK in addition to true and false?
Admin
error: big ball yarn link leads to same place as enterprise dependency
Admin
Fractal software engineering takes its rightful place alongside fractal critical-path project planning in the WTF Hall of Fame! Long overdue.
Admin
I just want to know, what was used to create this image? I actually like how it lays things out, at least that part isn't a WTF.
Admin
Sad truth about large-scale systems: You can push the dependency graph up or down the layers but if you show the whole thing it's still going to look like this. Complexity sucks, but that's why they call it complexity.
The real world is the über enemy of simplicity.
Admin
I call them spaghetti knots. They're all knotted up and if you try to untangle them, they fall apart.
Admin
That looks a lot like the ClearCase version tree for some cellphone code I worked on about 10 years ago.
Admin
THIS!
Admin
FILE_NOT_FOUND
weeps to be forgotten…Admin
The "Enterprise Dependency" image looks like a wad of hair that one just pulled from a brush
Admin
This isn't a WTF, this is art!
Admin
You make it sound as though using stored procedures is the problem. Given how the application grew (and their decision to incorporate every customer's need into the code base), I don't see how putting the logic in a different layer would have made it less complex. I mean, the crazy graph might be at another layer instead, but I suspect it wouldn't have been magically cleaner.
As ugly as platform-on-a-platform is, there's an unfortunate reason most ERP systems do it.
Admin
For every complex problem there is an answer that is clear, simple, and wrong
Admin
You get used to it after a while. I don't even see the code anymore, I see blond, redhead...
Admin
If the only way to access the data is through stored procedures (with the option to create more 3,000 line 100 parameter monstrosities that "tackle" the same schema), then stored procedures are, indeed, the problem.
You're right, of course. A better solution would be to have a "core" set of tables, a set of "customer-focused tables" for each individual customer, and a sane design for the stored procedures at each level. However, once you buy in to "all business logic goes into the database, and everything else is just a thin wrapper around a GUI," then this is what you get. And you can't refactor any of these stored procedures, because "business logic is the core of our business."
I was deeply moved by the fractals, though. Somehow this emergent beauty almost makes the whole twenty years of blood, tears and sweat worthwhile.
Almost.
Admin
You poor, poor soul
Admin
Looks like a map from the Starwars (tm) universe.
Admin
Like Borromean rings. Youtube has a number of great videos about them.
Admin
I thought about this a little harder. I really don't dislike stored procedures as such.
I'm going to claim that the problem doesn't lie with monstrously large stored procedures and 100 parameters. I mean, obviously, it does. Those are the present manifestation of the problem.
But the basic problem is, not so much the length of the stored procedures (which is probably a WTF, but y'know legacy) as in the number of parameters.
I'll lay good odds that, out of those 100, roughly 85 to 90 are "hello, it's me!" booleans (or moral equivalent), and only ten to fifteen at most are relevant to any individual customer.
Which means that the problem here is that, basically, the idiots writing the "ORM" (insert moral equivalent) cannot be bothered to coalesce the 85 to 90 "hello it's me" parameters to a single validation/lookup/whatever.
Not saying that this thought makes it any better. But hey ... fractals! Goldfish! Man, I ... what was I about to say?"
Admin
Is the Mandelbrot truly an emergent property of the complexity, or just really good visualization? Maybe even a UI update with fancy new technology? ;)
Still, pretty tho.
Admin
That's SQL Dependency Tracker by Red Gate. You can choose different layouts and it'll rearrange them all swoosh like.
Admin
Google also "The Art of the Execution Plan"
Admin
Looks like a Gordian knot to me. Totally untangleable.
Admin
I wonder: had the dependency diagrams actually helped anyone ever or do we only bring them in when we know that the situation is way beyond any help?
Admin
You make good points.
Admin
You misspelled ubercomplexificatified.
Admin
My guess is that the visualization software takes everything that's connected to each other and pushes it into a big circle, so if you had one big person table and one big item table and one big store table, and the only place they were mingled was in a sale table relating one item from each, you'd have a shamrock. If everything is interconnected, it all goes in one huge circle, with a few things that are tangentially connected to one point in that circle becoming new circles on the side.