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. How bad of an idea is this?

How bad of an idea is this?

Scheduled Pinned Locked Moved The Lounge
databasecsharpsql-serversysadmin
12 Posts 8 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 Offline
    Sander RosselS Offline
    Sander Rossel
    wrote on last edited by
    #1

    So I'm on this project where everything is done using a no-code platform. The platform itself is the worst of the worst, but the company who made it is my customer (or employer if you well, I'm a contractor for them). The company I'm working for is great (so the customer of my customer), but unfortunately everything has to go through this no-code platform (they get paid by the task! X|). So anyway, it works kind of like a queue. A task starts, either manually (called from code) or automatically (through a timer), and is then queued. The problem is, the queue is not persisted, so if the server restarts or anything else happens, the queue is empties and your tasks won't run. Because of this, every task is triggered by a timer and all data a task needs is persisted to a database. Things get convoluted pretty quickly... They have a WebForms (VB.NET) front-end so we can run everything in code just as easily, but they have to be tasks in the no-code platform :(( The thing is, we now have a simple super unnecissarily complicated import and export functionality. The import is easy enough, every ten minutes I get all changes from the last ten minutes using an API and merge them in a SQL Server table. The export is more difficult, as everything I want to export needs to be stored in the database (because of the non-persisted queue). Now my employer wants to do this in the same table as the import :wtf: So we have our table, SomeEntity, which contains entities, but which also contains jobs for the export. The difference between the two is a column which specifies if it's "FROM" or "TO" the other system. So if you now want SomeEntity you'd have to query like "SELECT Fields FROM SomeEntity WHERE ... AND Destination = 'FROM'" If you forget the Destination filter you'll get all export rows as well, which you never want as they're basically one-off queue items X| ALL of this is really super bad already, but apparently they've found ways to make it worse X| I advised against it, but this is just the way they (want to) work and my opinion mattered little. As you can imagine this is just the tip of the proverbial iceberg. I want to tell my customer's customer just how screwed they are, but professionality is keeping me from screwing over my own customer. Won't work anyway as the CEO's are school friends and they've been doing business for something like twenty years already. Only a few more weeks and I'm done with this job, it's just not worth the money (no amount of money

    Richard DeemingR Mike HankeyM L P 4 Replies Last reply
    0
    • Sander RosselS Sander Rossel

      So I'm on this project where everything is done using a no-code platform. The platform itself is the worst of the worst, but the company who made it is my customer (or employer if you well, I'm a contractor for them). The company I'm working for is great (so the customer of my customer), but unfortunately everything has to go through this no-code platform (they get paid by the task! X|). So anyway, it works kind of like a queue. A task starts, either manually (called from code) or automatically (through a timer), and is then queued. The problem is, the queue is not persisted, so if the server restarts or anything else happens, the queue is empties and your tasks won't run. Because of this, every task is triggered by a timer and all data a task needs is persisted to a database. Things get convoluted pretty quickly... They have a WebForms (VB.NET) front-end so we can run everything in code just as easily, but they have to be tasks in the no-code platform :(( The thing is, we now have a simple super unnecissarily complicated import and export functionality. The import is easy enough, every ten minutes I get all changes from the last ten minutes using an API and merge them in a SQL Server table. The export is more difficult, as everything I want to export needs to be stored in the database (because of the non-persisted queue). Now my employer wants to do this in the same table as the import :wtf: So we have our table, SomeEntity, which contains entities, but which also contains jobs for the export. The difference between the two is a column which specifies if it's "FROM" or "TO" the other system. So if you now want SomeEntity you'd have to query like "SELECT Fields FROM SomeEntity WHERE ... AND Destination = 'FROM'" If you forget the Destination filter you'll get all export rows as well, which you never want as they're basically one-off queue items X| ALL of this is really super bad already, but apparently they've found ways to make it worse X| I advised against it, but this is just the way they (want to) work and my opinion mattered little. As you can imagine this is just the tip of the proverbial iceberg. I want to tell my customer's customer just how screwed they are, but professionality is keeping me from screwing over my own customer. Won't work anyway as the CEO's are school friends and they've been doing business for something like twenty years already. Only a few more weeks and I'm done with this job, it's just not worth the money (no amount of money

      Richard DeemingR Offline
      Richard DeemingR Offline
      Richard Deeming
      wrote on last edited by
      #2

      Sander Rossel wrote:

      WebForms (VB.NET)

      Run away! X|

      Sander Rossel wrote:

      Now my employer wants to do this in the same table as the import

      Can you at least make sure the table is partitioned on the Destination column? Partitioned tables and indexes - SQL Server, Azure SQL Database, Azure SQL Managed Instance | Microsoft Learn[^] If not, I suspect the performance is going to suck donkey balls.


      "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

      "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

      Sander RosselS S 2 Replies Last reply
      0
      • Sander RosselS Sander Rossel

        So I'm on this project where everything is done using a no-code platform. The platform itself is the worst of the worst, but the company who made it is my customer (or employer if you well, I'm a contractor for them). The company I'm working for is great (so the customer of my customer), but unfortunately everything has to go through this no-code platform (they get paid by the task! X|). So anyway, it works kind of like a queue. A task starts, either manually (called from code) or automatically (through a timer), and is then queued. The problem is, the queue is not persisted, so if the server restarts or anything else happens, the queue is empties and your tasks won't run. Because of this, every task is triggered by a timer and all data a task needs is persisted to a database. Things get convoluted pretty quickly... They have a WebForms (VB.NET) front-end so we can run everything in code just as easily, but they have to be tasks in the no-code platform :(( The thing is, we now have a simple super unnecissarily complicated import and export functionality. The import is easy enough, every ten minutes I get all changes from the last ten minutes using an API and merge them in a SQL Server table. The export is more difficult, as everything I want to export needs to be stored in the database (because of the non-persisted queue). Now my employer wants to do this in the same table as the import :wtf: So we have our table, SomeEntity, which contains entities, but which also contains jobs for the export. The difference between the two is a column which specifies if it's "FROM" or "TO" the other system. So if you now want SomeEntity you'd have to query like "SELECT Fields FROM SomeEntity WHERE ... AND Destination = 'FROM'" If you forget the Destination filter you'll get all export rows as well, which you never want as they're basically one-off queue items X| ALL of this is really super bad already, but apparently they've found ways to make it worse X| I advised against it, but this is just the way they (want to) work and my opinion mattered little. As you can imagine this is just the tip of the proverbial iceberg. I want to tell my customer's customer just how screwed they are, but professionality is keeping me from screwing over my own customer. Won't work anyway as the CEO's are school friends and they've been doing business for something like twenty years already. Only a few more weeks and I'm done with this job, it's just not worth the money (no amount of money

        Mike HankeyM Online
        Mike HankeyM Online
        Mike Hankey
        wrote on last edited by
        #3

        While your product is very useful,innovative,user friendly, whatever I would like to point out a few areas where problems exist and will prevent future ??? or create problems or ???...whatever. Put it in writing and submit it to them. It's called CYA (Cover Your Ass)

        PartsBin an Electronics Part Organizer - An updated version available! JaxCoder.com Latest Article: ARM Tutorial Part 1 Clocks

        Sander RosselS 1 Reply Last reply
        0
        • Mike HankeyM Mike Hankey

          While your product is very useful,innovative,user friendly, whatever I would like to point out a few areas where problems exist and will prevent future ??? or create problems or ???...whatever. Put it in writing and submit it to them. It's called CYA (Cover Your Ass)

          PartsBin an Electronics Part Organizer - An updated version available! JaxCoder.com Latest Article: ARM Tutorial Part 1 Clocks

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

          Already pointed out some general problems with the product, like no source control or easy deployment. The customer's customer said "our other vendor has this awesome website where I can just click on a button to deploy something to the next stage!" I told them all my software is deployed that way, but that's not going to fly here :laugh: Still no way in hell they're going to replace it and in a few weeks that won't be my problem anymore :)

          Best, Sander Azure DevOps Succinctly (free eBook) Azure Serverless Succinctly (free eBook) Migrating Apps to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript

          1 Reply Last reply
          0
          • Richard DeemingR Richard Deeming

            Sander Rossel wrote:

            WebForms (VB.NET)

            Run away! X|

            Sander Rossel wrote:

            Now my employer wants to do this in the same table as the import

            Can you at least make sure the table is partitioned on the Destination column? Partitioned tables and indexes - SQL Server, Azure SQL Database, Azure SQL Managed Instance | Microsoft Learn[^] If not, I suspect the performance is going to suck donkey balls.


            "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

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

            Richard Deeming wrote:

            Run away! X|

            Yeah, that should've been a sign on the wall. Still, didn't expect it to be this bad X|

            Richard Deeming wrote:

            If not, I suspect the performance is going to suck donkey balls.

            Not my problem anymore in a few weeks time :D

            Best, Sander Azure DevOps Succinctly (free eBook) Azure Serverless Succinctly (free eBook) Migrating Apps to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript

            1 Reply Last reply
            0
            • Sander RosselS Sander Rossel

              So I'm on this project where everything is done using a no-code platform. The platform itself is the worst of the worst, but the company who made it is my customer (or employer if you well, I'm a contractor for them). The company I'm working for is great (so the customer of my customer), but unfortunately everything has to go through this no-code platform (they get paid by the task! X|). So anyway, it works kind of like a queue. A task starts, either manually (called from code) or automatically (through a timer), and is then queued. The problem is, the queue is not persisted, so if the server restarts or anything else happens, the queue is empties and your tasks won't run. Because of this, every task is triggered by a timer and all data a task needs is persisted to a database. Things get convoluted pretty quickly... They have a WebForms (VB.NET) front-end so we can run everything in code just as easily, but they have to be tasks in the no-code platform :(( The thing is, we now have a simple super unnecissarily complicated import and export functionality. The import is easy enough, every ten minutes I get all changes from the last ten minutes using an API and merge them in a SQL Server table. The export is more difficult, as everything I want to export needs to be stored in the database (because of the non-persisted queue). Now my employer wants to do this in the same table as the import :wtf: So we have our table, SomeEntity, which contains entities, but which also contains jobs for the export. The difference between the two is a column which specifies if it's "FROM" or "TO" the other system. So if you now want SomeEntity you'd have to query like "SELECT Fields FROM SomeEntity WHERE ... AND Destination = 'FROM'" If you forget the Destination filter you'll get all export rows as well, which you never want as they're basically one-off queue items X| ALL of this is really super bad already, but apparently they've found ways to make it worse X| I advised against it, but this is just the way they (want to) work and my opinion mattered little. As you can imagine this is just the tip of the proverbial iceberg. I want to tell my customer's customer just how screwed they are, but professionality is keeping me from screwing over my own customer. Won't work anyway as the CEO's are school friends and they've been doing business for something like twenty years already. Only a few more weeks and I'm done with this job, it's just not worth the money (no amount of money

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

              I once wrote a print spooler (on my own) that allowed operators to transfer print jobs to other idle computers / printers, and finish earlier. Only the operators appreciated it. Management was probably bothered by the initiative.

              "Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I

              J 1 Reply Last reply
              0
              • Sander RosselS Sander Rossel

                So I'm on this project where everything is done using a no-code platform. The platform itself is the worst of the worst, but the company who made it is my customer (or employer if you well, I'm a contractor for them). The company I'm working for is great (so the customer of my customer), but unfortunately everything has to go through this no-code platform (they get paid by the task! X|). So anyway, it works kind of like a queue. A task starts, either manually (called from code) or automatically (through a timer), and is then queued. The problem is, the queue is not persisted, so if the server restarts or anything else happens, the queue is empties and your tasks won't run. Because of this, every task is triggered by a timer and all data a task needs is persisted to a database. Things get convoluted pretty quickly... They have a WebForms (VB.NET) front-end so we can run everything in code just as easily, but they have to be tasks in the no-code platform :(( The thing is, we now have a simple super unnecissarily complicated import and export functionality. The import is easy enough, every ten minutes I get all changes from the last ten minutes using an API and merge them in a SQL Server table. The export is more difficult, as everything I want to export needs to be stored in the database (because of the non-persisted queue). Now my employer wants to do this in the same table as the import :wtf: So we have our table, SomeEntity, which contains entities, but which also contains jobs for the export. The difference between the two is a column which specifies if it's "FROM" or "TO" the other system. So if you now want SomeEntity you'd have to query like "SELECT Fields FROM SomeEntity WHERE ... AND Destination = 'FROM'" If you forget the Destination filter you'll get all export rows as well, which you never want as they're basically one-off queue items X| ALL of this is really super bad already, but apparently they've found ways to make it worse X| I advised against it, but this is just the way they (want to) work and my opinion mattered little. As you can imagine this is just the tip of the proverbial iceberg. I want to tell my customer's customer just how screwed they are, but professionality is keeping me from screwing over my own customer. Won't work anyway as the CEO's are school friends and they've been doing business for something like twenty years already. Only a few more weeks and I'm done with this job, it's just not worth the money (no amount of money

                P Offline
                P Offline
                PIEBALDconsult
                wrote on last edited by
                #7

                I recommended adopting this attitude: https://despair.com/products/consulting[^]

                D 1 Reply Last reply
                0
                • Richard DeemingR Richard Deeming

                  Sander Rossel wrote:

                  WebForms (VB.NET)

                  Run away! X|

                  Sander Rossel wrote:

                  Now my employer wants to do this in the same table as the import

                  Can you at least make sure the table is partitioned on the Destination column? Partitioned tables and indexes - SQL Server, Azure SQL Database, Azure SQL Managed Instance | Microsoft Learn[^] If not, I suspect the performance is going to suck donkey balls.


                  "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

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

                  Boo! VB is the best! Have you ever used it, or are you just going on what other people say? But this is an example of the "Golden Rule". The man with the gold, makes the rules. :)

                  ed

                  Richard DeemingR 1 Reply Last reply
                  0
                  • P PIEBALDconsult

                    I recommended adopting this attitude: https://despair.com/products/consulting[^]

                    D Offline
                    D Offline
                    Daniel Pfeffer
                    wrote on last edited by
                    #9

                    I think that this is more apropos: [https://despair.com/collections/posters/products/solutions\](https://despair.com/collections/posters/products/solutions)

                    Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

                    P 1 Reply Last reply
                    0
                    • D Daniel Pfeffer

                      I think that this is more apropos: [https://despair.com/collections/posters/products/solutions\](https://despair.com/collections/posters/products/solutions)

                      Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

                      P Offline
                      P Offline
                      PIEBALDconsult
                      wrote on last edited by
                      #10

                      Good call. I hadn't seen that one yet.

                      1 Reply Last reply
                      0
                      • S Slow Eddie

                        Boo! VB is the best! Have you ever used it, or are you just going on what other people say? But this is an example of the "Golden Rule". The man with the gold, makes the rules. :)

                        ed

                        Richard DeemingR Offline
                        Richard DeemingR Offline
                        Richard Deeming
                        wrote on last edited by
                        #11

                        Slow Eddie wrote:

                        Have you ever used it, or are you just going on what other people say?

                        I've used BASIC on a ZX Spectrum; QBASIC and GWBASIC on DOS; VB1 on Windows 3.1; both VB5 and VB6; and (briefly) VB.NET, until I moved to C#. So yeah, I guess you could say I've "used it". :laugh: Yes, VB.NET is better than what came before. But that's a pretty low bar. And coupled with WebForms, which has been slowly dying for over a decade, and the manager's suggestion that both import and export records should be stored in the same database table, it's a strong suggestion that the code will be a complete mess.


                        "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

                        "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

                        1 Reply Last reply
                        0
                        • L Lost User

                          I once wrote a print spooler (on my own) that allowed operators to transfer print jobs to other idle computers / printers, and finish earlier. Only the operators appreciated it. Management was probably bothered by the initiative.

                          "Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I

                          J Offline
                          J Offline
                          jschell
                          wrote on last edited by
                          #12

                          I once attended a department meeting with probably 150 developers (actual developers and not support) where among other things the VP that was in charge congratulated the initiative of a single developer who created a pass through API that allowed one large system to access functionality via another large system. Must be good right? Except I knew there was a team of 4 developers that had been working on exactly the same thing for several months. I knew this because I needed that functionality and I had been blocked because they were not close to being done. I always wondered if the VP had any idea what was going on in the dept that he ran.

                          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