5 ms·
I can guarantee you that 5 other teams rely on that specific behavior and don't have the will/independence ("budget") to implement that change if the api was fi
by infogulch 6y ago
I can guarantee you that 5 other teams rely on that specific behavior and don't have the will/independence ("budget") to implement that change if the api was fixed. Not only that, but if they did make that change, their manager would instantly have a handful of directors down their throat demanding an explanation why they just added work to their teams that are busy with Feature Work (TM).
- reaperducer 6y agodon't have the will/independence ("budget") to implement that change So, dicks and idiot middle managers. I think you made his point.
- philosopher1234 6y agoNo. This is such a small issue who honestly cares if it gets fixed? I guarantee you this is not the most important thing anyone involved could be working on. Too many perfectionists on this website.
- sixstringtheory 6y agoThe person who brought up the story mentioned account balances. Someone will definitely care when a latent combination of bugs is triggered and the company loses money because of it. See Knight capital and the more recent Citi debacles.
- WrtCdEvrydy 6y agoThis is a total failure to follow any sort of standard. A 504 is a gateway timeout due to the server failing to complete the action, hell, a 400-level for "you fucked up" would be preferable.
- fastball 6y ago4xx would be what you want anyway, no?
- jholman 6y agoWhat you described: let x = 2 // runs x = 3; // runs x = 3; // runtime error, you made a mistake No, I'd want a balance update to succeed. Even if it's to the same value that it already had.
- wccrawford 6y agoOr at least return a "no change" message, and not a failure result in the 400s or 500s.
- fastball 6y agoI don't think it's clear from the OC that even if they weren't using the wrong HTTP response they would want an update to succeed if it is the same value, at which point 409 could be a reasonable response code.
- pyrale 6y ago304 would be fitting.
- WrtCdEvrydy 6y ago2XX level is for the action succeeding. 4XX level is for the action failing due to the user. 5XX level is for the action failing due to the service/code/infra. In the real world, updating your balance to the same number should be a 200, however in some weird financial world, it may be a 400 because you may not be allowed to set the same balance due to some financial rule. A 500 is a terrible choice unless setting the balance caused an error at your code/infrastructure level.
- mgkimsal 6y ago"We were running into this issue where we were getting a 504 Gateway Timeout on the update balance call so I eventually found the Slack room for that team and asked about it. They ignored me for a couple weeks,...." Someone could have documented this and/or simply answered a damn question instead of wasting weeks of opportunity cost. Too many dicks and idiots on that website, it seems. "who honestly cares if it gets fixed" - everyone that comes after this and has to deal with it and waste weeks of their life trying to pry some required nugget of info from a passive aggressive group of maintainers of stuff which actively ignores industry standards?
- philosopher1234 6y agoPut yourself in the shoes of the team who was asked to fix this. They probably have a dozen feature requests, two dozen support tickets, and now this guy wants this bug fixed because it does t follow a standard and he had a hard time understanding it. Yes, that is a real issue, and in the ideal world it would be fixed along with every other issue on the list, but in the real world it is unlikely to ever be important enough to deprioritize the other important issues I imagine this team faces. At the end of the day, some bugs are just better to live with.
- mgkimsal 6y agoagain, part of the problem was lack of communication and documentation. waiting 2 weeks to be told "fuck off" (in essence) is shitty all around.. it's not JUST that a (stupid) bug exists, it's how it was handled in this case, and, apparently, how they choose to handle it going forward, affecting who knows how many more people/teams in the next few years, and how many more weeks of wasted time. And if this team handles this sort of thing this way, how much more time is being wasted and projects delayed? This is at least as much a communication problem as it is a technical one. And yeah, I can put myself in those shoes, as I've been on both sides of this. Treating newcomers in your communication channel (slack, etc) with the same level of urgency YOU would want (or need) when you ask for help from some other team is a bare minimum.
- 6y ago
- david422 6y agoNobody competent wants to spend extra time and work dealing with junior level mistakes. If the basic stuff can't be done right, then the complex stuff definitely isn't done right. Little issues like this cause ripple effects and now guaranteed you've got incorrect behavior in other parts of the system because of this broken API. It's a time suck all around.
- pyrale 6y ago...And once you walk a bit in their shoes, you realize they're equally pressured. In the end, they are neither dicks nor assholes, they're just clever enough to see that corporate words have no meaning, and maybe they turned a bit cynical because of it. And certainly, if their own boss is bullshitting them and their reports can read their bullshit, why should they be the ones taking the hit? A shitty environment can't foster good work relations.
- WrtCdEvrydy 6y agoToo real.
- rufus_foreman 6y agoYeah, I'm sure there are valid reasons for why it behaves the way it does and there have been staff reductions in the last few months. The point is that it is pretty typical to spend huge amounts of time figuring out why things work they way they do, and it turns out to be some minor detail that isn't going to help you be a better programmer, it is just work that needs to be done to keep things from falling apart. It isn't very romantic.