This application just keeps on giving...
-
So this application has an order entity. You'd expect something like order and order detail, but instead we get an order with product1, product2, product3, product4 and price1, price2, price3, price4. Because there would never be more than four products. Actually make that five! Hilarity ensued as the original programmer tried to fit in a fifth product and had to go through the entire application to add another product. Everything I'm doing now is basically work around this ridiculous setup. So anyway, each product requires a report to be printed and all reports need to be printed before the order can be invoiced. So you'd expect a printed1, printed2, printed3... Except it's a single field with "01101". The first digit represents the status of product1, the second of product2, etc. And a "1" means it's NOT printed. I'm not even sure how it works for orders with less than five products. And the old orders only have four digits so I'm not even sure if that ever works out or we need to do some data update on all orders. This is a fairly recent application written by someone with over 30 years of experience in software development :(( And he's not even the worst software developer I know :wtf:
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
Sander Rossel wrote:
written by someone with over 30 years of experience in software development
Are you sure he didn't say "I had an experience with software development 30 years ago"? But seriously, it's hard to believe you didn't just make this up, it's so funny to think this actually happens. I look forward to the next update :-D
-
So this application has an order entity. You'd expect something like order and order detail, but instead we get an order with product1, product2, product3, product4 and price1, price2, price3, price4. Because there would never be more than four products. Actually make that five! Hilarity ensued as the original programmer tried to fit in a fifth product and had to go through the entire application to add another product. Everything I'm doing now is basically work around this ridiculous setup. So anyway, each product requires a report to be printed and all reports need to be printed before the order can be invoiced. So you'd expect a printed1, printed2, printed3... Except it's a single field with "01101". The first digit represents the status of product1, the second of product2, etc. And a "1" means it's NOT printed. I'm not even sure how it works for orders with less than five products. And the old orders only have four digits so I'm not even sure if that ever works out or we need to do some data update on all orders. This is a fairly recent application written by someone with over 30 years of experience in software development :(( And he's not even the worst software developer I know :wtf:
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
Sander Rossel wrote:
This is a fairly recent application written by someone with over 30 years of experience in software development :((
Sounds like someone from pre-RDBMS times who is still doing exactly what he used to do when he started out with C-ISAM or something of that ilk. Probably thinks he's bang up-to-date 'cos he does the odd bit of VB6 and no longer keeps his code on 5 1/4 floppies.
Sander Rossel wrote:
And he's not even the worst software developer I know :WTF:
That's SCARY!
Whenever you find yourself on the side of the majority, it is time to pause and reflect. - Mark Twain
-
So this application has an order entity. You'd expect something like order and order detail, but instead we get an order with product1, product2, product3, product4 and price1, price2, price3, price4. Because there would never be more than four products. Actually make that five! Hilarity ensued as the original programmer tried to fit in a fifth product and had to go through the entire application to add another product. Everything I'm doing now is basically work around this ridiculous setup. So anyway, each product requires a report to be printed and all reports need to be printed before the order can be invoiced. So you'd expect a printed1, printed2, printed3... Except it's a single field with "01101". The first digit represents the status of product1, the second of product2, etc. And a "1" means it's NOT printed. I'm not even sure how it works for orders with less than five products. And the old orders only have four digits so I'm not even sure if that ever works out or we need to do some data update on all orders. This is a fairly recent application written by someone with over 30 years of experience in software development :(( And he's not even the worst software developer I know :wtf:
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
-
:omg: That's one of the worst designs I've ever heard of. X| Let me guess...it was written in C#. :laugh:
"Go forth into the source" - Neal Morse
kmoorevs wrote:
it was written in C#
Crappy code can (and is) written in any language.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.
-
So this application has an order entity. You'd expect something like order and order detail, but instead we get an order with product1, product2, product3, product4 and price1, price2, price3, price4. Because there would never be more than four products. Actually make that five! Hilarity ensued as the original programmer tried to fit in a fifth product and had to go through the entire application to add another product. Everything I'm doing now is basically work around this ridiculous setup. So anyway, each product requires a report to be printed and all reports need to be printed before the order can be invoiced. So you'd expect a printed1, printed2, printed3... Except it's a single field with "01101". The first digit represents the status of product1, the second of product2, etc. And a "1" means it's NOT printed. I'm not even sure how it works for orders with less than five products. And the old orders only have four digits so I'm not even sure if that ever works out or we need to do some data update on all orders. This is a fairly recent application written by someone with over 30 years of experience in software development :(( And he's not even the worst software developer I know :wtf:
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
-
kmoorevs wrote:
it was written in C#
Crappy code can (and is) written in any language.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.
-
Marc Clifton wrote:
Was this code imported from COBOL or Fortran? Or assembly???
Imported directly from a sick mind :laugh:
Marc Clifton wrote:
seems like to programmer was "imported" from an era long gone!
Yes, in fact I'm taking over this code because he's retiring! :D
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
Sander Rossel wrote:
I'm taking over this code because he's retiring
That explains the issue, he had built in job security. Oh you need another product that will take 3 months to add and another month to test. I pride myself on having changed my way of thinking over a long period of development, this guy still thinks the way a junior programmer would (certainly not a developer).
Never underestimate the power of human stupidity - RAH I'm old. I know stuff - JSOP
-
Sander Rossel wrote:
This is a fairly recent application written by someone with over 30 years of experience in software development
...and most of those 30 years have been spent at the same company, I'm guessing...?
Three in total, the last roughly 20 years his own company.
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
-
Sander Rossel wrote:
I'm taking over this code because he's retiring
That explains the issue, he had built in job security. Oh you need another product that will take 3 months to add and another month to test. I pride myself on having changed my way of thinking over a long period of development, this guy still thinks the way a junior programmer would (certainly not a developer).
Never underestimate the power of human stupidity - RAH I'm old. I know stuff - JSOP
Never attribute to malice that which can simply be explained by stupidity :) Besides, this guy didn't need the job security as he was already sort of retired, just did a friend a favor. Not that this guy is stupid. He knows a lot about a lot and I know he's a great manager and salesman, but he can't write code for shit :laugh: I have to give him credit though, the application works and the customer is satisfied. They considered another party, but they could not do what this guy did and it was more expensive too. I know a professional IT club at another likewise company around here can't get it to work at all! These guys need three days of work for what this badly written software does in an afternoon. I tried contacting this other company to offer them my services, but the responsible person wouldn't even come to the phone, call me back or respond to my email :sigh:
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
-
Never attribute to malice that which can simply be explained by stupidity :) Besides, this guy didn't need the job security as he was already sort of retired, just did a friend a favor. Not that this guy is stupid. He knows a lot about a lot and I know he's a great manager and salesman, but he can't write code for shit :laugh: I have to give him credit though, the application works and the customer is satisfied. They considered another party, but they could not do what this guy did and it was more expensive too. I know a professional IT club at another likewise company around here can't get it to work at all! These guys need three days of work for what this badly written software does in an afternoon. I tried contacting this other company to offer them my services, but the responsible person wouldn't even come to the phone, call me back or respond to my email :sigh:
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
Sander Rossel wrote:
he's a great manager and salesman
Ah that explains it, coding is not his primary job. In the 90's I made a living turning apps built by these sort of people into well designed database applications so I have seen many of these. I once spent 3 years following a particular "consultant" from site to site rebuilding his systems.
Never underestimate the power of human stupidity - RAH I'm old. I know stuff - JSOP
-
Sander Rossel wrote:
he's a great manager and salesman
Ah that explains it, coding is not his primary job. In the 90's I made a living turning apps built by these sort of people into well designed database applications so I have seen many of these. I once spent 3 years following a particular "consultant" from site to site rebuilding his systems.
Never underestimate the power of human stupidity - RAH I'm old. I know stuff - JSOP
Still doesn't explain it :laugh: His primary job was coding, it wasn't until he started his own company that he went into sales and management. He went from Clipper and DBase to VB to VB.NET and SQL Server. And he still did plenty of programming after that. He never quite got out of that Clipper and DBase mindset though. I know this guy pretty well :)
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly