{"id":24566,"date":"2019-03-11T16:33:20","date_gmt":"2019-03-11T20:33:20","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=24566"},"modified":"2021-09-06T10:18:32","modified_gmt":"2021-09-06T14:18:32","slug":"the-sad-state-of-logging-bugs-for-apple","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2019\/03\/11\/the-sad-state-of-logging-bugs-for-apple\/","title":{"rendered":"The Sad State of Logging Bugs for Apple"},"content":{"rendered":"<p><a href=\"https:\/\/www.corbinstreehouse.com\/blog\/2019\/03\/the-sad-state-of-logging-bugs-for-apple\/\">Corbin Dunn<\/a> (<a href=\"https:\/\/twitter.com\/nibroc\/status\/1104535152259022848\">tweet<\/a>, <a href=\"https:\/\/news.ycombinator.com\/item?id=19349638\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/www.corbinstreehouse.com\/blog\/2019\/03\/the-sad-state-of-logging-bugs-for-apple\/\">\n<p>This is where things get screwy depending on the component your bug lands in, since bug management is group dependent. Many groups will have only one or two QA people to do the initial screening of those large drop areas for bugs. QA engineers are sometimes instructed to screen bugs with a priority and &ldquo;fix period&rdquo; before passing them off to the engineer responsible for the code. This is terrible because many engineers will not look at bugs with a low priority. It is much better for the engineer who &ldquo;owns the code&rdquo; to look at a bug and determine the priority. The QA engineers will frequently get a huge back log of bugs to screen, and it can take weeks, or even months, for some bugs to get screened. Sometimes this leads to a mass screening of bugs, marking them all with a low priority. Bug originators have to notice this, and complain about it for the priority to get increased. Worse yet, some groups mass close bugs older than a year or so, and ask the originator to re-open the bug if the issue still exists. A lot of people don&rsquo;t pay attention to bugs that need verification, and they simply become lost.<\/p>\n<p>[&#8230;]<\/p>\n<p>Engineers also dislike screening bugs because sometimes they have to add them to their queue for the current release. This increases their required workload for that release, which is something people don&rsquo;t like doing. So, instead, many bugs stay unscreened.<\/p>\n<p>[&#8230;]<\/p>\n<p>Sometimes QA screen bugs with a low priority and holds onto them. They never get moved to the appropriate code engineers, and effectively become lost in the system. Sadly, I had seen this happen way too often.<\/p>\n<p>[&#8230;]<\/p>\n<p>When a bug is sent back as fixed, the internal developer who originated the bug is supposed to verify the problem is resolved. They can send it back if the problem isn&rsquo;t resolved. However, internal developers don&rsquo;t really have an incentive to verify bugs. Management doesn&rsquo;t keep track of bugs that need verification or really require developers to verify them. Most engineers do verify bugs; they like to make sure problems are resolved. But external developers are left in a more sad state. The bug becomes closed for them, and is dead.<\/p>\n<p>[&#8230;]<\/p>\n<p>Internal engineers need to take more responsibility in promptly screening bugs. Management needs to allow engineers to have more time to do this, which is at the expense of working on features or fixing already screened bugs. Engineers should always be expected to have a very low unscreened bug count.<\/p><\/blockquote>\n\n<p>This matches what we felt like must be going on when filing bugs, as well as the way the smaller bugs seem to hang around forever, with new ones added each year. Even Mojave, which was supposed to be a refinement release, seems to have, on balance, increased the number of bugs. As a user, it sucks that things don&rsquo;t work as well as they used to. As a developer, I spend too much time working around OS bugs and <a href=\"https:\/\/mjtsai.com\/blog\/2019\/02\/05\/mojave-privacy-protection-aftermath\/\">breakage<\/a>&mdash;in other words, preventing my apps from getting worse rather than actually making them better. I assume other developers are in the same boat, and this may be one reason there seems to be less excitement around apps these days. Everyone is wasting a lot of energy treading water.<\/p>\n\n<p>It&rsquo;s as if the OS is rotting away before our eyes. The good news is that this should be fixable. Apple has tons of smart engineers who care. But the process does not seem to be set up to produce quality. Management talks a good game but clearly has other priorities. There are undoubtedly many policies that could be changed to improve the organizational incentives, and a core problem seems to be that Apple remains understaffed for its ambitions. The headcount can&rsquo;t and shouldn&rsquo;t be massively increased in a short period of time, but there is something Apple could do today to help stem the tide: go off the annual schedule.<\/p>\n\n<p><a href=\"https:\/\/news.ycombinator.com\/item?id=19350764\">Peter Ammon<\/a>:<\/p>\n<blockquote cite=\"https:\/\/news.ycombinator.com\/item?id=19350764\">\n<p>The single easiest and most effective thing Apple could do to improve its SWE org is to invest in Radar.<\/p>\n<p>Radar&rsquo;s importance within Apple cannot be overstated. It subsumes what would be multiple tools in other orgs. As an Apple SWE you spend a massive amount of time in it. And yet Apple treats Radar as a cost center, developed by an outsourced offshore team. It&rsquo;s slow to search, supports only plain text, is hard to script, and is missing obvious features, e.g. automatic duplicate finding.<\/p>\n<p>Hire five good SWEs, give them a mandate to serve the needs of the org, and you will massively increase the effectiveness of every other engineer.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/news.ycombinator.com\/item?id=19350235\">ThemalSpan<\/a>:<\/p>\n<blockquote cite=\"https:\/\/news.ycombinator.com\/item?id=19350235\">\n<p>Anecdotally, I didn&rsquo;t find the situation internally to be much better. Many bugs internally go unanswered because there is not enough time allocated to fixing core systems and designing better replacements. The truth is, I know personally of several teams that aren&rsquo;t able to get through the queue of internally filed and scheduled bugs.<\/p>\n<p>To me, it feels like Apple hasn&rsquo;t resourced core pieces of infrastructure and engineering teams in line with upper management&rsquo;s plans for growth. While many teams are relatively sequestered, once you start talking to folks elsewhere in the company it becomes clear that many teams are struggling to stay above water. More still, everyone shrugs about it because it&rsquo;s not clear exactly what is wrong. The best description I&rsquo;ve heard is in many cases engineers are willing to offer hacks as a solution to meet management&rsquo;s demands, and management is either willing to accept those hacks or doesn&rsquo;t know better.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/news.ycombinator.com\/item?id=19352312\">satisfice<\/a>:<\/p>\n<blockquote cite=\"https:\/\/news.ycombinator.com\/item?id=19352312\"><p>We originally designed Radar so that bugs would be verified as closed by the person with most interest in seeing this happen: the tester assigned to that part of that project. Then management swooped in with an edict that bugs must be verified as closed by whomever originally reported them. This is a stupid idea, because it creates the perverse incentive that no one should report a problem if they are outside the team (because then you are committing to verify the fix, which just means more work for you that has nothing to do with any of your main responsibilities).<\/p><p>When I pointed out that the system would now discourage people on different teams from helping each other, the sponsoring director said &ldquo;that&rsquo;s what pink slips are for.&rdquo; Direct quote. Soon after that I resigned from the design team.<\/p><p>Without reasonably skilled and principled leadership, you just don&rsquo;t get quality software. And &ldquo;quality is everyone&rsquo;s job&rdquo; is just an empty and childish slogan. Excellence is not transmitted through slogans and wishful thinking. You have to assign responsibility, provide resources and time (which means lowering velocity of new development), and follow-up.<\/p><p>The fundamental reason why it doesn&rsquo;t happen is the technology market is not efficient. Quality is, in fact, not as important as career testers wish it were. You can get away with doing terrible work and not lose your job. The fact that Apple pays no significant penalties for having buggy products insulates it from our slings and arrows.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/news.ycombinator.com\/item?id=19355218\">Corbin Dunn<\/a>:<\/p>\n<blockquote cite=\"https:\/\/news.ycombinator.com\/item?id=19355218\"><p>Some obvious issue, like &ldquo;this button should do X but it does Y&rdquo; can be verified by almost anyone. But some issues need the attention of the original author to really verify the bug. Maybe what needs to be done is someone in QA needs to attempt to verify the bug, or &ldquo;pre-verify&rdquo;, and then it goes back to the originator for final verification, who can also verify it, or simply close it if they feel like QA did a good job.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/drfindley\/status\/1104652446440144898\">drfindley<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/drfindley\/status\/1104652446440144898\">\n<p>What&rsquo;s even sadder is we used to be better at this when I started at Apple in 2008. Bugs often got screened and triaged and sometimes fixed within a week. I blame the yearly release schedule, where shipping features became a higher priority than overall quality<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/nibroc\/status\/1104747071041499136\">Corbin Dunn<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/nibroc\/status\/1104747071041499136\">\n<p>I feel the same way; people took more time on bugs back in those days. I also think the yearly schedule is to blame.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/news.ycombinator.com\/item?id=19350543\">akecheck<\/a>:<\/p>\n<blockquote cite=\"https:\/\/news.ycombinator.com\/item?id=19350543\">\n<p>When a process is annoying and you do nothing, people eventually <i>do<\/i> give up and leave.  When it reaches that point, <i>they&rsquo;re not coming back<\/i> even if you finally wake up and fix what bugged them.<\/p>\n<p>Apple software quality is in serious danger precisely because of this type of community and infrastructure rot.  They are not encouraging developers to help them, and a not-surprising number of serious issues have shown up in released products in recent years.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/news.ycombinator.com\/item?id=19351251\">jakobegger<\/a>:<\/p>\n<blockquote cite=\"https:\/\/news.ycombinator.com\/item?id=19351251\">\n<p>By now, a significant fraction of bugs are bugs in Apple&rsquo;s frameworks. We try to report them to Apple, but they are ignored, or simply closed because they are related to deprecated APIs.<\/p>\n<p>Of course, customers don&rsquo;t complain that Apple frameworks are buggy -- they complain that our app crashes! So Apple has no incentive to fix it.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/news.ycombinator.com\/item?id=19351032\">Peter Kamb<\/a>:<\/p>\n<blockquote cite=\"https:\/\/news.ycombinator.com\/item?id=19351032\">\n<p>The entire value of WWDC is going to the Labs, giving an Apple engineer your Radar number, and having them read you or paraphrase the internal-only notes attached to the ticket. Half the time the question\/bug will be clearly resolved internally or a workaround posted. But no updates are added to the public ticket, and it will remain open and unchanged for years.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/ccgus\/status\/1104539068728147969\">Gus Mueller<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/ccgus\/status\/1104539068728147969\">\n<p>Corbin is a former AppKit engineer, and this is a must read for developers. It&rsquo;ll make you angry, and it&rsquo;s stuff you already figured was happening.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/NSExceptional\/status\/1104548280334249984\">Tanner Bennett<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/NSExceptional\/status\/1104548280334249984\">\n<p>This confirms what we already knew. Almost no one at Apple takes bug reporting seriously. Reports will stack up indefinitely and eventually macOS will be a shell of its former self.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/nibroc\/status\/1104548491823439872\">Corbin Dunn<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/nibroc\/status\/1104548491823439872\">\n<p>It is not just macOS, but iOS too.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/tapbot_paul\/status\/1104551126186291200\">Paul Haddad<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/tapbot_paul\/status\/1104551126186291200\">\n<p>Interesting read. My view on bugs, work around them and move on. Even if it gets assigned it&rsquo;s not getting fixed for at least a year.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/lapcatsoftware\/status\/1104558307442937859\">Jeff Johnson<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/lapcatsoftware\/status\/1104558307442937859\">\n<p>IMO Radar screening issues are merely a symptom. The root problem is that Apple produces a completely unmanageable volume of bugs. Even if they screened all Radars quickly, then what? Bugs still get written much much faster than they get fixed. That&rsquo;s unsustainable.<\/p>\n<p>I suspect that Radar screening is allowed to be lax precisely because everybody knows that a huge volume of bugs will never get fixed anyway. It&rsquo;s like bailing out the Titanic.<\/p>\n<p>There&rsquo;s also a tolerance for shipping bad bugs. If heads rolled at the company for shipping bad bugs, then Radars would get screened.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/donttrythis\/status\/1104580045937373188\">Adam Savage<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/donttrythis\/status\/1104580045937373188\">\n<p>Just getting my music downloaded to my phone is a recurring nightmare I relive every time I upgrade. Having my music ON my device should be a simple choice, &amp; you&rsquo;ve made it Byzantine. How is it that I have to visit a support forum to learn how to download SONGS to my PHONE?!<\/p>\n<p>The language of permissions is still fascinatingly and infuriatingly opaque, to the degree that when using iTunes, I&rsquo;m regularly convinced it has an agenda antithetical to mine. Searching Suport forums is also nightmarish as helpful buttons from one version disappear in others.<\/p>\n<\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/01\/29\/major-facetime-privacy-bug\/\">Major FaceTime Privacy Bug<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2018\/07\/16\/reporting-bugs-as-external-developers\/\">Reporting Bugs as External Developers<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2018\/06\/12\/file-radars-early-and-often\/\">File Radars Early and Often<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2018\/02\/13\/how-apple-plans-to-root-out-bugs\/\">How Apple Plans to Root Out Bugs<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2017\/11\/29\/why-little-bugs-need-to-get-fixed\/\">Why Little Bugs Need to Get Fixed<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2016\/12\/21\/more-macos-preview-pdf-trouble\/\">More macOS Preview PDF Trouble<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2016\/04\/13\/apples-neglected-os\/\">Apple&rsquo;s Neglected OS<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2016\/02\/07\/mossberg-discovers-the-functional-high-ground\/\">Mossberg Discovers the Functional High Ground<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2015\/01\/06\/apples-software-quality-continued\/\">Apple&rsquo;s Software Quality, Continued<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2014\/12\/03\/the-qa-mindset\/\">The QA Mindset<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2014\/10\/11\/apples-software-quality-decline\/\">Apple&rsquo;s Software Quality Decline<\/a><\/li>\n<\/ul>\n\n<p id=\"the-sad-state-of-logging-bugs-for-apple-update-2019-03-20\">Update (2019-03-20): <a href=\"https:\/\/nachbaur.com\/2019\/03\/15\/in-defence-of-apples-bug-process\/\">Michael Nachbaur<\/a>:<\/p>\n<blockquote cite=\"https:\/\/nachbaur.com\/2019\/03\/15\/in-defence-of-apples-bug-process\/\">\n<p>It&rsquo;s easy to blame Apple for poor bug handling practices, but I feel it&rsquo;s a two-way street. It&rsquo;s just as much our responsibility as theirs to ensure important bugs get fixed; we should do everything in our power to make their jobs easier in solving bugs. And if we can&rsquo;t, then at the very least we can treat Apple&rsquo;s engineers with respect.<\/p>\n<\/blockquote>\n\n<p id=\"the-sad-state-of-logging-bugs-for-apple-update-2019-09-09\">Update (2019-09-09): <a href=\"https:\/\/twitter.com\/atomicbird\/status\/1169638974979076097\">Tom Harrington<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/atomicbird\/status\/1169638974979076097\">\n<p>Apple FB 7074633 relates to how Apple sign in sends data to third party web sites.<\/p>\n<p>They asked for a sysdiagnose.<\/p>\n<p>Our server doesn&rsquo;t run macOS. Or iOS. And the problem is with Apple&rsquo;s server anyway.<\/p>\n<p>This is why people give up on filing feedback reports.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Corbin Dunn (tweet, Hacker News): This is where things get screwy depending on the component your bug lands in, since bug management is group dependent. Many groups will have only one or two QA people to do the initial screening of those large drop areas for bugs. QA engineers are sometimes instructed to screen bugs [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2019-03-11T20:33:23Z","apple_news_api_id":"53a4d577-4edf-4654-b045-e1f56bc6f0e5","apple_news_api_modified_at":"2021-09-06T14:18:37Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAw==","apple_news_api_share_url":"https:\/\/apple.news\/AU6TVd07fRlSwReH1a8bw5Q","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[1143,44,69,27,31,1610,224,30,1609,102,2109,1221],"class_list":["post-24566","post","type-post","status-publish","format-standard","hentry","category-technology","tag-apple-software-quality","tag-bugtracking","tag-cocoa","tag-craft","tag-ios","tag-ios-12","tag-itunes","tag-mac","tag-macos-10-14","tag-preview","tag-radar-and-feedback-assistant","tag-wwdc"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/24566","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=24566"}],"version-history":[{"count":4,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/24566\/revisions"}],"predecessor-version":[{"id":28645,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/24566\/revisions\/28645"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=24566"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=24566"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=24566"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}