Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. It amazes me SAP makes so much money...

It amazes me SAP makes so much money...

Scheduled Pinned Locked Moved The Lounge
databasebusinessxmlquestion
66 Posts 28 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Sander RosselS Sander Rossel

    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

    D Offline
    D Offline
    den2k88
    wrote on last edited by
    #14

    Sander Rossel wrote:

    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!

    That are almost equivalent options, as you can do it with a simple binary AND. It helps reportization, especially if the clients are dumb (as with only enough processor to keep a connection to a main server), which was the standard topology at the times. then topology changed, but you must maintain compatibility with older databases. What do you do, change the background and add a layer of compatibility or realyze that Y/N are two bytes as much as 1/0? In industial automation BTW the common patterns are 0xC0 and 0xC1 to encode 0 and 1.

    CALL APOGEE, SAY AARDWOLF GCS d--- s-/++ a- C++++ U+++ P- L- E-- W++ N++ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t++ 5? X R++ tv-- b+ DI+++ D++ G e++>+++ h--- ++>+++ y+++*      Weapons extension: ma- k++ F+2 X If you think 'goto' is evil, try writing an Assembly program without JMP. -- TNCaver "Go ahead, make my day"

    1 Reply Last reply
    0
    • Sander RosselS Sander Rossel

      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

      K Offline
      K Offline
      Keviniano Gayo
      wrote on last edited by
      #15

      Sander Rossel wrote:

      What's more important, the average user will never see any of this.

      Exactly! That's why SAP makes so much money. SAP is a well known ERP system. So when big companies setup ERP system they can only think of SAP.

      1 Reply Last reply
      0
      • M Mycroft Holmes

        Twould be a serious commitment of time and effort. The mind boggles at the discussions around the requirements, I think you would get some sort of spec out in about 5 years, if ever. I doubt you could even get an agreement on the platform(s) to be supported.

        Never underestimate the power of human stupidity RAH

        M Offline
        M Offline
        Mark_Wallace
        wrote on last edited by
        #16

        CP/M, of course!

        I wanna be a eunuchs developer! Pass me a bread knife!

        1 Reply Last reply
        0
        • Sander RosselS Sander Rossel

          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

          N Offline
          N Offline
          Nathan Minier
          wrote on last edited by
          #17

          Sander Rossel wrote:

          Oracle, for example, doesn't have a boolean data type

          To be fair, Oracle is one of the best sources of negative examples in the industry.

          "There are three kinds of lies: lies, damned lies and statistics." - Benjamin Disraeli

          Sander RosselS 1 Reply Last reply
          0
          • J 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

            L Offline
            L Offline
            Lost User
            wrote on last edited by
            #18

            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

            J 1 Reply Last reply
            0
            • N Nathan Minier

              Sander Rossel wrote:

              Oracle, for example, doesn't have a boolean data type

              To be fair, Oracle is one of the best sources of negative examples in the industry.

              "There are three kinds of lies: lies, damned lies and statistics." - Benjamin Disraeli

              Sander RosselS Offline
              Sander RosselS Offline
              Sander Rossel
              wrote on last edited by
              #19

              And, like SAP, they make shitloads of money. Larry Ellison is one of the top eight richest people in the world (who, together, have more money than half of the worlds population together). Step 1. Do a shit job. Step 2. ??? Step 3. Profit. We can learn from these guys... :sigh:

              Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly

              N D 2 Replies Last reply
              0
              • Sander RosselS Sander Rossel

                And, like SAP, they make shitloads of money. Larry Ellison is one of the top eight richest people in the world (who, together, have more money than half of the worlds population together). Step 1. Do a shit job. Step 2. ??? Step 3. Profit. We can learn from these guys... :sigh:

                Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly

                N Offline
                N Offline
                Nathan Minier
                wrote on last edited by
                #20

                These people demonstrate nothing but greed and laziness, which are two things that everyone learns as a toddler. What we need is to stop rewarding people for providing garbage, but then where would the Kardashian's be?

                "There are three kinds of lies: lies, damned lies and statistics." - Benjamin Disraeli

                Sander RosselS 1 Reply Last reply
                0
                • N Nathan Minier

                  These people demonstrate nothing but greed and laziness, which are two things that everyone learns as a toddler. What we need is to stop rewarding people for providing garbage, but then where would the Kardashian's be?

                  "There are three kinds of lies: lies, damned lies and statistics." - Benjamin Disraeli

                  Sander RosselS Offline
                  Sander RosselS Offline
                  Sander Rossel
                  wrote on last edited by
                  #21

                  No one ever got rich by being lazy. They may be greedy (although Bill Gates is the biggest giver to charity ever), but they are not lazy. Not to mention they took risks. I also wouldn't go so far as to call their products garbage. If they were in it just for the money they would never get this far.

                  Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly

                  N 1 Reply Last reply
                  0
                  • J 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

                    M Offline
                    M Offline
                    milo xml
                    wrote on last edited by
                    #22

                    Add PeopleSoft to that list. To be fair, both companies are trying to build an application that streamlines business. The only problem is that every business has different thoughts on how things should be done. SAP is German over-engineered and removes a lot of flexibility from the user side of things to get things done quickly, especially from a user standpoint. Accountants love it though because it makes their job so much easier.

                    U 1 Reply Last reply
                    0
                    • Sander RosselS Sander Rossel

                      And, like SAP, they make shitloads of money. Larry Ellison is one of the top eight richest people in the world (who, together, have more money than half of the worlds population together). Step 1. Do a shit job. Step 2. ??? Step 3. Profit. We can learn from these guys... :sigh:

                      Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly

                      D Offline
                      D Offline
                      DodgyCode
                      wrote on last edited by
                      #23

                      I reckon I can handle step 1 and 3. Could you please expand on step 2.

                      Sander RosselS 1 Reply Last reply
                      0
                      • M milo xml

                        Add PeopleSoft to that list. To be fair, both companies are trying to build an application that streamlines business. The only problem is that every business has different thoughts on how things should be done. SAP is German over-engineered and removes a lot of flexibility from the user side of things to get things done quickly, especially from a user standpoint. Accountants love it though because it makes their job so much easier.

                        U Offline
                        U Offline
                        User 12646285
                        wrote on last edited by
                        #24

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

                        J 1 Reply Last reply
                        0
                        • J 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

                          M Offline
                          M Offline
                          Middle Manager
                          wrote on last edited by
                          #25

                          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.

                          F J 2 Replies Last reply
                          0
                          • M Mark_Wallace

                            Well, why don't we do it? There are certainly enough of us who can code, and enough with business knowledge/requirements. It's actually a project that's big enough for CP to handle. There aren't many that big. It would certainly be an opportunity to put feathers in a large number of caps.

                            I wanna be a eunuchs developer! Pass me a bread knife!

                            S Offline
                            S Offline
                            Slow Eddie
                            wrote on last edited by
                            #26

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

                            H 1 Reply Last reply
                            0
                            • J 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

                              K Offline
                              K Offline
                              Kirk 10389821
                              wrote on last edited by
                              #27

                              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! :-)

                              J 1 Reply Last reply
                              0
                              • Sander RosselS Sander Rossel

                                No one ever got rich by being lazy. They may be greedy (although Bill Gates is the biggest giver to charity ever), but they are not lazy. Not to mention they took risks. I also wouldn't go so far as to call their products garbage. If they were in it just for the money they would never get this far.

                                Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly

                                N Offline
                                N Offline
                                Nathan Minier
                                wrote on last edited by
                                #28

                                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

                                Sander RosselS 1 Reply Last reply
                                0
                                • D David ONeil

                                  Real programmers don't need foreign keys!

                                  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"

                                  F Offline
                                  F Offline
                                  Foothill
                                  wrote on last edited by
                                  #29

                                  Real programmers also do their code tests in production.

                                  if (Object.DividedByZero == true) { Universe.Implode(); } Meus ratio ex fortis machina. Simplicitatis de formae ac munus. -Foothill, 2016

                                  1 Reply Last reply
                                  0
                                  • M Middle Manager

                                    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.

                                    F Offline
                                    F Offline
                                    Foothill
                                    wrote on last edited by
                                    #30

                                    When I was a lot newer to programming and databases, I once wrote an application that maintained the referential integrity through the code. If I knew then what I know now :sigh:

                                    if (Object.DividedByZero == true) { Universe.Implode(); } Meus ratio ex fortis machina. Simplicitatis de formae ac munus. -Foothill, 2016

                                    M 1 Reply Last reply
                                    0
                                    • F Foothill

                                      When I was a lot newer to programming and databases, I once wrote an application that maintained the referential integrity through the code. If I knew then what I know now :sigh:

                                      if (Object.DividedByZero == true) { Universe.Implode(); } Meus ratio ex fortis machina. Simplicitatis de formae ac munus. -Foothill, 2016

                                      M Offline
                                      M Offline
                                      Middle Manager
                                      wrote on last edited by
                                      #31

                                      I unfortunately work with a legacy system that was written without FKs. The amount of crap data in this DB is enough to make angels cry. This is why I was curious. It's the classic thinking that you only need to write a DB for the front end's needs without considering that other systems may one day interact with it with their own idiosyncrasies (forget about devs going in and mussing things up directly in the tables).

                                      1 Reply Last reply
                                      0
                                      • M Mark_Wallace

                                        Well, why don't we do it? There are certainly enough of us who can code, and enough with business knowledge/requirements. It's actually a project that's big enough for CP to handle. There aren't many that big. It would certainly be an opportunity to put feathers in a large number of caps.

                                        I wanna be a eunuchs developer! Pass me a bread knife!

                                        B Offline
                                        B Offline
                                        Bruce Patin
                                        wrote on last edited by
                                        #32

                                        There are already a number of open source apps that could replace SAP. I would suggest finding your favorite and contributing.

                                        1 Reply Last reply
                                        0
                                        • J 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

                                          I Offline
                                          I Offline
                                          Idaho Edokpayi
                                          wrote on last edited by
                                          #33

                                          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

                                          J 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups