Computer Program Prevents 116-Year-Old Woman From Getting Pension (theguardian.com)
Bruce66423 quotes a report from The Guardian: Born at the turn of the past century, Maria Felix is old enough to remember the Mexican Revolution -- but too old to get the bank card needed to collect her monthly 1,200 pesos ($63) welfare payment. Felix turns 117 in July, according to her birth certificate, which local authorities recognize as authentic. She went three months without state support for poor elderly Mexicans after she was turned away from a branch of Citibanamex in the city of Guadalajara for being too old, said Miguel Castro, development secretary for the state of Jalisco. Welfare beneficiaries now need individual bank accounts because of new transparency rules, Castro said. "They told me the limit was 110 years," Felix said with a smile in the plant-filled courtyard of her small house in Guadalajara. In an emailed statement, Citibanamex, a unit of Citigroup Inc, said Felix's age exceeded the "calibration limits" of its system and it was working to get her the bank card as soon as possible. It said it was adjusting its systems to avoid a repeat of the situation.
The limit clearly should have been 256 from the beginning.
Surely you meant "AI" or "deep neural net", not just a "computer program"? It is 2017.
We should crowd source her $5k and set the poor woman up for life.
A system dealing with the real world because it has rigid categories and no way to deal with unforeseen edge cases.
IOW, assuming for the sake of argument that there may be more edge cases than you can deal with, that is no excuse to leave them impossible to deal with, you doofus, you. This is designing for the real world 101 and you as well as citigroup failed it, with bells on. You always need an "other" category then deal with those cases by hand.
Regardless of cost even, since you can't expect your clients to stump up for incidental costs arising from your failures. Who's the business here, eh? Or are you all just sitting around waiting to be replaced by small shell scripts?
There are two issues. First, apparently no programmer on the job was smart enough to consider people over 100 years old. Second, the bank could have just created a temporary account for her claiming she was born in 1901 with a note attached to fixed the date once the system had been patched. Sending her away rather than just fudging the birth date was a pretty foolish thing to do.
Because patching it out should take an hour, not three months.
because somebody was stupid enough to decide that nobody could live longer than 110, despite evidence to the contrary, and they were stupid enough to include that limit in their software in such a way that couldn't be easily modified.
The issue is that this was even an issue to begin with. Somehow they didn't plan for anyone to live longer than 110 and set a limit on that, a limit they can't easily lift at the press of a button. This is bad.
The computer program isn't preventing anything, it's a bank that wrote shitty software that is preventing it. Do not blame machines for doing exactly what you told them to do!
Anons need not reply. Questions end with a question mark.
There is no way to take every edge case into account when designing systems. She is clearly an edge case. Why is this even here?
Because when you think “this will work for 99% of cases” the corollary is “the rest of 1% can go fudge themselves”. Sometimes that is fine, but if a person can't get their pension, that is certainly not ok. Consider this a cautionary tale for programmers.
How about someone in the bank just puts here age in like 10 years younger than she is, what's the big deal if their system thinks he is 106 instead of 116?
Since when is it ok to leave people for months without support / food?
"She went three months without state support for poor elderly Mexicans"
I want to see you without salary for three month because banking system don't like your birthdate, ... :-/
And before you play the "she should go to work" card, you read that she is over 100, ?
The readout is OMG
Even in the summary, it states that they (Citibanamex) are working on correcting the issue and getting her account put in place.
There is no way to take every edge case into account when designing systems. She is clearly an edge case. Why is this even here?
Oh come on, the programmers didn't do their job.
It is that implausible that someone is over 110 years old?
When writing billing software for hospitals, I had to take into account that there could be twins and triplets with different birth dates from the same birth.
[Hint: it happens around midnight]
So crunching some numbers. Hard math ahead, watch out: So one spends 2 decades in school. Works for 5 decades. Is on pension for 5 more decades. So one's productive for less than half of one's whole life, and during that time one must support oneself and another unproductive person (young or old).
So, that's what you call a number that you pull out of your ass - 'calibration limit'.
There is no way to take every edge case into account when designing systems. She is clearly an edge case. Why is this even here?
Because when you think “this will work for 99% of cases” the corollary is “the rest of 1% can go fudge themselves”. Sometimes that is fine, but if a person can't get their pension, that is certainly not ok. Consider this a cautionary tale for programmers.
Yes, why set a limit at 110? Make it 200, we have no recent documented cases of people being that old...
Someone is new!
This mentality frustrates me to no end. While it may be possible that a single line of code change, or hell even just a minor tweak to a DB field property can be made, this is a freaking Financial application!!!
No change can be made in an hour and actually deployed. There is testing and procedures that must be adhered to in order to maintain a level of quality and stability. If you say, yeah but this is isolated, then why have quality procedures in place to begin with? Sure if this was some free do nothing app, or say, didn't involve peoples MONEY, then yeah feel free to play around in production.
I used to be of the mindset, go go go! Then I got wiser and through experience learned that there is a time to go fast and a time to follow protocol. You too will one day learn this lesson as we all have/will.
Now, with all that said. This should have never been an issue to begin with! It is obvious poor decision making and or lack of experience is to blame for this.
...I just want to know the magic being her old age.
Perhaps it's a brand of Tequila she drinks every day that keeps her in such high spirits.
Programmers as a whole are not very smart. This should not be a surprise. People working with computers that much always exhibit some deficiency.
In accordance with our records, you should be dead now. Please do the needful...
It depends on how you define 'recent' and 'documented'. There are several cases of people in the old testament living well over 500 years old. With medical advances I could see this number easily going to 1000. Why not make the limit 65535 and call it a day?
The bigger question is why the limit was 116 and not a round binary number, like say 128.
This is in Mexico, it has nothing to do with America. (Though I wouldn't put it past any programmers here to miss the same edge case.)
That why I dont bank at Citi. Hated it when Costco switched to them for their credit cards.
Something operating within previously established limits isn't an edge case. This is a design failure plain and simple, like if you had a height field that tops out at 6'10" or an elevation field that can't do negative MSL values. They picked an arbitrary limit and it caused their system to fail. If she had been 150 years old and had been missing for the last 30 years (and presumed dead), then sure, nobody could have anticipated this. But if your "age of human being" field can't even handle the known finite range of ages in the current human population, you failed.
Because validation rules like this are actually pretty important when it comes to detecting and preventing fraud. The failure here was not that the software could not deal with here being more than 110.
That is sufficiently an edge case that as frequently as it comes up a call form a bank manager to HQ where they can say something like well enter the date a 1/1/1900 than and we will have an engineer update the record to the correct value ASAP should work.
Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
For example, your glaring social inadequacies radiate through the anonymous projection on Slashdot.
This is a great example of why it would be insanity to turn our lives over to algorithms and how that, as a proof of concept, is already evident. Silicon Valley, collectively, are fools with way too much time and money on and in their hands.
Go into the fucking vault and get the lady her pension money in cash. The bank can eat the loss, the problem is their fault, and at her age, she's earned it.
It's also worth bearing in mind that on a national scale, 1% is a shitload of people.
I had a dream, bright and carefree, but now there's doubt and gravity
In Trump's America your pension has been cancelled.
We suffer more in our imagination than in reality. - Seneca
Yes... but... changing the birth date would amount to fraud and because terrurusm...
"Trump!!", the new Godwin.
Edge case? They fucked up the same way as Gates did with his 640 kB goof, whether he said it or not.
"Trump!!", the new Godwin.
First, apparently no programmer on the job was smart enough to consider people over 100 years old.
Erm RTFS maximum age was set at 110 years. And how do we know this arbitrary limit wasn't defined in in the damned BR's
Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.
Because when you think “this will work for 99% of cases” the corollary is “the rest of 1% can go fudge themselves”. Sometimes that is fine, but if a person can't get their pension, that is certainly not ok. Consider this a cautionary tale for programmers.
Why blame the programmers? For all we know this was in the business requirements
Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.
There's almost certainly no way to change that datum as a teller or manager (your birthdate can never change!!), and quite possibly the developers aren't allowed to adjust data in production - even with scripts and to fix broken data. It's probably "all too hard" so there's no point trying (also, anti-fraud, don't trust anyone, etc etc)
there should not have been a limit theres no point in it. and 110 is not a computer limitation there realy are not limits like that any more so i guess why the 110 limit to begin with.
it called "terrorismo" you bigot.
The old testament is not a valid historical document. Also, it takes quite a bit of motivated reasoning to think that we are anywhere near pushing maximum human lifespans to 1000 or even 200. Not going to happen. Everyone reading this now will be dead and gone in no less than 115 years. Get over it. To return to the topic, though, the limit should be realistic for purposes of fraud detection. You wouldn't want families going on collecting great-great-grandma's pension long after she is dead. As others have pointed out, it is a design flaw that there is no way of handling edge cases with manual oversight, though.
"Remember, there never were pineapple-almond cookies here."
First, apparently no programmer on the job was smart enough to consider people over 100 years old.
Programmers don't generally throw in arbitrary rules like that (I'm sure everyone has an anecdote though). I'd say it's more likely they were given a specific business rule that prevented people over 100 from claiming pension cheques to reduce a fraud vector. Perhaps this use case was supposed to coincide with a business process to otherwise make payments available to actual centenarians, but that got lost somewhere along the project.
Hold on... why would there be no need to change a birthdate? It is highly possible that some data entry mistake could happen and you would need to amend a mistake. For example you could have an employee or customer who is used to MMDDYY using a system that is DDMMYY and need to fix that.
I've written code that I knew would break. Mine breaks in 2038 - there's a comment in the code. The same comment mentions that I'm probably dead too.
I bet what happened was the programmer guessed the age of the oldest person in the world after thinking about it overnight. He/she guessed wrong. There are people who make it to 128, I believe. But since most of Mexico is Catholic and they believe the bible is true, then they need to make that number 950, right?
It really is that simple.
Best case, the source code is still around and they have the same tools available to compile it. Worst case, the local branch manager needs to override the issue, keep track of payments and have global accounting fix it somehow.
$64 is a round off error to a bank. I have accounts that I requested be closed that have $0.01 in them because there was interest accrued the day they were closing the account. I've been getting paper statements for these accounts for many years, usually 5 pages for each, every quarter. If a financial institution cannot follow my clearly, written, requests, then they deserve to was money and paper sending me statements for the next 50 yrs. Or until 2038, when the software breaks. ;)
It's a Bank
They wouldn’t even lift a finger to save their own grandmothers from the Ravenous Bugblatter Beast of Traal without orders signed in triplicate, sent in, sent back, queried, lost, found, subjected to public inquiry, lost again, and finally buried in soft peat for three months and recycled as firelighters.
Douglas Adams
Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.
https://www.youtube.com/watch?...
The real "Libtards" are the Libertarians!
Or someone just used a BCD 2 digit counter for the age because they somehow are old enough for that to sound reasonable, but too young to remember Y2K.
I read the internet for the articles.
She was born outside these limits:
0xFFFFFFFF: 20:45:52 Friday, 13 December 1901 UTC.
0x00000000: 00:00:00 Thursday, 1 January 1970 UTC
0x7FFFFFFF: 03:14:08 Tuesday, 19 January 2038 UTC
How about someone in the bank just puts here age in like 10 years younger than she is, what's the big deal if their system thinks he is 106 instead of 116?
Well, the bank is usually allowed to issue IDs that many people who don't have a driver's license and don't want to carry their passport use. Intentionally falsifying records like that is not something I'd do without explicit approval from my boss in writing, because a note is unlikely to prevent such false documents from being issued. And that would probably escalate all the way to legal, who might have to check whatever agreements they have with the government, who will then probably say no. It's just not worth my own skin to be customer friendly.
Live today, because you never know what tomorrow brings
The problem is programming to a spec instead of programming to what is needed. This isn't likely a programming issue, but that they were told "accept ages up to 110" by someone writing the spec.
Yes, why set a limit at 110?
Fraud prevention? I've seen several stories over the years of people collecting pension cheques issued to dead relatives. The odds of people trying to collect pension cheques for a dead relative is probably orders of magnitude higher compared to the odds of someone over the age of 110 being a member of that bank and collecting an actual pension cheque.
This page suggests there is one other person in Mexico over the age of 110 (I'm sure there's a few more unlisted), so the odds of this happening were somewhere around 2/127,000,000.
It requires going into significant (pointless) effort to actually reduce the numeric representation capabilities of the humble unsigned char for the possible age of humans.
Seems to be a clear example of over-engineering it.
Why do programmers insist on placing arbitrary artificial limits in software? This is a plague of the industry: building in assumptions that aren't necessary for the proper function of the code. Sooner or later it seriously affects somebody, and there is no reason for it.
Gen 5:5
Methuselah 969 Gen 5:25
What DO they teach them in Sunday School these days...
I wouldn't say it is a lack of intelligence, but the challenge of defining acceptable ranges for data validation, without causing too many edge cases. The opposite is no validation and questionable data values.
Jumpstart the tartan drive.
There is hope...
the bank could have just created a temporary account for her claiming she was born in 1901
Then they would have told her that 15-year-olds were not eligible.
Things are never so simple.
The most likely scenario is that the bank was having all these problems of data entry. Teller enters in 06 for the birth year. Is that 2006, or 1906? System assumes 1906, and 11 year olds show up as 111 years old. Parents complain. Someone else suggests that they could solve this problem by just assuming anything over 100 years old is a data entry error. Someone else says "no, make it 110 years. We have no customers over 102 years, and never have".
The problem is of course that they implemented a hard limit rather than a warning. i.e. "are you SURE you want to set this users birthdate to 1902?"
Why would someone who is not a programmer set up such an arbitrary limit?
That kind of unnatural shortcoming typically comes from a constraint in the tools used to build the software, that the lazy programmer doesn't know or care how to work around. It wouldn't make any sense to include it deliberately on the requirements.
Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
Born before 1907? Seriously the bank should give every customer they have that reaches 110 $100,000 in cash and be done with it. Fixing the system will cost 50 times that.
There are likely many places in the system that only have 2 digits for the year of birth. There is likely no source code for all of them and even if there is the documentation and coding styles used make fixing this almost impossible. You can't just lengthen the field as the code expect things to be at specific offsets. (there is likely pointer arithmetic from hell going on) Instead the systems likely use a rolling epoc to handle this. Currently it is set to 07 - if year of birth is greater than 07 you are assumed to have been born between 1908 and 1999. If it is less than or equal to 7 you were born between 2000 and 2007.
She'll probably drop dead at any moment.
I'd say the odds were much higher than that. It's not clear from the summary if this is a welfare program only for the poor, or something all for which all elderly are eligible. If the latter case then the odds were close to 100%. If the former case then the odds are whatever the proportion of elderly on welfare versus not. Either way, that's far more likely than 2:127 million.
Got a letter through the post that says I don't exist.
Apparently the new computer thinks I won't be missed.
the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff
Except that the summary itself said that it accepts up to 110. But maybe no reader was smart enough or had the reading comprehension enough to see that.
What DO they teach them in Sunday School these days...
Fiction. But nobody really reads or even really believes the bible anymore anyway. People just pick and choose the bits of it to follow that suit their particular sensibilities and pretend that only those bits are the "word of god". In fact most of them don't even read the bits they follow. Someone else reads those bits and that someone else tells them what they want them to mean. Must be nice to have a world view unencumbered by evidence or logic or responsibility...
I wonder if they will charge her a $63 administration fee.
On a side note, that's part of the problem with the American "social security" accounts. The so called retirement
is age 65, which SHOULD be extended to the average lifespan age of 75.
Why? Do you think that people are generally capable of working at that age, or is there some dropoff? It might be cheaper to remove them from the employment rolls and hand them money, even absent any collections.
Social security benefits were intended to last a few years at most after retirement. The average lifespan when it started was 65, so people didn't live but a few years past that. Heck, both of my parents are in moderately good health in their mid 80's. Granted, they saved for retirement long before they retired, but, many do not, and social security will NOT cover people for 10-20
or more years, especially when you consider the government stole the money from peoples social security accounts
decades ago.
Oh wait, you thought the money was stolen from their accounts. What, are you one of those people who think the money in your bank is sitting there like some vault at Gringotts? That isn't how it works, and as much as you may want to think the money was stolen, Social Security is still paying out.
Could use some reform, but likely not the suggestions you're inclined to make.
Programmers don't generally throw in arbitrary rules like that...
Like hell they don't. They do it all the time unintentionally and sometimes very much intentionally. The entire Y2K problem was from tens of thousands of programmers arbitrarily taking short cuts in their programming creating arbitrary rules in regards to what seemed like corner cases at the time. Happens all the time, especially when the programmers don't fully understand the problem they are being asked to solve. The software we use to run our company is positively riddled with arbitrary restrictions which interfere with the efficient conduct of our business. The guys who programmed it are smart enough and decent folks but they don't actually use the software themselves so they don't really understand the limitations they are creating along the way.
I'd say it's more likely they were given a specific business rule that prevented people over 100 from claiming pension cheques to reduce a fraud vector.
Highly unlikely. Laziness and/or incompetence are far more likely origins of this problem.
https://en.wikipedia.org/wiki/List_of_the_verified_oldest_people
I can imagine the Agile product team talking about putting this in the ice box because it impacts such a small number of people and it'll solve itself soon enough.
Minimum viable product.... meh.
This obviously isn't some programmer problem.
If it was, the limit would be something sensible like 127, or 63 or something like that.
Very common. Even simple sites like a comic strip: garfield.com ask for an age and will not accept anything older than 1917. This particular example even lists years that cannot be selected..
If they were smarter they'd be making COBOL jokes, where stopping at 110 even becomes the right sort of round number if you describe the data field in an awful enough way... maybe I'll check for that on slashdot
This
An ice skate spinning slow the spin if he/she/etc. moves arms away from the center of mass. Angular momentum or something. I first heard about this 20 years ago. In order to aim communication antennas to distant space probes, it is good to know exactly where the earth is and any perturbations of the where the antenna is. A tiny change of the speed of the earths spin could make your aim off. A couple of scientists who's names I forgot, one at JPL and one at MIT?, noticed the earth's spin had been slowing over the past 100 year or something. They found out that humans raising mostly water in damns to higher elevations accounted for the slowing. A very tiny amount, with no other rerecussions. So far.
http://www.dictionary.com/browse/procrustean-bed
The ancient Greeks were aware of the problem. History repeats itself
1/1/1900 would trigger the same problem.
It's not so simple...
"The change in overall life expectancy mostly reflects lower infant mortality, not longer lifespans for adults.
In 1939, infant mortality rates were extremely high, but once age 65 the average American could expect to live another 13.4 years, or to age 78. Today, better health care and fewer infant deaths means overall life expectancy has gone up. But life expectancy after age 65 - a more accurate way to predict how long people are really living in retirement - hasn't changed nearly as much.
As of 2008, the average American who makes it to age 65 could expect to live 19.6 years. That's just 6 years longer than in 1939, and less than 2 years longer than in 1979 - and even that number overgeneralizes, because it ignores other factors that affect life expectancy, including gender, race, and income. A Social Security Administration study found income inequality plays a big role in life expectancy. For workers in the top half of the earnings distribution, average life expectancy is 86.5, but for those in the bottom half it's just 81 - a gap of more than 5 years that continues to grow.
http://www.eoionline.org/blog/...
I don't always use unix-like operating systems; but when I do, I prefer FreeBSD.
Probably because it's not arbitrary; most people don't live to be 110, and everybody knows you're supposed to perform sanity checking. According to a quick google search (the height of scholarly rigor,) there's maybe 300 people in the world who are older than 110 years. The most wild estimate is 600.
On the other hand, fraud is a real thing, not to mention straight up human error; somebody dies, they don't get taken out of the system, so the money keeps going out.
Vintage computer games and RPG books available. Email me if you're interested.
...this is a freaking Financial application!!!
No change can be made in an hour and actually deployed.
Reminds me of a funny story. I was hanging out in a Ruby programming channel on IRC, and somebody comes in and lurks for 5 minutes and then sends me a PM asking if I'm available for contracting. I turns out he wanted to pay $25 for less than 1 hour of work writing a Perl script for use by a South African bank interchange. Why he was in a Ruby channel for that I don't know. The script just glued two network protocols together with some header boilerplate.
It was so hilarious that I said yes. Amazingly, he paid right away. I was sure it was a scam, but it wasn't. It was almost disappointing that it wasn't a scam; I'd have probably said no. I was hoping for an even funnier story out of my 30 minutes of programming! Never got any bug reports, feature requests, or anything. I assume when he needed something else, he just grabbed the next casual off IRC.
What if you think 'Out of 7.5 billion humans, there are, at most, 600 people over the age of 110. How many of the 0.00000799927238618 percent of humans who fit this category likely happen to live in our country? How much bigger is the number of incorrect or fraudulent records where the age is above, say, 110?'
Vintage computer games and RPG books available. Email me if you're interested.
Probably because it's not arbitrary; most people don't live to be 110, and everybody knows you're supposed to perform sanity checking. According to a quick google search (the height of scholarly rigor,) there's maybe 300 people in the world who are older than 110 years. The most wild estimate is 600.
Ok so then why was that sanity check not performed? It seems obvious that the system should be able to handle ages that people have actually reached even if only on occasion. 130 would have covered it at least for the time being and the programmers could have figured that out with about 60 seconds research on google.
On the other hand, fraud is a real thing, not to mention straight up human error; somebody dies, they don't get taken out of the system, so the money keeps going out.
Not a valid excuse to deny someone service who has done nothing wrong. Plenty of other and better ways to deal with the fraud problem.
That thing doesn't work like that. The average lifespan was lower in the past because the infant mortality was MUCH higher than it's now, not because old people decided to call it quits after they reached 65 or so.
All my great-grandparents lived in their 90s, and they lived hard lives through wars and famines in an under-developed country. For instance, only 4 of my great-grandmother's 10 children survived past 5.
If you read some sob-story about medieval times and how the average lifespan was 35, do not assume there were no very old people then, or that they were some kind or rarity.
If you want to use the Old Testament as reference, you get for life spans after the Flood:
Genesis 6:3 (KJV):
And the Lord said, My spirit shall not always strive with man, for that he also is flesh: yet his days shall be an hundred and twenty years.
So 7 bits should be definitely enough. If the Lord is capricious, 8 bits. Methuselah is dead. Medical advances are not going to best the Lord's will, and if they do, they are the work of the Worldly Prince and burn the witch! After which she does not need a pension anyway.
Somewhat doubt that a programmer wrote the spec, fucker just implemented it :p
A quick google search shows that there are, by the most wild estimate, 600 people on the planet, at most, who are over the age of 110. More like 150 to 300.
Yes we know that people who are very old are rare. Rare does not equal nonexistent. At least in the US denying someone service on account of age is a civil rights violation. The fact that it is a rare problem does not excuse them from failing to deal with the problem properly.
Raising the age to 130 just means there's an extra 20 years of potential pension fraud or incorrect payments.
That is not and should never be the problem of the customer. The bank can suck it up and deal with the problem in other ways. Go visit the customer if they are that worried about it. Old people often need help anyway.
How did you handle the octuplet problem?
Surely there is some down and dirty fast solution to get her money into her hands. A court appointed guardian or social worker could receive, convert to cash and put her money in hand. And the bank should easily be able to upgrade that software in a matter of hours, not days.
> Yes, why set a limit at 110? Make it 200, we have no recent documented cases of people being that old...
I would bet money that this is related to a Y2K hack.
The person writing the spec/requirements may have identified every data item, its type, and valid range in a table. If so 'age', like all other data items, would naturally have a 'min' and a 'max' value to fill in. While 110 was not a good choice, setting a rational upper limit likely makes sense to catch errors - such as inadvertently typing a character twice and ending up with the age for a 66 year old being entered as 666 or, if birthdates are used (more likely), entering 951 as the year in the birthdate instead of 1951 and ending up with someone 1066 years old instead of 66 years old.
CORRECT!
Except that her interactions are with customer service & other public facing staff. These are not decision makers. And in such a big-business-machine, that kind of staff are very distant from the technical solution & the administrative part where someone actually has to make a decision.
These kind of stories always make the news because internet travels faster than the solution. So we gasp with injustice!
Nevertheless, it was solved, and a programmer did it... after receiving orders from admin staff, etc. Not the customer service clerk at the bank teller.
I wonder how many times the code correctly shut off payments to people who were really dead. 110 is the wrong upper limit, but I don't know that the idea of an upper limit is bad. If the limit were 140, would we feel sufficiently confident to disallow payment?
-Dave
(GP here) I learned the lesson long ago. We use branches to permit patches being made with only the necessary changes. So yes, we can be sure there is no other side effect with far greater certainty than full systems testing can provide.
You can probably finds reasons why an hour is too short, but it's going to be a lot closer to the right amount of time to fix it than the three months it actually took is.
And yet it did happen. Since such computer code lives decades and life expectancy is increasing overall, it's almost bound to happen.
I agree about manual update of the database, but in this case it seems that software patch was needed. It did surprise me a bit that bank didn't have admin to do it. One other solution for situations where input is improbable yet possible possible: application can ask the operator to check or re-enter the dubious input.
Should there be input checks?
What is a reasonable max age?
I see data with future dates and Roman Imperium dates when there are no bounds checks.
What problems would you rather have?
The limit was > 1900 for a birthdate. 2017-116 = 1901
The entire Y2K problem was from tens of thousands of programmers arbitrarily taking short cuts in their programming
I suspect you're relatively young as there were valid reasons to only store 2 digits for the year.
And early then that you had to deal with punchcards, which could only store 80 characters per card. Punch cards were still in use when I went to college at Del Mar in Corpus Christi in 1984. While my incoming class was the first to no longer use them as part of our curriculum, the older students still used them. Everybody also used them during the registration process - pick up the card with your name on it at the entrance, walk around to the tables set up for each department and get a punch card for the class you wanted (if they were out of cards the class was full), then turn in the stack of cards to complete your registration.
So you're telling me that they should have owned the issue that they caused, and worked around it instead of putting the burden and blame on the customer? Why, that's like an airline unexpectedly needing 4 seats to get its employees to another airport on time, and thus putting them on a turboprop or in a company car instead of calling the cops to beat up the passenger who won't give up his seat!
Gamingmuseum.com: Give your 3D accelerator a rest.
Additionally, if your system deals with dates or human names, whatever limitations you think are reasonable are, in fact, wrong.
Farnsworth: Hello, Mavis. Surprised to see me back again so soon?
Wanda: Mavis is dead.
Farnsworth: I expect you'll want to see my Angry, Crotchety Grandpa Discount Card.
Wanda: Sir, this card is expired.
Farnsworth: But it's good for a lifetime.
Wanda: Well, yours expired.
A few years ago I remember learning that in the US there were about 20,000 people who were 100 years old or older who were very healthy and living on their own. Just recently the estimate had grown, IIRC, to 50 to 60 thousand. I also read that 30% of babies born today will live to be 100 years old. I'm guessing there are a surprising number of folks that are 110 years old in the US. Whether they are healthy living on their own or not is another thing.
Remember George Burns's statement, "If you live to be one hundred, you've got it made. Very few people die past that age."
In a time of universal deceit, telling the truth is a revolutionary act. George Orwell
I'd guess that they'd never had a customer over 110 before, and that nobody bothered to write that into any test (unless it was to ensure rejection of anyone over 110).
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
Fewer than one in ten million people is over 110. 1% in a country like Mexico is a lot of people. Less than one ten-millionth isn't.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
You obviously haven't met some of the business analysts I've had to work with in the past...
The mountains of madness have many little plateaus of sanity - Terry Pratchett.
Someone should set a bail out limit of $1M per bank. I'm sure that they'd find a way around that.
Meh, that would have been too easy and competent.
It is worth escalate all the way to legal? That's assuming that is your only choice. In reality, it's not that black and white. They had alternatives, they didn't use it and now they get poor publicity.
They could just process the documents and sent back to the lady that due to technical difficulties, there will be a delay in the process of the new card instead of straightly declining it. Not to mention in legal case, declining service without stating (the transparency rules) could bring out a lawsuit and may also involve age discrimination (different countries have different laws for this).
Just like the case with United forcefully removing passengers. They had other choices, they didn't use it.
I suspect you're relatively young as there were valid reasons to only store 2 digits for the year.
I'm old enough to have programmed with punch cards and I predate the PC by a lot. Old enough for you? Very early on there were sensible reasons to only store two digits for a year but programmers continued the practice well beyond the point when it was no longer necessary. If I'm being incredibly generous there really was no excuse for the practice after the mid 1980s at the latest. But vast numbers of programs were written after that point which used two digit years. Most of the code that was fixed in Y2K remediation was not 20+ year old code and it certainly wasn't on punch cards.
Yeah, the parent is young and the reasoning on this is very naive... at the time there were many many reason to store dates that way. also computing was so new that no one anticipated it being an issue... until it was....
The parent (me) is neither young nor naive. I wrote my first code before most of the people who will read this were born. Most of the code that was fixed in Y2K remediation was code written well after the point when using 2 digit years was necessary or appropriate. The Y2K problem was known about for decades before the year 2000. I remember people talking about it as early as the late 80s and many were aware of it long before that. It had nothing to do with "computing being new" and everything to do with lazy and/or incompetent programming, especially for anything written after approximately 1985. By then computers had plenty of memory and hard drive space to no longer need abbreviated dates to save space and it certainly didn't save money.
Sending her away rather than just fudging the birth date was a pretty foolish thing to do.
Why was it foolish? Were there some consequences to the bank or anybody else?