6 ms·
Maybe she should quit doing user-facing stuff and try getting into systems programming for a change. Or some other area where sloppy solutions lead to tangible
by dunkelheit 10y ago
Maybe she should quit doing user-facing stuff and try getting into systems programming for a change. Or some other area where sloppy solutions lead to tangible reduction of business value and thus are not tolerated. Tech is big, no need to quit all of it.
- Slartie 10y agoTotally seconding this. Just trying to "quick fix" apparent bugs, without having understood the complex problem in its entirety beforehand, is a pretty bad approach in quite some areas of the tech world. This is true for most server-side work, for example - you just can't put a band-aid type solution on a problem created by a weird race condition between different requests processed in parallel, because you most likely either ruin the performance or don't catch all the cases in which the bug appears, or even worse: create new bugs, deadlock situations or similar catastrophes as a result. I personally work on cash register software. In that area, it's basically this way for the server and client side of the equation, because if this highly business-critical piece of technology fails, the user really has a problem and typically can't do any business anymore. And the software release cycles on those machines also don't allow for continuous-deployment-we'll-just-test-the-fix-in-production-so-it-doesn't-matter-if-your-first-attempts-fail-miserably-style of work, so you have to get your bugs fixed thoroughly, which requires fully understanding the nature of the problem first.
- Illniyar 10y ago"You just can't put a band-aid type solution on a problem created by a weird race condition" Oh yes you can, and do, often, in payment processing code. I've done it (with a simple sleep for x seconds I think), and I can assure you the higher ups couldn't have been happier.
- Slartie 10y agoOh, so maybe THAT is the reason why one of our customers had funny cases of thousands of his customers being double-billed on card payments by the payment processing provider! As a developer (of the cash register software, which wasn't at fault in this case), I was kinda amused by the whole thing. But I can assure you, the higher-up business people weren't amused at all.
- Illniyar 10y agoHeh. We had tons of double billing from payment processors, we never could get a straight answer from the gateway as to why it happened. Most of them came from.a gateway called CyberSource. Also, lots of customers have weird banks where they see both an authorization (I.e. hold) and the actual capture, and they mistake it for two captures. Usually it helps to educate them about what is an authorization.
- chris_wot 10y agoMan, a bank that doesn't know the difference is a bank I'd be withdrawing my funds from!
- Illniyar 10y agoThe bank knows the difference, the reports they send out to customers (or maybe what the customer's see on the site) don't make the distinction clear enough. Most banks don't even bother showing the customer authorizations of any kind.
- deleted 10y ago[deleted]
- Illniyar 10y agoIf your using Java, there's a popular apache http framework[0] that automatically retries a failed request unless you specifically instruct it not to. That bit us in the A$$ with double payments a few times. 0- https://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/impl/client/DefaultHttpRequestRetryHandler.html https://hc.apache.org/httpcomponents-client-ga/httpclient/ap...
- magnetic 10y agoIf you rely on http to ensure the one-and-only-one type of paradigm, I have bad news for you (because you won't be able to distinguish failure vs success case when you hit a timeout: did it not receive the request or did I not receive the ack?). You should embed a transaction ID to ensure idempotence of your API call. Then you can make the request 1, 2 or 3 times without any risk. The receiving end will realize the transaction ID already transitioned state and won't cause multiple payments to occur.
- kalmi10 10y agoI always wondered why cards get processed so slowly in some countries...
- nathan_f77 10y agoYou absolutely shouldn't need to do that often in payment processing code. Did you go back and fix it properly later?
- Illniyar 10y agoThe sleep was as good a solution as we were willing to do. The race condition resulted in an error syncing between two datacenters, so when it happens it can be dealt with manually. Also, to be clear, it did not affect customer waiting time as the delay was in a webhook which we used as a backup to the main payment process.
- chris_wot 10y agoI'm not entirely sure that she's right in tarring the whole industry with the same brush. Taking a bug out to tea is fantastic, because it really is about understanding the problem. But she conflates maintenance coding and program writing. There is a lot of half-baked software out there, but to say that this isn't like any other industry - like journalism - is really patently absurd. Despite best intentions, journalism is absolutely like programming. A sub-editor is really just like your QA department in many ways. And just like she made a mistake in a script on NPR unintentionally, so too do programmers. This piece is really a mass of contradictions. Take the following: But here’s the thing. No one will ever remember that number. No one remembers it now, and I’m sure no one noticed it when it happened. But I knew it happened, that it was an easily preventable mistake, and, in journalism, being wrong in that way is absolutely unacceptable. So... what is it? Was it unacceptable that the figure got into the story to the extent that she got fired? No, of course not - I'm assuming NPR ran a correction, and forgave her for her mistake. I really doubt most programmers are going out of their way to slap together code that has deliberate bugs. Yeah, they exist but to say any software development house that writes email clients, job seeking sites or any other software are intentionally encouraging this sort of behaviour seems to be an insult to the vast majority of founders and software developers who work hard to hone their craft and take care to produce quality software. This essay seems overly emotionally wrought and with a perspective that is out of kilter with reality. For me, despite her protestations that she is no better than all the others who work at software development, there's an implicit undertone of superiority masked by claims of victimisation and isolation. It's not particularly fair, and it seems rather manipulative to me.
- dcole2929 10y agoI think the difference is in how the two industries she are comparing here fundamentally treat mistakes. In journalism, you might not get fired immediately for a mistake like that but certainly you're going to get reprimanded and told how unacceptable that is. Your company is absolutely going to run a correction at the first opportunity they get. Any mistake is treated as a major embarrassment by staff of a respectable news company. The viewers/readers might not notice/care but the company does. This is totally not how things work in tech though. First of all there are a lot more mistakes/bugs, and because of that how bugs are handled is completely different. If you're not doing something where lives/money are at stake, it's ok to release with bugs so long as they aren't showstoppers. When I write something that has a bug in it, I don't even get talked to. We just write it up and toss it in the list with all the other bugs. There are of course situations in both industries where things are different but I think in general there is definitely a major difference in how tech treats mistakes as compare to how pretty much every other industry.
- arca_vorago 10y ago"Just trying to "quick fix" apparent bugs, without having understood the complex problem in its entirety beforehand, is a pretty bad approach in quite some areas of the tech world." And a million sysadmins across the world cried aloud in agreement and despair. The point is that I think there are business side problems more than there are tech problems in this industry as a whole. I think the phrase "the perfect is the enemy of the good" is a dangerous one for so many managers to latch onto. More on point to the article though, we need more magnum opuses, more results of this kind of long term thinking, put into action. Not more band-aids on problems. I do think though, that big picture thinkers of this ilk do find themselves trapped into a twist on the Bertrand Russell saying, "The trouble with the world is that the stupid are cocksure and the intelligent are full of doubt." What we need then, are some of the intelligent to gain a bit of the cocksuredness, and the stupid to gain a bit of doubt.
- dopeboy 10y agoThis was my thought as well. And don't work at a small company or startup; go work in a mission critical industry such as aerospace where perfection is the rule of law.
- brandmeyer 10y agoAlso power electronics, medical, nuclear, etc. But there is a problem in those industries: They don't pay nearly as well as the fail-fast-and-break-things internet jobs. Tech salaries are sky-high right now because we are taking over the enormous advertising industry, which has large margins. Those other industries? They are already quite mature, and are operating on razor-thin margins, often in the 5% range.
- wycats 10y agoWe should also consider making startups a place where understanding is more common.
- oriolid 10y agoI thought exactly that. Then I got to systems programming (embedded, soft real time, consumer brand that used to be known for quality etc) and found out everything is equally crap out here, too.
- wycats 10y agoThere is plenty of place for polish and deep understanding in the user-facing sphere. Apple is renowned for their work in this area. My company's product, Skylight, has made a virtue out of "all the little things" - understanding problems deeply and solving them well. I think it's reasonable for people to wish that more of user-facing software worked this way, even though it's out of sync with how Silicon Valley and Venture Capital tend to work.
- angersock 10y ago> Apple is renowned for their work in this area. Apple is renowned for their draconian policies and, more importantly, massive marketing apparatus that brainwashes customers. Their actual expertise in development, as exhibited in the last few years of buggy software and gimped hardware, are not that great.
- nitrogen 10y agoThe flagged sibling comment demonstrates how emotionally invested people can be in their technology choices. Similarly worded comments about other subjects would not have been flagged to death. If anything, I think this demonstrates how talented Apple's marketing team can be, as well as how meticulous their UI team can be. I myself am a huge fan of attention to detail, and we need more of it. I've used Skylight before, and if I'm working on another project that could benefit from it I'd recommend it again, so thanks for paying attention to all the little things.
- wycats 10y agoFor what it's worth, I spent half the holiday weekend arguing on Twitter that I think apple has lost its way, and talking about my switch to Windows for my home machine, so I found both the vehemence of the flagged comment and the flagging to be pretty strange.
- pjmorris 10y ago> Tech is big, no need to quit all of it. “Well if no one out there understands, start your own revolution and cut out the middle man” - Billy Bragg, Waiting for the Great Leap Forwards Bragg was writing about the tension between being a musician and being a political activist rather than the tension between problem understanding and problem solving, but the tension seems to be everywhere. I've got a friend who was frustrated about how little his PhD had to do with philosophy because there was no time for that, only time to publish. Alan Kay said something of the ilk in the epic Ask HN thread a few months ago, referring to how hard it's been to get funding to do good research for something like the last 35 years or so. Hopefully the author can find her 'birds of a feather', it's not like we lack problems that need understanding.
- nathan_f77 10y ago> I've got a friend who was frustrated about how little his PhD had to do with philosophy because there was no time for that, only time to publish. I don't understand. He studied philosophy but ended up writing a thesis that was only tangentially related to the field? Or he assumed that "Doctor of Philosophy" was related to the field of philosophy, and was disappointed that he couldn't talk about Plato while writing about physics?
- pjmorris 10y agoMore like the later, but less extreme. Disappointed that there wasn't time to talk about the philosophical aspects of computer science in a degree named `Doctor of Philosophy'.
- nathan_f77 10y agoOh, well that's not really what "Doctor of Philosophy" means. It comes from the same Greek word, which means "love of wisdom", but it's unrelated the field of philosophy. I also think the philosophy of computer science is very interesting, though. I just saw that Oxford offers a course that combines computer science and philosophy: https://www.ox.ac.uk/admissions/undergraduate/courses-listing/computer-science-and-philosophy?wssl=1 https://www.ox.ac.uk/admissions/undergraduate/courses-listin...
- sotojuan 10y agoJust more and more reasons to quit web dev, huh?