• Anonymous (unregistered)

    Nice classic, hope SODEC is going well.

  • Win Su (unregistered)

    Alex! You finally post old article! Just what Win Su has been waiting for!

  • (cs) in reply to Anonymous

    The official Frist post

    [image]
  • GP (unregistered)

    The correct response is: "We've completed the project. It will be delivered this week, either to you or to the local tax authorities. Your choice."

  • (cs)

    What a POS this project became!

    dah dum tish!

  • SkittlesAreYum (unregistered) in reply to GP
    GP:
    The correct response is: "We've completed the project. It will be delivered this week, either to you or to the local tax authorities. Your choice."

    Yeah...the functionality of the old system seems rather illegal.

  • Robb (unregistered)

    the real wtf is taxes

  • The Corrector (unregistered) in reply to Robb
    Robb:
    the real wtf is Texas
    FTFY
  • English Man (unregistered)

    It's not really a WTF that they had to create a replacement that could be rolled out in a progressive fashion and functioned identically. If it didn't, things would get messy.

    The point is after all registers are replaced, then you can start removing the deliberate bugs and start improving the UI knowing things are consistent and nobody needs to panic.

  • (cs)

    My dad tells me about an early software job of his - in the late 70's or early 80's.

    He was asked to make an clone of some specialized software that was produced in Holland. They'd get an english version, and avoid any licensing fees.

    On a lark, he made the clone an exact copy. Same Dutch text, same bad offsets on long strings, etc. Same bugs, if he knew where they were.

    Apparently his managers didn't get the joke though, and just said "good job" - he went back and fixed everything up afterwards.

  • (cs)

    I'll simplify this...

    Stupid customer demands a 100% duplicate of existing system including all incorrect interpretations of business processes.

    There, saved you an entire Binary Tree Forest. Now go forth and make good code.

  • Anon (unregistered) in reply to Hasteur
    Hasteur:
    I'll simplify this...

    Stupid customer demands a 100% duplicate of existing system including all incorrect interpretations of business processes.

    There, saved you an entire Binary Tree Forest. Now go forth and make good code.

    Your version is boring. Your website of tech horror stories would fail within a week, and every one would try to avoid you at parties.

  • Chelloveck (unregistered)

    In the late '80s the place I worked had its own language and compiler. The compiler produced really crappy code. I called it a "pessimizing compiler". It was also buggy as all hell, but we knew the bugs and had workarounds for them.

    Then the tools group developed a new version of the compiler. It generated better code, cleaned up lots of the bugs, and added some language features that were seriously needed. We never used it. We had no comprehensive regression test for our product, so no way to verify that the new compiler wouldn't break some obscure feature. Rather than take the risk of breaking something unexpected (or, just as bad -- FIXING something unexpected) we kept on using the same old slow, pessimizing, buggy compiler. Fortunately I was in the OS group; I didn't have to use the compiler a lot since we did most of our work in assembly.

    This same shop designed hardware to work around software bugs. It was easier to change the hardware than to try to reverse-engineer our own software.

    On the plus side, I got lots of good war stories out of that place. At least, I think that's a plus...

  • Brian (unregistered) in reply to GP
    GP:
    The correct response is: "We've completed the project. It will be delivered this week, either to you or to the local tax authorities. Your choice."

    The FTC might care a lot, but I doubt the tax authorities would care*, as long as you hand them the proper percentage of your gross sales. And if you use these numbers rather than some separate function to determine taxes paid, you'd probably end up paying more taxes rather than less (assuming the individual item issue exceeded the manufacture coupon issue). I think tax authorities are pretty forgiving about about errors that cause you to overpay.

    *This would cause your receipts to be broken in a way that may raise flags with the tax authorities and could cause an audit, but accidentally overpaying on your taxes is unlikely to trigger criminal charges for tax violations.

  • forgottenlord (unregistered)

    I think there's a reason that the GST (Canada's sales tax) forms I fill out state "GST you collected" rather than having you actually calculate out how much GST you owe on the form.

  • (cs) in reply to Hasteur
    Hasteur:
    I'll simplify this...

    Stupid customer demands a 100% duplicate of existing system including all incorrect interpretations of business processes.

    There, saved you an entire Binary Tree Forest. Now go forth and make good code.

    I'd take it one step further and just write a layer emulating the hardware interface of the old cash registers, thus absolving myself of all complicity.

  • Carl (unregistered)

    Wow, I think I actually worked for this company! The details are quite familiar.

    The borken tax calculation was the CFO's slush fund. They collected a penny or two extra tax on every sale, but PAID OUT only the correct percent of gross sales, keeping the remainder. They REALLY didn't want to give up that "feature". Like a politician, they whined that ending this hidden theft would "cost" $X,XXX per month.

  • Jabrwock (unregistered)

    Been there. Doing a phased roll-out means having to duplicate the original's functionality, bugs and all, until you can finish replacing all the old setups, then you can slowly fix all the "bugs".

    Just make sure you mark them well within your code, and you can easily "fix" bugs you introduced to make them match the old behavior.

    Is it a WTF? Yes, but it's a fact of life in systems deployment.

  • (cs)

    Worked on a project like this myself. It's a scenario that happens a lot. Yes, you duplicate the bugs - but ensure that you document where they are and your plan to fix them. Then you go the client and submit your price list for fixing them. Everyone wins.

  • (cs) in reply to GP
    GP:
    The correct response is: "We've completed the project. It will be delivered this week, either to you or to the local tax authorities. Your choice."
    Translation: "Please consider this empty threat as a sign that we don't want to do business with you any more. Have a nice day!"
  • Alex (not that one) (unregistered)

    Here's a story that's pretty similar, except for the parts that are completely different.

    I was testing a web site for an investment brokerage, you know, the people who are very helpful about taking your money today, but get suddenly quite vague about how much you're going to get back 20 years later...

    Anyway one web page was a savings calculator. How much do you want to have saved up? By what year? How much are you saving now? Result: you need to invest $NNN more per month to meet your goal. It was a little more complicated, but that's the idea.

    So what my testing revealed was that even if you take the output of their calculation (you need to save $220 per month) and fed it back in (I'm saving $220 per month) it would ALWAYS say you still need to invest a little bit more.

    We wrote it up and reported it as a bug. The answer that came back from the corporate sponsor was: this is a complicated calculation that is too hard for mortals to understand, and while you're right that technically speaking it does produce some er umm.. unintuitive results under certain scenarios (such as, customer still has money remaining in pocket), this is the same calculation used by our field agents so for consistency we need to use it on the web site too. Not a bug. Program malfunctioning as designed.

  • (cs) in reply to Matt Westwood
    Matt Westwood:
    Worked on a project like this myself. It's a scenario that happens a lot. Yes, you duplicate the bugs - but ensure that you document where they are and your plan to fix them. Then you go the client and submit your price list for fixing them. Everyone wins.

    Although unethical.. the manager probably wouldn't sign off on the fixes.. They'd just take the tax roundups and put it in their retirement.

  • (cs)

    I read whole article 4 times. and now I think, it is clever of making implementation.

  • Anon (unregistered) in reply to The Corrector
    Robb:
    the real wtf is Texas
    The Corrector:
    Robb:
    the real ftw is Texas
    FTFY
    FTFY
  • (cs) in reply to El_Heffe
    El_Heffe:
    The official Frist post [image]

    Real joker.

  • messer (unregistered) in reply to The Corrector
    The Corrector:
    Robb:
    the real wtf is Texas
    FTFY

    Texas should be illegal.

  • (cs) in reply to Carl
    Carl:
    Wow, I think I actually worked for this company! The details are quite familiar.

    The borken tax calculation was the CFO's slush fund. They collected a penny or two extra tax on every sale, but PAID OUT only the correct percent of gross sales, keeping the remainder. They REALLY didn't want to give up that "feature". Like a politician, they whined that ending this hidden theft would "cost" $X,XXX per month.

    Now THAT the state would be interested in hearing about. When I was writing a POS, I found in the tax laws of several states that any money you collect as "taxes" MUST be paid to the state. It even specifically pointed out that if you overcharged a customer on taxes, you must remit that overcharge to the state. If you undercharge (or don't charge) the customer, you must pay the difference to the state yourself. So basically, the CFO's saying "We're embezzling $X,XXX from our customers and the state". The governments would love to get that $X,XXX multiplied by however many months the company's been doing this, plus a fine. Help the state get out of debt and all that.

  • Some damn Yank (unregistered) in reply to messer
    messer:
    The Corrector:
    Robb:
    the real wtf is Texas
    FTFY

    Texas should be illegal.

    In 49 states Texas is illegal.

  • Paul (unregistered) in reply to Erzengel
    Erzengel:
    Carl:
    Wow, I think I actually worked for this company! The details are quite familiar.

    The borken tax calculation was the CFO's slush fund. They collected a penny or two extra tax on every sale, but PAID OUT only the correct percent of gross sales, keeping the remainder. They REALLY didn't want to give up that "feature". Like a politician, they whined that ending this hidden theft would "cost" $X,XXX per month.

    Now THAT the state would be interested in hearing about. When I was writing a POS, I found in the tax laws of several states that any money you collect as "taxes" MUST be paid to the state. It even specifically pointed out that if you overcharged a customer on taxes, you must remit that overcharge to the state. If you undercharge (or don't charge) the customer, you must pay the difference to the state yourself. So basically, the CFO's saying "We're embezzling $X,XXX from our customers and the state". The governments would love to get that $X,XXX multiplied by however many months the company's been doing this, plus a fine. Help the state get out of debt and all that.
    So everyone seems to agree that what we have is two big organizations working to chisel some extra pennies off the little guy. The only dispute is who should receive the ill-gotten gains. Naturally Mr. "G" (govt) says "me me me" while Mr. "C" (corp) says "no me me me".

    I cannot formulate any self-consistent ethical system that makes one recipient of fraud any more legit than the other. At that point it boils down to who is in a better position to get away with it. And in this case, as long as Mr. G doesn't find out, Mr. C can keep pocketing the cash.

  • Worf (unregistered) in reply to forgottenlord
    forgottenlord:
    I think there's a reason that the GST (Canada's sales tax) forms I fill out state "GST you collected" rather than having you actually calculate out how much GST you owe on the form.

    GST is a bad example because it's a Value Added Tax. Sales taxes can also be based on straight taxes - where everything along the way is taxed, like PST.

    E.g., say you're a book seller. You can buy a book for $5, and sell it for $10.

    Under GST (5%, say), you buy the book, it costs you $5.25. When you sell it, it costs the buyer $10.50. What the government gets is $0.50 - you're refunded the 0.25 tax you paid by the buyer's 0.50 tax he paid. You pay 0.25 because you added $5 of "value" to the book.

    Under PST (let's assume 5%), the government gets 0.75 - the 0.25 you paid, and the 0.50 the buyer paid.

    So when calculating GST, the easiest way is to calculate what you should pay, then subtract what you did pay.

    It won't help in this case because the GST they paid would be based on their suppliers, while the GST they pay would be based on the total sales. The little bit extra in calculating GST per item and as a total is ignored.

  • (cs) in reply to Nagesh
    Nagesh:
    ...and now I think...
    That's highly unlikely.
  • Mr. Keith (unregistered) in reply to Paul
    Paul:
    I cannot formulate any self-consistent ethical system that makes one recipient of fraud any more legit than the other. At that point it boils down to who is in a better position to get away with it. And in this case, as long as Mr. G doesn't find out, Mr. C can keep pocketing the cash.

    Adverse possession would apply if this were land. If you notoriously occupy land without permission of the true owner for some period (16-21 years), you can have it retitled to you. (this has value in correcting for undetected surveyor or construction errors, or lousy recordkeeping, but otherwise is a pretty sucky common law doctrine).

  • Mark (unregistered) in reply to Paul
    Paul:
    Erzengel:
    Carl:
    Wow, I think I actually worked for this company! The details are quite familiar.

    The borken tax calculation was the CFO's slush fund. They collected a penny or two extra tax on every sale, but PAID OUT only the correct percent of gross sales, keeping the remainder. They REALLY didn't want to give up that "feature". Like a politician, they whined that ending this hidden theft would "cost" $X,XXX per month.

    Now THAT the state would be interested in hearing about. When I was writing a POS, I found in the tax laws of several states that any money you collect as "taxes" MUST be paid to the state. It even specifically pointed out that if you overcharged a customer on taxes, you must remit that overcharge to the state. If you undercharge (or don't charge) the customer, you must pay the difference to the state yourself. So basically, the CFO's saying "We're embezzling $X,XXX from our customers and the state". The governments would love to get that $X,XXX multiplied by however many months the company's been doing this, plus a fine. Help the state get out of debt and all that.
    So everyone seems to agree that what we have is two big organizations working to chisel some extra pennies off the little guy. The only dispute is who should receive the ill-gotten gains. Naturally Mr. "G" (govt) says "me me me" while Mr. "C" (corp) says "no me me me".

    I cannot formulate any self-consistent ethical system that makes one recipient of fraud any more legit than the other. At that point it boils down to who is in a better position to get away with it. And in this case, as long as Mr. G doesn't find out, Mr. C can keep pocketing the cash.

    While I agree to some extent, the government's goal isn't tax revenue beyond the official tax, the government's goal is to ensure that the corporation doesn't profit from defrauding it's customers.

    If the corp. keeps the extra, it encourages scenarios such as the one described in the article. If the govt. gets the extra, it encourages accurate calculation, to keep the customer's price as low as possible, and also provides a big hammer (tax fraud) to the govt. if the corp. is skimming the excess.

  • will (unregistered)

    Solution to this is simple.

    First report company to tax authorities providing details as available. When the tax authorities come around up the price of your product since the company will be desperate to get it fixed. Collect the reward from the tax authorities, if available.

    No need to worry about the changes.

  • (cs) in reply to boog
    boog:
    Nagesh:
    ...and now I think...
    That's highly unlikely.

    Thinking is important part of all human beeings. I am human so I must also think. Any one with CS degree can do this math. Matter is any one with art degree is also able to do the calculations.

    Why acting surprise?

  • (cs) in reply to Mr. Keith
    Mr. Keith:
    Paul:
    I cannot formulate any self-consistent ethical system that makes one recipient of fraud any more legit than the other. At that point it boils down to who is in a better position to get away with it. And in this case, as long as Mr. G doesn't find out, Mr. C can keep pocketing the cash.

    Adverse possession would apply if this were land. If you notoriously occupy land without permission of the true owner for some period (16-21 years), you can have it retitled to you. (this has value in correcting for undetected surveyor or construction errors, or lousy recordkeeping, but otherwise is a pretty sucky common law doctrine).

    I disagree, I think it's excellent. If I've lived somewhere for (in this country I think it's) 11 years without the owner complaining, then that land is damn well mine. Who do you think you are, thinking you own land when you can't be bothered to do anything with it? Oh yeah, and "down with capitalism" while I'm about it. Power to the people.

  • (cs)

    ONE FACT I KNOW IS THAT IF MONEY IS GOING FROM ONE POCKET TO ANOTHER POCKET, IT GETTING REDUCE BY WAY OF GOVERMENT TAXATION POLICIES.

  • Ron (unregistered)

    It used to be that whenever bandits or pirates saw merchandise moving along, they would try to scrape some off as it went by.

    Now the government fills this role.

  • Dave (unregistered) in reply to Nagesh

    I'm fairly certain I used to work for this place...

  • Machtyn (unregistered) in reply to Mark
    Mark:
    Paul:
    So everyone seems to agree that what we have is two big organizations working to chisel some extra pennies off the little guy. The only dispute is who should receive the ill-gotten gains. Naturally Mr. "G" (govt) says "me me me" while Mr. "C" (corp) says "no me me me".

    I cannot formulate any self-consistent ethical system that makes one recipient of fraud any more legit than the other. At that point it boils down to who is in a better position to get away with it. And in this case, as long as Mr. G doesn't find out, Mr. C can keep pocketing the cash.

    While I agree to some extent, the government's goal isn't tax revenue beyond the official tax, the government's goal is to ensure that the corporation doesn't profit from defrauding it's customers.

    If the corp. keeps the extra, it encourages scenarios such as the one described in the article. If the govt. gets the extra, it encourages accurate calculation, to keep the customer's price as low as possible, and also provides a big hammer (tax fraud) to the govt. if the corp. is skimming the excess.

    To add to that a little bit, the government is of the People (at least in theory). In any case, the extra coins collected by Mr. C go into Mr. C's child's pocket (CEO). However, if Mr G. collects the extra coins, the overage goes into Public Works (at least in theory).

  • Rob (unregistered)

    Yes, let's replace the perfectly good, functioning system with a new, completely different system with additional complexity (features) when all we need is a cash register.

    The real WTF is fixing what isn't broken.

    Basic algebra hasn't changed....why does every college freshman need to be a new basic algebra book every 1-2 years?

  • nerfer (unregistered) in reply to Ron
    Ron:
    It used to be that whenever bandits or pirates saw merchandise moving along, they would try to scrape some off as it went by.

    Now the government fills this role.

    Nothing new here. Taxes have been around since before Christ, the tax collectors back then had a pretty bad rap.

    The technology has changed, but the behavior remains the same. Aristotle complained about the youth of his day, being lazy and disrespectful and how society was going down the drain.

  • Mike (unregistered)

    Sorry kids, but calculating the tax separately for each line-item is absolutely legal and even necessary. We just finished implementing our own POS for our own store and had to do all kinds of research on all of these rules.

    We came up with at least TWO examples were the tax-amount would otherwise differ:

    1. Returns. If you buy two items and return one later, you also have to return the tax you collected. If you now calculate the tax only on the one item, you might over/undercharge and then your remaining tax is wrong too.

    2. If the items you are selling create taxes that are always rounded down (e.g. 0.0342 = 0.03) it is cheaper for the customer to buy these items separately then e.g. ten of them together. So you would create an incentive for the customer to buy (and thus pay = high debit-charges) each item separately. Something clearly not in the interest of anyone (except the payment-provider).

    Calculating the taxes per line-item best simulates buying items separately and makes returns consistent with the sales.

    There are other issues with ultra-cheap items (5 cent candy) were our (Canada BC) 12% HST does NOT apply. Otherwise we would need to charge 20% HST (1 cent on top of the 5) which is outright illegal.

    1.5 years with a 'team'? That is the real WTF. One of my employees wrote our own system within four months and he had to learn C# and WPF in the process...

  • (cs) in reply to Rob
    Rob:
    The real WTF is fixing what isn't broken.
    No, the real WTF is breaking what you just fixed.

    Big difference.

  • Not required (unregistered) in reply to Mike

    Sorry kids, but calculating the tax separately for each line-item is absolutely legal and even necessary. We just finished implementing our own POS for our own store and had to do all kinds of research on all of these rules.

    It is legal, but it's not necessary. It's just as easy to create different 'tax rate groups' and keep a running sum. Usually there are, at most, three, no taxes, which you don't even need to keep track of, normal taxes, and the discounted taxes that sometimes show up for food.

    2) If the items you are selling create taxes that are always rounded down (e.g. 0.0342 = 0.03) it is cheaper for the customer to buy these items separately then e.g. ten of them together. So you would create an incentive for the customer to buy (and thus pay = high debit-charges) each item separately. Something clearly not in the interest of anyone (except the payment-provider).

    Erm, except you're not supposed to round down taxes, for exactly this reason.

    If you could do what you describe, all stores would have to do is charge you 3 cents, a hundred thousand times, and no one would have to pay taxes. Sounds silly, but not so silly when you think about something like gasoline.

    Taxes are easy to figure out when all the items are taxed at the same rate, you just apply the rate to the total, but not that difficult when the items are at different rates...You either keep separate totals, add them unrounded at the end, or calulate each one and add those unrounded totals together. At that point and round that up to the nearest cent. (In some places you can round down, but only at the end. And in some places, stores round down, but end up eating the half-cent themselves.)

    This is what the article is talking about the problem with coupons. If I have a coupon for $1 off on a item, you don't take a $1 off the total after taxes, you take off the total before taxes...I don't have to pay taxes on money I didn't give you. (This is why, strangely, coupons have a 'cash value 1/100 of a cent' on them.)

    Taxes are on the total money that passes from the customer's hand to the cashier for items in that tax bracket. The government cares not one bit how much each item was.

  • (cs) in reply to Mr. Keith
    Mr. Keith:
    Adverse possession would apply if this were land. If you notoriously occupy land without permission of the true owner for some period (16-21 years), you can have it retitled to you. (this has value in correcting for undetected surveyor or construction errors, or lousy recordkeeping, but otherwise is a pretty sucky common law doctrine).

    Not at all, Go read Locke on property rights. Wheat it boils down to is that you can't have the concept of property without adverse possession - it's a necessary part. To be able to own anything in the first place, it's necessary that things can be not-owned-by-anyone, hence adverse possession laws.

    Bear in mind also that it is possible for a piece of land to get 'lost' - that is, no-one knows who owns it. Should that land sit empty forever?

  • (cs)

    Welcome to the Microsoft school of backward compatibility.

  • Jim2 (unregistered) in reply to Some damn Yank
    Some damn Yank:
    messer:
    The Corrector:
    Robb:
    the real wtf is Texas
    FTFY

    Texas should be illegal.

    In 49 states Texas is illegal.

    Marx brothers had that covered (something like): some Big Wig (A): Something must be done! War would mean an increase to our taxes. Chicolini (Chico): I had an uncle that lived in Texas. A: No I'm talking money - dollars!! Chico: Sure, that's where my uncle lives: Dallas, Texas!

  • Thing that goes *toot* in the night (unregistered) in reply to Some damn Yank
    Some damn Yank:
    messer:
    The Corrector:
    Robb:
    the real wtf is Texas
    FTFY

    Texas should be illegal.

    In 49 states Texas is illegal.

    So, all of them except Hawaii?

  • lolcat (unregistered)

    So when did the company go under? You forgot the ending.

Leave a comment on “Classic WTF: Faulty by Design”

Log In or post as a guest

Replying to comment #:

« Return to Article