• Anonymouse (unregistered) in reply to akatherder
    akatherder:
    Do they really pull the state sales tax directly from the customer receipt? It seems like they would have an easier way to sum up the sales for the day and just pay tax on that.

    Which is precisely what they do when reporting to Uncle Sam but not when dealing with each individual customer. So the extra few cents per purchase that the customer is led to believe is rounded-up sales tax, never makes it to Uncle Sam.

    If the sales tax were calculated from the individual receipts, the company would have no reason to want to keep the "feature", in fact they'd have every reason to want it fixed.

  • (cs) in reply to Kakpraat
    Kakpraat:
    To be honest, it warms my little heart to see Uncle Same being scammed out of money that should even be his in the first place. Good for them!

    Firstly Sales tax is a local tax, not federal. Secondly, if you read it, the tax was being calculated at a higher rate than required. So it was the customer being scammed out of their money, not the local government, they got a little extra.

    Now are you mad?

  • Patrick (unregistered)

    It's funny. I was once told by an employer to not get "too emotionally attached" to any of the code I wrote in case we decided to throw it out. Yet, the same management pricks will so desperately cling to whatever asinine things they sunk money into even if a new solution wouldn't cost them anything to replace.

  • (cs) in reply to Anonymouse
    Anonymouse:
    akatherder:
    Do they really pull the state sales tax directly from the customer receipt? It seems like they would have an easier way to sum up the sales for the day and just pay tax on that.

    Which is precisely what they do when reporting to Uncle Sam but not when dealing with each individual customer. So the extra few cents per purchase that the customer is led to believe is rounded-up sales tax, never makes it to Uncle Sam.

    If the sales tax were calculated from the individual receipts, the company would have no reason to want to keep the "feature", in fact they'd have every reason to want it fixed.

    Not necessarily, it depends on the reporting. It is possible that they got a report of "sales tax collected" that simply added up the amounts from each receipt rather than recalculating it off total sales. This would give the local government the extra.

    As for wanting to keep it, they could have other reasons. Note that they were not changing any of the back end systems. somewhere back there could be the system that recalculated or did something else with this data and changing that systems inputs could have an affect on overall reporting.

    The programmers could be saved from wrong doing due to this one piece. They can claim that for all they knew the rest of the system adjusted for it so these bugs were probably needed and that is why the client asked for them.

  • Chris (unregistered)

    This "code" is not necessarily fraudulent or illegal. Having owned and run a small business, I learned that what matters to the tax man is that you remit to them what you collected. That is the number one "law" of retail sales tax. If you collect your taxes based on line items, then you must remit your taxes collected based on line items. I'm under the impression this business had always sent their taxes to the tax man that way - and if they changed for some reason - they most likely would have undergone extra auditing and scrutiny. The software should have been developed as asked for - it was not faulty - it was their accounting practice.

    In the end your taxes collected as a business NEVER equal the exact "percent" of your total sales for the taxation period (usually monthly).

    What you will see is collecting per line item or per total transaction, will always lead to a different amount of sales collected based on the number of items each individual transaction consisted of. Which is "more correct"? That's up to your accountant's interpretation. All the tax man cares is you send all of it to them.

    I charged in my store sales tax "per sale" as is customary. Some months I sold larger items to just a few customers - so my tax rounding errors were "small" but still existed. 1000 customers in a month, each sale before tax $9.99. Tax collected each time - 60c - taxes collected $600 on $9990 in sales. $0.60 error from rounding that month. Other months I sold many smaller items to many customers - my tax rounding errors were large. 10000 customers at $0.99. Tax collected per sale 6c - total collected $600, on total sales of $9900. Error: $6.

    Just remit all the taxes to the government that you collected and you're well within the law. Some day they may come to you, audit your books, and say "could you change this method - your rounding errors are larger than acceptable using this method". On the other hand, they may look at your books, see "total sales $9900, taxes collected $600, error is within 1%, ignore".

  • Danno (unregistered) in reply to gabba

    It's not a code WTF, it's a business WTF.

  • Nelle (unregistered) in reply to Matto
    Matto:
    Wow, that annoying reminder IS annoying!
    Personaly I was expecting something with <blink> or perhaps a marquee
  • (cs)
    After all, they had spent a lot of money developing training programs for these registers and had no intention of simply throwing them out.
    This pisses me off the most. The only reason people act like this is because user interfaces are usually so terrible and so hard to learn. Well-designed user interfaces don't need any training, except subject-matter training. In other words, if the software is not completely intuitive to anyone who's ever rung anything up on a cash register, there's a problem with the UI design.

    Of course, after experiencing so many bad user interfaces, people have been trained, most of them without realizing it, to expect significant difficulty adjusting to a new or unknown version of any software.

  • (cs)

    Is it any wonder that Point of Sale and Piece of S**t use the same POS acronym?

  • Anonymouse (unregistered) in reply to Chris
    Chris:
    This "code" is not necessarily fraudulent or illegal.

    Having managed the finances of a fairly large international business (albeit none of those nations were the US) I can say that you are right. Reading the article again, it looks like the developer misunderstood something. Per-line sales tax is not illegal in itself in any country I know of, nor is rounding rather arbitrarily as long as it's in good faith, or even out of indifference.

    There may be specific laws put in place for the sake of the likes of Walmart who sell billions of items every year, but even they would not get a specifically harsh treatment over something like this, even if they did establish it was a deliberate attempt to score extra cash from round-off errors.

    With a system that integrates the cash registers with bookkeeping, all the extra tax would be entered to the exact amount in an outgoing tax account anyway. In a very small business you might simply calculate sales tax from the sum of gross sales minus deductable purchases, in which case a systematic round-off error could amount to extra profit. But for a business that small it'd hardly pay for the extra ink needed to print sales tax next to every item.

  • JLR (unregistered) in reply to gabba

    You say this as though is justifies any amount of stupidity.

  • David C. (unregistered) in reply to Anonymouse

    As a matter of fact, depending on the location, line-item tax computation may be the only reasonable approach. For example, a state may have no tax of food items, a basic tax on general merchandise, and a higher sales tax on alcohol.

    The software could, of course, maintain per-category subtotals, for the purpose of tax computation, but that can become a real pain to maintain if the number of categories is large. It can make the code really hard to maintain if the number of categories must be periodically reconfigured (as they do, since tax laws change all the time, and vary greatly from state to state.)

  • Hiếu Đức Hoàng (unregistered)

    wow, this has the OOXML-smell

  • Some Ninja (unregistered)

    So they spent scads of money to have somebody else redevelop software they already owned?

    Wouldn't it have made more sense to buy out the bankrupt company, claim the original source code as asset, and sell the rest off at auction?

  • (cs) in reply to SheRa
    SheRa:
    barfoo:
    Remind me what POS stands for again...

    POS = Point of Sale

    Working in the industry too...have to define what "backwards compatible" means this week. It does NOT mean the new firmware is the same! It's better but WILL report a different firmware version (that does not qualify for "backwards compatibility" with some companies).

    SheRa, Your sarcasm detector needs alignment.
  • (cs) in reply to ashkelon
    ashkelon:
    When I asked how an actual shelf inventory could ever be less than zero (in effect 10 - 10 = -10), the accounting team told me it was to adjust for a well-known bug in IBM systems which gave a result of 0 for 10 - 10.
    My brain just exploded. :-(
  • whatowhatcoulditmean (unregistered) in reply to ParkinT
    ParkinT:
    SheRa:
    barfoo:
    Remind me what POS stands for again...

    POS = Point of Sale

    Working in the industry too...have to define what "backwards compatible" means this week. It does NOT mean the new firmware is the same! It's better but WILL report a different firmware version (that does not qualify for "backwards compatibility" with some companies).

    SheRa, Your sarcasm detector needs alignment.
    A Pillar Of Salt? The Peace Of Shiatsu? A Perky Ol' Shitzu?
  • Sigivald (unregistered)

    What Chris and anonymouse said.

    I'm in the POS industry, and our totalling code? Done the way the accountants demand it be done.

    Those who've never dealt with accountants and tax laws and the rest are typically not aware that what the accountants (both at the business and at the government agencies collecting taxes) Don't Do Things The Way You'd Assume.

    As long as you have a plausible good-faith attempt at implementing the rules, you should stay out of legal trouble - the real headache is satisfying the customer's accountant.

    Especially when the accountants of different customers have different ideas of what "gross" should mean in your reports...

  • Jim Bob (unregistered)

    i beat off while writing code because I love it so much

  • lazloman (unregistered)

    Almost like SAMBA, they strive for bug for bug compatibility with Windows.

  • (cs)

    That miscalculated tax can be pretty profitable if your end-of-day report is calculating the tax correctly. Uncle Sam never has to know...

    is that "the final touches" or "the final touchés"?

  • sburnap (unregistered)

    Oh, this sounds very familiar. It's a lot like a WTF I have been meaning to submit. I spent a few months writing a Windows application that was to replace an AS/400 application that store personnel accessed over a terminal. I had the application completely working, but when I presented it to management, though found it unacceptable. They made me change it so that it was full screen, made me change the colors to green on black to mimic the AS/400 terminal, made me remove all the window decoration, made me hide the mouse and made me change the keypresses to mimic the AS/400 terminal.

  • Manic Mailman (unregistered) in reply to [twisti]
    [twisti]:
    Isn't asking for "features" that essentially scam money from both customers and the government ... illegal ?

    A while back I was reading an article about businesses that charge sales tax on items that are non-taxable, simply due to confusion over what is and isn't taxable (things like, if you buy a dozen donuts it's non-taxable groceries, but if you buy a single donut it's taxable convenience food).

    According to the the government official's response, in Washington State it is not illegal for a business to collect more sales tax than is required by law - as long as the money actually gets passed on to the State. Of course, not collecting enough tax is another matter entirely...

    CAPTCHA: tastey (mmm, donuts...)

  • (cs)
    They would buy new hardware and software, but it had to look and function exactly like the old systems. No touch-screens, no graphics and no cashier-friendly reminders; just a plain old text-based interface with obscure keyboard commands for navigation.

    That sounds like Emacs to me. They should have just given that to the customer and let him build the system himself. It would've had all the bugs he'll ever need.

  • (cs) in reply to Heron
    Heron:
    GovernmentCubiclePrisoner:
    Oh my! It sounds similar to my job. We want to keep doing what we've been doing because that's how it's always been done. We don't care if it can be done differently (and better for that matter!)

    Yesterday my boss deleted part of one of my bug reports saying "we've always done it that way, it's not a bug," though it's clearly not the intuitively correct behavior.

    akatherder:
    Do they really pull the state sales tax directly from the customer receipt? It seems like they would have an easier way to sum up the sales for the day and just pay tax on that.

    In the US, we (customers) pay the sales tax on what we buy, so yes, it does have to be calculated based on individual customer receipts. ;) Stores don't pay sales tax on what they sell, they just pass on the taxes the customers paid to the government.

    Technically, the stores have the option of paying the sales tax or passing it on to the customer (at least in California the option exist). If you owned a business, which would you choose?

  • (cs)

    So my dad the CPA answered the question for me of whether this is a WTF or not. In the interest of not ruining his explanation, I'll reproduce his email here:

    Heron's Dad:
    As a general rule, I would say that the software programmer is not responsible for the company's compliance with tax laws. Obviously, if a programmer knowingly helps a company create something to avoid taxes, that would be illegal and the programmer could go to jail. In this situation, if the company were asking for a program that correctly calculates sales taxes, the programmer would have a responsibility to understand the tax laws and verify the program is functioning correctly. However, I think it is perfectly fine to develop a program under a specified set of parameters that a company wants to use to help them manage their business even if these parameters aren't 100% in accordance with specified sales tax rules. Just because the program is calculating taxes a certain way doesn't mean that is how the company is actually calculating and remitting the taxes. I have seen companies that have point of sale systems that don't calculate taxes correctly, but the company makes necessary adjustments and files what it believes to be fully accurate tax returns. If it were me, I would have the company sign a statement of specifications outlining how the company wants the various calculations to work, confirming that the company is solely responsible for determining compliance with applicable sales tax and other laws, and that the programmer gives no assurance that the program is calculating sales taxes in accordance with such laws. If the company won't sign this type of agreement, then the programmer probably shouldn't accept the client. Another option would be to send a letter outlining how the program is not in compliance with specific sales tax laws and that the company needs to make necessary adjustments to properly calculate and remit their sales taxes. As a related issue, sales tax laws frequently change and it is the company's responsibility to maintain compliance with the laws. If the software were fully in compliance with sales tax laws on the day of delivery and the laws change the next day, does the programmer have a responsibility to make changes to the program? Only if the company wants to pay the programmer to make changes. What if the company declines and continues to use out of date software? I don't think the programmer has any responsibility for this. Also, every county in the country has the authority (and most do) to set their own sales tax formula and rate. This results in approximately 25,000 different sales tax schemes/rates across the country. So just because the program might be perfect in Utah doesn't mean it would be calculating taxes correctly in California. Which brings me back to what I said at the beginning - it is the officer of the company that prepares and signs the sales tax return that has responsibility and legal liability for remitting sales taxes correctly. I think the programmer's obligations are largely determined by their contract with the company which highlights the importance of a good written agreement for work to be done.
  • Fred (unregistered)

    i worked for a security system company that did the exact same thing

    we moved to .net mssql environment but it had to look like dos and would need to still interface with the old clipper inventory

    nice going backward

  • Matthew (unregistered) in reply to Gabelstaplerfahrer
    Gabelstaplerfahrer:
    Fantastic story. I am wondering, in the end, was the project considered a success? So was it worse than failure? I guess as long as the developers got paid and the customer was happy there is no good reason to complain even though the programmers didn't like recreating bugs. From what I read they actually did a really good job!

    I would say that, in this case, success is worse than failure.

  • (cs) in reply to Renderian

    I hate to say that I've been involved in one of these types of scenarios before, while porting a European title from set-top boxes to PCs and Macs back in the 1990's. We took all the algorithms supplied to us, and found a bug in the determination of a Julian date, and provided a fix for the functionality that used the date.

    Once in acceptance testing, the customer insisted that we unfix our fix to exactly match the bug in the set-top implementation. We argued that the other code was incorrect, but they were adamant. It didn't matter one way or the other, because the application was...well, a fortune-telling program [make up your own joke]...and nobody running the PC or Mac version would be comparing the results to the set-top box version, but nooooo. So, we put the bad code back in, grumbling the whole time.

    Needless to say, once launched, the product was a huge success, selling more copies than any other PC or Mac product released up until that time in Europe. To this day we're still annoyed by the idea that we had to release a bug because some other developer couldn't determine how to calculate a Julian date correctly--and it was the most successful product of its kind in that era!

    (The specific platform from which we were porting didn't have any libraries for it. The code was in a very odd language that didn't match parentheses. It's not like the poor guy had a standard library of date and time functions to use. We did...and we weren't allowed to use them!)

  • (cs)

    I don't get it. How is it NOT a bug that the software doesn't do what the user wants? So they want some specific way of calculating tax. If the software doesn't calculate it that way, it's a BUG. The "proper" way of computing tax doesn't really enter into the question. They wanted behavior X, and they didn't get it. That's a bug.

    Although it sounds like this software is riddled with stupidities, I think calling them "bugs" is a stretch. Dumb requirements but requirements nonetheless.

  • Andrew (unregistered) in reply to Anonymouse
    Anonymouse:
    Yes, specifically requesting a feature that calculates incorrect sales tax is highly illegal. In the end whatever sales tax Uncle Sam gets is most likely calculated from the total of taxable sales without all the rounding errors. The extra money that leaves would probably disappear into the gross income (or just disappear, if someone doesn't feel like paying income tax either). Depending on the specifics, it might be impossible to uncover without manually adding up copies of all the receipts, and even then, they have the perfect defense in "the software is faulty".

    I wonder what kind of developer goes along with that, and then admits to going along with it, albeit anonymously.

    Uncle Sam does not collect sales tax! Cousin New Jersey and crazy Aunt California do. Nephew Delaware doesn't so that people will shop there.

    Most U.S. states have "Taxation" or "Weights & Measures" departments to make sure measurements on cash registers are correct. Sales taxes are much more closely monitored than the federal income tax.

  • eric76 (unregistered) in reply to Anonymouse
    Anonymouse:
    Yes, specifically requesting a feature that calculates incorrect sales tax is highly illegal. In the end whatever sales tax Uncle Sam gets is most likely calculated from the total of taxable sales without all the rounding errors.
    What sales tax does the federal government collect? Has the Fair Tax passed?

    To the best of my knowledge, sales taxes are the domain of states, counties, and cities.

    Several years ago, I called the Texas Comptroller's Office to ask them some questions about sales taxes. One of my questions was what happens if the retailer collects too much?

    The answer was that the state of Texas doesn't care as long as the retailer remits to the state ALL of the sales taxes collected. If the retailer collects more taxes than they remit to the state, that is tax fraud.

    I assume other states have similar laws even though they may differ on exactly what items are taxable.

  • Joe (unregistered) in reply to VGR
    VGR:
    After all, they had spent a lot of money developing training programs for these registers and had no intention of simply throwing them out.
    This pisses me off the most. The only reason people act like this is because user interfaces are usually so terrible and so hard to learn. Well-designed user interfaces don't need any training, except subject-matter training. In other words, if the software is not completely intuitive to anyone who's ever rung anything up on a cash register, there's a problem with the UI design.

    Of course, after experiencing so many bad user interfaces, people have been trained, most of them without realizing it, to expect significant difficulty adjusting to a new or unknown version of any software.

    Well-designed user interfaces don't need any training,

    Sorry, but you're absolutely wrong. A well designed user interface is one which achieves its goals. The amount of training required may or may not matter with respect to the goals.

    In some situations, it's acceptable to have a learning curve to the UI because efficiency is more important to "learnability". That's usually the case in something like a data entry app whereby after a brief training period, the user can enter data quickly. This is as opposed to using a wizard to walk the user through whereby it'd be easier to use the first time, but cumbersome once the user knows what he's doing. Another example would be the use of a graphical calendar users can click on to select a date versus a text box for them to enter one in. In the aforementioned data entry app, it's more efficient to enter the date in a text box than to have to click on a graphical calendar. Even though the calendar is easier to use for the first time because it presents the user with the options, the text box is more efficient for heavier usage and therefor a better control to use for this given need.

    Another situation where "learnability" is not the most important thing would be military hardware. With military hardware, it's expected that during downtime soldiers can train to use the hardware. Also, ease of use is not the most important factor. Efficiency and effectiveness (2 different things) are more important. In the use situations for that kind of hardware, a soldier's life depends on the efficiency and effectiveness of the UI. He can train to interact with the UI with a blindfold on during downtime. But during armed conflict, "it has to work".

    Contrast that to a situation where "learnability" is the most important factor, even above efficiency. One example would be a kiosk at an airport to pick up tickets. In that situation, the ability to use the interface without prior training is more important than its efficiency. So what if the user has to click a few extra times? So long as he can use the interface the first time he sees it, then it's a well designed UI. He may never again use that interface. Make it easy to use regardless of any additional steps needed.

    Here's another use situation. Hotel room keycards. In that situation, most users will be using the keycard for the first time. Does the strip go in on the left or right? Does it matter if the card's up or down? Do you have to push it in and immediately pull it out? Does it matter? In that situation learnability is the most important factor. However, for a home based keycard system, users would be more tolerant of having to learn exactly which way the card went into the slot because of repeated use. It'd still be important, but less so.

    User interaction design is one of my skill sets. It's amazing how much more complicated it is than I ever thought. Statements like yours are made by people ignorant of UI design. That's not a bad thing, which is why I'm trying to correct you.

  • (cs) in reply to ince
    ince:
    They would buy new hardware and software, but it had to look and function exactly like the old systems. No touch-screens, no graphics and no cashier-friendly reminders; just a plain old text-based interface with obscure keyboard commands for navigation.

    That sounds like Emacs to me. They should have just given that to the customer and let him build the system himself. It would've had all the bugs he'll ever need.

    Ooh, lookee what we've got here -- a genuwine lame flame.

    Emacs doesn't meet the requirements, I'm afraid. It has just as much touch-screen capability as yer average browser, for example (ie none); it lacks old-style vi obscurity for screen navigation -- I think you'll find that cursor keys, up-page and down-page, and back-space all work handily out of the box -- and, most important of all, it is not a Point Of Sale application. Strange, that. Stallman obviously forgot a critical part of functionality for a text editor. (Which is probably why he missed the graphics and the cashier-friendly reminders, the naughty man.)

    You could probably configure it to be one, though.

    What's the matter? Nanny had an embarrassing elisp that she transmitted to you when you were growing up?

  • (cs) in reply to eric76
    eric76:
    Anonymouse:
    Yes, specifically requesting a feature that calculates incorrect sales tax is highly illegal. In the end whatever sales tax Uncle Sam gets is most likely calculated from the total of taxable sales without all the rounding errors.
    What sales tax does the federal government collect? Has the Fair Tax passed?

    To the best of my knowledge, sales taxes are the domain of states, counties, and cities.

    Several years ago, I called the Texas Comptroller's Office to ask them some questions about sales taxes. One of my questions was what happens if the retailer collects too much?

    The answer was that the state of Texas doesn't care as long as the retailer remits to the state ALL of the sales taxes collected. If the retailer collects more taxes than they remit to the state, that is tax fraud.

    I assume other states have similar laws even though they may differ on exactly what items are taxable.

    Brings a whole new meaning to the phrase "Taxation without Representation," doesn't it, now?

    Apparently we're not in 1776 any more, Toto...

  • (cs) in reply to Fred
    Fred:
    Does anybody here who is crying "tax fraud" actually know that this is tax fraud?

    No?

    I didn't think so.

    Well, the rounding up of the value could be perceived as such. Rounding should only really occur on the total. In fact, adding tax to the individual items rather than the total makes sense because there can be items that are non-taxable.

  • (cs) in reply to Joe
    Joe:
    Well-designed user interfaces don't need any training,

    Sorry, but you're absolutely wrong. A well designed user interface is one which achieves its goals. The amount of training required may or may not matter with respect to the goals.

    I'm afraid you're the one who is in the wrong here. This is an unfortunate and tragically widespread fallacy about software, and it's the reason we have so much bad software in the world: programmers learned in school that a functionally correct program is the extent of the assignment, and they go on to believe in a professional environment that functionally correct is all that's required for software to be any good. Thus usability is ignored.
    Joe:
    In some situations, it's acceptable to have a learning curve to the UI because efficiency is more important to "learnability". That's usually the case in something like a data entry app whereby after a brief training period, the user can enter data quickly. This is as opposed to using a wizard to walk the user through whereby it'd be easier to use the first time, but cumbersome once the user knows what he's doing. Another example would be the use of a graphical calendar users can click on to select a date versus a text box for them to enter one in. In the aforementioned data entry app, it's more efficient to enter the date in a text box than to have to click on a graphical calendar. Even though the calendar is easier to use for the first time because it presents the user with the options, the text box is more efficient for heavier usage and therefor a better control to use for this given need.
    This is a black-and-white fallacy. Most programs which have wizards do not require the use of the wizard. (Programs whose only UI is a wizard are almost universally reviled.) A field which has a graphical calendar usually allows typing in the date directly instead of using the graphical calendar. I don't know what leads you to believe that an intuitive UI cannot be an efficient UI, but it's not the case.
    Joe:
    Another situation where "learnability" is not the most important thing would be military hardware. With military hardware, it's expected that during downtime soldiers can train to use the hardware. Also, ease of use is not the most important factor. Efficiency and effectiveness (2 different things) are more important. In the use situations for that kind of hardware, a soldier's life depends on the efficiency and effectiveness of the UI. He can train to interact with the UI with a blindfold on during downtime. But during armed conflict, "it has to work".
    This is unfortunately an established dogma of military customers. It's still not true. Efficiency and intuitiveness are not mutually exclusive at all. Usually keyboard mnemonics and accelerators go a long way toward making something usable by new users and power users alike. Tooltips, used judiciously, also help, and of course actual help screens are for the very new users.
    Joe:
    Contrast that to a situation where "learnability" is the most important factor, even above efficiency. One example would be a kiosk at an airport to pick up tickets. In that situation, the ability to use the interface without prior training is more important than its efficiency. So what if the user has to click a few extra times? So long as he can use the interface the first time he sees it, then it's a well designed UI. He may never again use that interface. Make it easy to use regardless of any additional steps needed.
    Some people fly a lot. They will get very irritated if they have to go through unnecessary steps (like reading the same mandatory introductory help they've read a hundred times before) each time they get their tickets. A good UI allows the user to not only bypass such a thing, but also to set a preference so that the unwanted text is never seen again, unless later requested explicitly.
    Joe:
    Here's another use situation. Hotel room keycards. In that situation, most users will be using the keycard for the first time. Does the strip go in on the left or right? Does it matter if the card's up or down? Do you have to push it in and immediately pull it out? Does it matter? In that situation learnability is the most important factor. However, for a home based keycard system, users would be more tolerant of having to learn exactly which way the card went into the slot because of repeated use. It'd still be important, but less so.
    True, but that isn't an excuse. The designer of the keycards and reader was lax, if the user needs to guess at all. For a push-in-pull-out card reader, an arrow on one end of the card would have done a world of good, especially if it had a slight relief so the user notices it as soon as they hold the card. For a swiping reader, the magnetic strip makes it clear which side is swiped, the card reader should clearly show which way the strip needs to face (and many of them do, I find), and swipe direction usually doesn't matter, since both work.
    Joe:
    User interaction design is one of my skill sets. It's amazing how much more complicated it is than I ever thought. Statements like yours are made by people ignorant of UI design. That's not a bad thing, which is why I'm trying to correct you.
    I get the feeling you're not as up to speed on UI design as you think you are. Read the User Interface Hall of Shame sometime. It holds up quite well despite its age. Your perceived necessary dichotomy between intuitiveness and expedience will bring down the quality of your software.

    If the Hall of Shame's sibling document tree, the User Interface Hall of Fame, were still taking submissions, I'd nominate the Sheetz Made-To-Order customer touchscreen terminals. Sheetz tends to do business is areas with rather low levels of education, and yet I've never seen anyone have any trouble placing an order. I was blown away the first time I used a terminal. It's completely intuitive and it's very efficient. (The food isn't very healthy, though.)

  • ajk (unregistered) in reply to Fred
    Fred:
    In fact, after thinking about this for a few minutes, I'm pretty sure the developer gets the 'WTF' award here.

    Customer says "Design B so that it works with A".

    Developer designs "C" which does not work with "A".

    Customer says, "Hey, I asked for B, and you give me C. C doesn't work with A."

    Developer says, "Well clearly C is the correct answer, A must be wrong."

    Huh? If you asked your painter to paint your room white, and he paints it pink then tells you that he did it because he decided that white would have clashed with the curtains you'd probably complain. This is no different. We're not paid to implement what we wish the customer had asked for.

    I partially agree, but the blame is not on the developers but on the guys who created the requirement spec for the customer.

    I recall a similar situation in a company I worked for in Germany, there was this 1,500 page requirement spec for a project, very structured describing all the screens and the functionality but when it was delivered the fundamental parts had to be programmed on the spot, cause nobody had really cared about walking through the solution with the customer. It was "fun" going there expecting to stay over the weekend to install and then instead spend the next six weeks programming 15 hours a day non-stop to get in all the functionality - 10 developers on site.

  • therealwtfiseverything (unregistered)
    barfoo:
    Remind me what POS stands for again...
    Parents Over Shoulder, of course.
  • Hanneth (unregistered) in reply to Grovesy
    Grovesy:
    Why replace the system then?
    The company that made the hardware and software of the old system went out of business. This means no replacement parts, or replacement machines, or new machines if you expand. So they were paying the developer to be able to keep running their current system.
  • (cs) in reply to Kakpraat
    Kakpraat:
    To be honest, it warms my little heart to see Uncle Same being scammed out of money that should even be his in the first place. Good for them!

    I suppose it also warms your little heart to see all of the customers being scammed out of money as well?

  • no no (tice) (unregistered) in reply to SheRa
    SheRa:
    Working in the industry too...have to define what "backwards compatible" means this week. It does NOT mean the new firmware is the same! It's better but WILL report a different firmware version (that does not qualify for "backwards compatibility" with some companies).
    Sometimes the new firmware is better. Sometimes the new firmware is worse. Sometimes the new firmware WON'T report a different firmware version. "Specifications subject to change without notice" means what it says. One way to provide notice of a change in specifications is to report a new firmware version. That kind of notice might not be provided, even when the firmware changed.
  • (cs) in reply to VGR
    VGR:
    For a swiping reader, the magnetic strip makes it clear which side is swiped

    You just reminded me of the summer I worked at Kroger, and the old lady who was using a gift card (and had evidently never used a credit card before either). She thought the card reader had some kind of optical scanner that read the printed numbers and tried to argue with me when I told her it was trying to read the magnetic strip.

    I don't fault her for it though. She's old. Those machines weren't the least user friendly terminals I've seen. Most people could look at the icon showing which way to hold the card, but the designers didn't take into account the old lady vision factor.

    Some things that would help avoid card confusion:

    1. Put a big arrow on the face of the card. showing which side is to be swiped.
    2. Color code that arrow and the magnetic strip. Use the same standard on machines, so the user can walk up to a machine and instantly know which side of the card matches to which side of the reader.
    3. Why not make the entire back side of the card a magnetic strip? Or at least outline the borders. It can't be that expensive.

    The point I'm making here is that there's always room for UI improvements, and that those improvements can be made in such a way that they help the people who need them, without nagging the people who don't. More designers need to realize that so I don't have to click "yes, I want to close this window" 50 billion times when I'm rebooting my PC...

  • sxpert (unregistered) in reply to ParkinT
    ParkinT:
    David M.'s client was simply compensating for the proces the Government uses (by way of taxes). The system is set-up such that; Everytime money changes hands, the Government gets a little piece of it. In theory, if money changes hands often enough, THE GOVERNMENT GETS ALL OF IT!!

    wrong. the FED gets all of it.

    Fact: the FED is an entirely private entity that steals money from people

  • Lady Nocturne (unregistered)

    $5 says this is Rite Aid. Worst.POS.System.Ever.

  • Steve S. (unregistered)

    The failure here had nothing to do with code.

    The failure had to do with either a missing product manager or a product manager that should be fired. Simply put, the customer had a very clear vision of what the product should do. It is the product manager's job to come up with a spec that gets approved by the customer up front so the first cut of software is in fact what the customer wants. A good spec would include bug compatibility issues.

    The customer's position is completely reasonable. There is presumably a large ecosystem of integrated working infrastructure where hundreds if not thousands of people are already trained up on it. The cost of switching over to an entirely new system would be huge. Unless the CIO can quantify the business value to making the investment (e.g., we can reduce inventory levels and get our books filed with the SEC in less than half the time with a new system) there is no reason the business should make the investment. Plain and simple.

  • Raw (unregistered) in reply to Claxon
    IBM systems thought that 10 - 10 = 0? How did they ever come to that conclusion?

    They probably forgot to implement the Pentium FDIV bug properly.

  • (cs)

    Several years back I worked for a company that made POS systems for Dry Cleaners, and our software was modeled on an old cash register that most of them used. Giving them something familiar was better than giving them something completely new. Ok, we didn't go to these extremes but I see why the retailer wanted it that way.

    Incidentally, in a homage to yesterday's WTF, it was written in Clipper.

  • Anonymous (unregistered)

    Isn't this basically the same process by which new versions of Microsoft Windows were developed before Vista?

    Captcha: bathe. Eh, maybe tomorrow.

  • (cs) in reply to sxpert

    Well put, sxpert! The IRS [unofficial] slogan: "We've got what it takes to take what you've got"

Leave a comment on “Faulty by Design”

Log In or post as a guest

Replying to comment #:

« Return to Article