It amazes me SAP makes so much money...
-
SAP gets into a company through the management board (CEO/CIO). Non technical people worried about their seat in the company - not the company itself. Their goal is to implement a system that will work - they won't take riscs with new IT companies/technologies. If the projects fails they loose their pretty seat in the company... With SAP they cannot go wrong. It'll work eventually, slow & expensive, but it'll work and they'll keep their seat. After the implementation the saying is that everything works great, because nobody has the guts to admit that they spend X miliions for a piece of crap..
You sir, hit the nail on the head.
Jeremy Falcon
-
Jeremy Falcon wrote:
using text fields for boolean logic
To be fair, a boolean isn't part of the ISO specification (Oracle, for example, doesn't have a boolean data type). So you either use a numeric type and restrict it to 0 and 1 or you use a text type and restrict it to Y and N. I've seen the Y/N a lot (although I don't agree with it). At least be glad they documented it properly! What's more important, the average user will never see any of this. What matters to them is that it works and gives them the functionality they need and somehow it does. They don't care about your petty programmer problems like casting Y/N to booleans and keeping your data consistent without foreign keys.
Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly
Sander, we're all professionals here. No need to point out the obvious about it not being an ISO standard. However, it doesn't mean one shouldn't follow common best practices. I can list a handful of reasons why doing what they did is a bad idea for booleans, and any DBA worth his/her weight could too. I choose not to state the obvious however, unless it's asked. Btw, the sky is blue. ;P
Jeremy Falcon
-
Jeremy Falcon wrote:
From this one table alone I can see 3 problems at least... archaic naming convention, using text fields for boolean logic, and not using an ENUM field or lookup table where appropriate
archaic naming convention: it amazes me people see another's naming/coding style and label that as bad/problem, it's not an issue - what next, pick on people who have different skin color? using text fields for boolean: as others pointed out bool is not ISO, so not portable. SAP can use different underlying databases, and supports older DB versions of even those vendors that have those features. and not using an ENUM field or lookup table: well this is just a combination of the above two points. So no, your arguments that their code is bad is just simply 100% wrong. And so you think could do it better: will it work when rolled out to thousands of live enterprise sites, some of which have older systems/databases... THIS is why SAP make so much money (and they also don't employ bragging know-it-all smart asses like yourself because you don't get it.)
Sin tack ear lol Pressing the any key may be continuate
Try your pretty little online argument crap with someone less experienced and stop wasting my time. It may work on those that know no better. And while we are at it, you use too many commas. What's next, you're a child killer?
Jeremy Falcon
-
You're not the customer. What I've learned the hard way is that business doesn't care that if it's coded well, that's not their problem. What they care about is whether the software helps them solve a problem and ultimately whether it saves or makes them money. It's our job to convince them that good code saves and makes them money!
Idaho Edokpayi
You are correct sir. It just took me for a surprise after being exposed to it is all. I totally agree with you however.
Jeremy Falcon
-
So to sum it all up it sounds like we have the perception that exorbitant cost of product should equal better coding standards or at least an upgrade to better technology. What's new? I am curious about one aspect though... there was mention of poor referential integrity. Are you saying that there is actually misshapen data like, for instance, orphaned records or data points stored in the wrong fields or invalid values (i.e. an invalid enum value)? That would be more alarming.
Ed Bouras wrote:
So to sum it all up it sounds like we have the perception that exorbitant cost of product should equal better coding standards or at least an upgrade to better technology. What's new?
Touché! :laugh:
Ed Bouras wrote:
I am curious about one aspect though... there was mention of poor referential integrity. Are you saying that there is actually misshapen data like, for instance, orphaned records or data points stored in the wrong fields or invalid values (i.e. an invalid enum value)?
None that I've noticed yet. So I assume (hope) SAP helps enforce it, but there are no such foreign keys in the DB to help enforce it.
Ed Bouras wrote:
That would be more alarming.
Finally, someone with experience talking. You're correct. Seeing the lack of foreign keys was what started this whole jaw dropping thing actually. It just went from there.
Jeremy Falcon
-
We tell a joke about SAP. We know many companies who have started migrating to SAP. A few who have given up, and NONE who have completed the migration yet! We finish with... Rumor has it, SAP is almost COMPLETELY on SAP now! :-)
:-D
Jeremy Falcon
-
Just be happy. The place I worked last year was still using BPCS. Had to interface some data with it, and the field names you just showed were MODELS OF CLARITY in comparison to those in that heap of crap! FP. RBAS. And numerous others my brain purged in order to keep my sanity!
My CodeProject Articles :: Our forgotten astronomic heritage :: My website.
"Sorry, buddy, but this mission counts on everyone being as silent as possible, and your farts are just too much of a wildcard." - Korra to Meelo, "Kuvira's Gambit"Ok, fair enough. Thanks for making me feel better. :laugh:
Jeremy Falcon
-
Jeremy Falcon wrote:
using text fields for boolean logic
To be fair, a boolean isn't part of the ISO specification (Oracle, for example, doesn't have a boolean data type). So you either use a numeric type and restrict it to 0 and 1 or you use a text type and restrict it to Y and N. I've seen the Y/N a lot (although I don't agree with it). At least be glad they documented it properly! What's more important, the average user will never see any of this. What matters to them is that it works and gives them the functionality they need and somehow it does. They don't care about your petty programmer problems like casting Y/N to booleans and keeping your data consistent without foreign keys.
Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly
Sander Rossel wrote:
Oracle, for example, doesn't have a boolean data type
Also, a lot of RDBMSs don't have a boolean type, but come on, everyone knows to use an integral value for boolean logic in that case. I could list the reasons why, but after 20 years of arguing online with people that love to argue because they mistake that for being "smart", I simply do not care anymore. I'd rather spend my time more wisely then argue with people with no experience (not saying you, you're smart just well you know... if you've hung around coders you know what I mean). But, I'll give a hint why anyone worth their weight DBA wise wouldn't use a text field for booleans... code pages / character sets / insert whatever mapping here, not every RDBMSs can restrict case and if so its less performant, wasted space and memory for storage... and that's just three without having to think about it. Y/N as text simply means it was rookies. I could go on and on and on, but I no longer have the desire to these days. It just simply amazes me something so bad could make so much money, that doesn't mean I need a lesson on something about databases that I already know.
Jeremy Falcon
-
Try your pretty little online argument crap with someone less experienced and stop wasting my time. It may work on those that know no better. And while we are at it, you use too many commas. What's next, you're a child killer?
Jeremy Falcon
-
LOL. Just keep on believing that. SAP is making billions, you're not!
Sin tack ear lol Pressing the any key may be continuate
And neither are you. So you just invalidated your own post as well.
Jeremy Falcon
-
Surely, I can't be the only person to go through bits of SAP and think, if they can sell this, then in tech you apparently can pretty much shrink wrap and sell a turd to people who don't know any better. The more I dig into SAP the more WTFs I see. For instance... SAP Business One 8.8 Administration system ADP1 table definitions[^] From this one table alone I can see 3 problems at least... archaic naming convention, using text fields for boolean logic, and not using an ENUM field or lookup table where appropriate. More if I try, and this isn't counting the fact there are no foreign keys in the database, some of the denormalized data I've seen, and some stored procs with unnecessarily needed hard coded values. :doh:
Jeremy Falcon
Some believe that SAP was Germany's revenge for losing the was (WWII). See this [^]
-
Like most developers / programmers /(insert term du Jour here) your criticism/suggestion overlooks the key reason businesses continue using SAP and others like it. that is the Training and implementation costs involved with a new system. The larger the organization, the larger the cost is. One of the major reasons Windows8 failed was this exact fact. If you could keep the user interface the same and just clean up the back end, you would have a reasonable competitor. (No chance without a major lawsuit from SAP!) Ignoring that who would buy it and how would you sell it? The other reason would be who gets the money from the sales of the new product if there are any.... I have a package for small business and clients that have been with me since 1984. Over the years, the code has been refactored repeatedly, the user interface has bee virtually untouched. Finally, you may think that you can build a better mousetrap (like the creators of all the new languages :mad:), but I have my doubts. However solve the issues I bring up and I'm "in".
A giraffe is a horse designed by a committee....
So true. I have witnessed, at close quarters, vastly superior software products completely failing to knock long established, industry standard piles of poo off their perches. Lots of people have lost lots of money trying.
We're philosophical about power outages here. A.C. come, A.C. go.
-
Some believe that SAP was Germany's revenge for losing the was (WWII). See this [^]
:-D :-D :-D :-D
Jeremy Falcon
-
Sander, we're all professionals here. No need to point out the obvious about it not being an ISO standard. However, it doesn't mean one shouldn't follow common best practices. I can list a handful of reasons why doing what they did is a bad idea for booleans, and any DBA worth his/her weight could too. I choose not to state the obvious however, unless it's asked. Btw, the sky is blue. ;P
Jeremy Falcon
Jeremy Falcon wrote:
No need to point out the obvious about it not being an ISO standard
That wasn't so obvious to me. I never knew until I needed to use Oracle instead of SQL Server.
Jeremy Falcon wrote:
Btw, the sky is blue. ;-P
I'm looking outside and it looks more like black to me. Then again, it is 21:30 o' clock. Were I in the Westland it would be yellowish (due to the many greenhouses that seem to set the sky alight). I've been in cities where the color was grey. Don't assume that whatever is obvious to you is obvious to others as well. Or is that obvious advice? ;)
Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly
-
Sander Rossel wrote:
Oracle, for example, doesn't have a boolean data type
Also, a lot of RDBMSs don't have a boolean type, but come on, everyone knows to use an integral value for boolean logic in that case. I could list the reasons why, but after 20 years of arguing online with people that love to argue because they mistake that for being "smart", I simply do not care anymore. I'd rather spend my time more wisely then argue with people with no experience (not saying you, you're smart just well you know... if you've hung around coders you know what I mean). But, I'll give a hint why anyone worth their weight DBA wise wouldn't use a text field for booleans... code pages / character sets / insert whatever mapping here, not every RDBMSs can restrict case and if so its less performant, wasted space and memory for storage... and that's just three without having to think about it. Y/N as text simply means it was rookies. I could go on and on and on, but I no longer have the desire to these days. It just simply amazes me something so bad could make so much money, that doesn't mean I need a lesson on something about databases that I already know.
Jeremy Falcon
This is a warning. If you are currently happy with your life do not continue reading. I cannot guarantee you will ever be happy, find love, see beauty or sleep at night again after reading this. So, don't say I didn't warn you. One shop I worked at, that used SQL Server 2005 and up with VB.NET 2.0 and up, did not use the BIT data type, nor did they use a numeric type with 0 and 1. Instead, they used the MBoolean, M being the first letter of the company name. The MBoolean was a CHAR(1). Now you might expect it to be Y or N. It wasn't. It could actually have the values J and N, from the Dutch Ja (yes) and Nee (no). The worst part was that they often didn't even bother to cast J/N to a regular boolean (not even in .NET), the code was littered with If something = "J" Then... Because doing things in Dutch is so much easier when finding help on the internet. Not even the Dutch people understood the J/N boolean :doh: The reason for the J/N had something to do with Clipper, Visual Basic (pre-.NET) and dBase all handling booleans differently.
Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly
-
Jeremy Falcon wrote:
No need to point out the obvious about it not being an ISO standard
That wasn't so obvious to me. I never knew until I needed to use Oracle instead of SQL Server.
Jeremy Falcon wrote:
Btw, the sky is blue. ;-P
I'm looking outside and it looks more like black to me. Then again, it is 21:30 o' clock. Were I in the Westland it would be yellowish (due to the many greenhouses that seem to set the sky alight). I've been in cities where the color was grey. Don't assume that whatever is obvious to you is obvious to others as well. Or is that obvious advice? ;)
Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly
Sander Rossel wrote:
Or is that obvious advice?
Sure, but you assumed I had no idea what I was talking about and missed the point. Let me use an example, you say "hey" and then I say a 10 page essay on the origins of "hey"... because I just can't wait to tell someone what I know and/or read. Whether or not you know this already doesn't matter, I just want to say it. That's the IT way man. I never asked or even pretended to not-know, you just assumed it when "correcting" or informing me. You can say that wasn't the premise and the idea is to inform the world at large, but I believe if that were the case you would've said so. Computer people just love assuming people are clueless man, lack of social skills.
Sander Rossel wrote:
Were I in the Westland it would be yellowish (due to the many greenhouses that seem to set the sky alight).
:doh: :-D
Jeremy Falcon
-
This is a warning. If you are currently happy with your life do not continue reading. I cannot guarantee you will ever be happy, find love, see beauty or sleep at night again after reading this. So, don't say I didn't warn you. One shop I worked at, that used SQL Server 2005 and up with VB.NET 2.0 and up, did not use the BIT data type, nor did they use a numeric type with 0 and 1. Instead, they used the MBoolean, M being the first letter of the company name. The MBoolean was a CHAR(1). Now you might expect it to be Y or N. It wasn't. It could actually have the values J and N, from the Dutch Ja (yes) and Nee (no). The worst part was that they often didn't even bother to cast J/N to a regular boolean (not even in .NET), the code was littered with If something = "J" Then... Because doing things in Dutch is so much easier when finding help on the internet. Not even the Dutch people understood the J/N boolean :doh: The reason for the J/N had something to do with Clipper, Visual Basic (pre-.NET) and dBase all handling booleans differently.
Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly
Sander Rossel wrote:
So, don't say I didn't warn you.
And yet, I read it.... :sigh: Maybe they could get a job at SAP? :rolleyes:
Jeremy Falcon
-
Sander Rossel wrote:
Or is that obvious advice?
Sure, but you assumed I had no idea what I was talking about and missed the point. Let me use an example, you say "hey" and then I say a 10 page essay on the origins of "hey"... because I just can't wait to tell someone what I know and/or read. Whether or not you know this already doesn't matter, I just want to say it. That's the IT way man. I never asked or even pretended to not-know, you just assumed it when "correcting" or informing me. You can say that wasn't the premise and the idea is to inform the world at large, but I believe if that were the case you would've said so. Computer people just love assuming people are clueless man, lack of social skills.
Sander Rossel wrote:
Were I in the Westland it would be yellowish (due to the many greenhouses that seem to set the sky alight).
:doh: :-D
Jeremy Falcon
Sorry man, you seem quite bothered by my little ISO comment. I was just trying to cut the SAP people a little slack, but you are merciless! :laugh:
Jeremy Falcon wrote:
you say "hey" and then I say a 10 page essay on the origins of "hey"
Did you just assume I can read!? :laugh: I hear assuming genders is a thing nowadays :doh: Anyway, to assume makes and ass of u and me :)
Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly
-
Sorry man, you seem quite bothered by my little ISO comment. I was just trying to cut the SAP people a little slack, but you are merciless! :laugh:
Jeremy Falcon wrote:
you say "hey" and then I say a 10 page essay on the origins of "hey"
Did you just assume I can read!? :laugh: I hear assuming genders is a thing nowadays :doh: Anyway, to assume makes and ass of u and me :)
Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly
Sander Rossel wrote:
Sorry man, you seem quite bothered by my little ISO comment.
I suppose a wee bit. Just a bit too used to dealing with people in this industry trying to "show off knowledge" without regards to the actual conversation ya know. Anyway, I'll shut up now.
Sander Rossel wrote:
I was just trying to cut the SAP people a little slack, but you are merciless!
No comment. :-O
Sander Rossel wrote:
Anyway, to assume makes and ass of u and me
Maybe, but I'd rather be an ass than a SAP developer. :)
Jeremy Falcon
-
Long statement about Google, Mary Ann Davidson, and the pain of working with Oracle products. Realized that I don't care, not worth kvetching over. [Oracle security chief to customers: Stop checking our code for vulnerabilities [Updated] | Ars Technica](http://arstechnica.com/information-technology/2015/08/oracle-security-chief-to-customers-stop-checking-our-code-for-vulnerabilities/) is worth the read for a laugh, if you're not familiar. I do need to point out that while no one has ever gotten rich by being lazy, many people have gotten rich in spite of being lazy.
"There are three kinds of lies: lies, damned lies and statistics." - Benjamin Disraeli
Nathan Minier wrote:
worth the read for a laugh, if you're not familiar.
I know it :D I really dislike Oracle. Their lust for lawsuits, money and overall attitude is among the worst in the business and their flagship database is a horror to work with :sigh:
Nathan Minier wrote:
many people have gotten rich in spite of being lazy
I guess some people get lucky...
Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly