- Apple ปิดบั๊กที่ถูกรายงานผ่าน Feedback Assistant โดยอัตโนมัติ หากผู้ใช้ไม่ ยืนยัน (verify) ด้วยตนเองว่า “ยังไม่ได้รับการแก้ไข”
- สำหรับ บั๊กการรั่วไหลของข้อมูลส่วนตัวที่เกี่ยวข้องกับส่วนขยาย network filter (FB12088655) ซึ่งไม่มีการตอบกลับมานาน 3 ปี Apple กลับมาขอให้ยืนยันกะทันหัน และหากไม่มีการตอบกลับภายใน 2 สัปดาห์จะถือว่าแก้ไขแล้ว
- แต่ถึงแม้ว่า นักพัฒนา Little Snitch จะยืนยันว่าปัญหาเดิมยังคงอยู่ใน macOS เวอร์ชันล่าสุด Apple ก็ยังปิดรายงานดังกล่าว
- ขั้นตอนนี้ทำงานในลักษณะของ โครงสร้างที่ลดจำนวนบั๊กรายงานลงอย่างไม่เป็นธรรมชาติ และส่งผลให้ปัญหาคุณภาพที่แท้จริงถูกบดบัง
- ผลลัพธ์คือ วิธีจัดการบั๊กของ Apple บั่นทอนความเชื่อมั่นของนักพัฒนา และถูกชี้ว่าเป็นปัญหาที่ขัดขวางวัฒนธรรมการให้ฟีดแบ็กแบบร่วมมือกัน
ปัญหาการปิดบั๊กรายงานอัตโนมัติของ Apple
- นักพัฒนาที่รายงานบั๊กผ่าน Apple Feedback Assistant วิจารณ์แนวปฏิบัติของ Apple ที่ปิดรายงานเองโดยไม่ต้องมีการยืนยันจากผู้ใช้
- Apple จะ ปิดรายงานโดยอัตโนมัติ หากผู้ใช้ไม่ยืนยันด้วยตนเองว่า “บั๊กยังไม่ได้รับการแก้ไข”
- หลังจากเงียบหายไปหลายปี จู่ๆ ก็ส่งคำขอให้ยืนยัน และหากไม่มีการตอบกลับภายใน 2 สัปดาห์จะถือว่า “แก้ไขเสร็จแล้ว”
- ในกรณีของ FB12088655 “Privacy: Network filter extension TCP connection and IP address leak” ที่ส่งไปเมื่อเดือนมีนาคม 2023 Apple ไม่ตอบกลับนาน 3 ปี ก่อนจะมาขอให้ยืนยันบน macOS 26.4 beta 4 ในเดือนมีนาคม 2026
- ผู้รายงานไม่ได้ติดตั้งเบต้า OS ไว้ตลอดเวลา จึงตรวจสอบได้ยาก และเมื่อสอบถาม Apple ว่าแก้ไขแล้วหรือไม่ก็ ไม่ได้รับคำตอบที่ชัดเจน
- Apple แจ้งว่า “หากไม่ยืนยันภายใน 2 สัปดาห์ จะถือว่าได้รับการแก้ไขแล้วและจะปิดรายงาน”
- นักพัฒนา Little Snitch รายงานว่าสามารถทำให้ปัญหาเดิมเกิดซ้ำได้แม้ใน macOS 26.4 beta 4
- และใน macOS 26.4 เวอร์ชันจริงก็ยังคงมีบั๊กเดียวกันอยู่
- การที่ Apple เรียกร้องให้ผู้ใช้ยืนยันด้วยตนเองสำหรับบั๊กที่ยังไม่ได้รับการแก้ไข ถูกชี้ว่าเป็น ขั้นตอนที่ไม่มีประสิทธิภาพและไม่สมเหตุสมผล
- มีการกล่าวถึงความเป็นไปได้ว่า ภายในองค์กรอาจมี โครงสร้างแรงจูงใจเพื่อทำให้จำนวนบั๊กรายงานลดลง
- ส่งผลให้จำนวน “บั๊กที่ยังเปิดอยู่” ลดลง และทำให้ดูเหมือนคุณภาพดีขึ้นในตัวชี้วัดภายใน
กรณีบั๊กรายงานอื่น ๆ
- อีกกรณีหนึ่งคือบั๊ก FB22057274 “Pinned tabs: slow-loading target="_blank" links appear in the wrong tab”
- แม้จะเป็นปัญหาที่เกิดซ้ำได้ 100% แต่ Apple กลับระบุว่า “การตรวจสอบเสร็จสิ้น - ไม่สามารถวินิจฉัยได้จากข้อมูลปัจจุบัน (Investigation complete - Unable to diagnose with current information)”
- เมื่อมีการขอข้อมูลเพิ่มเติมในวันที่ 9 มีนาคม Apple ก็ไม่ตอบกลับ
- ใน iPadOS 26.4 beta ยังเกิด บั๊ก Safari แครช ขึ้นใหม่ และ Apple ก็ ไม่ได้แก้ไขก่อนปล่อยเวอร์ชันสาธารณะ
- ผู้เขียนวิจารณ์ว่า “ดูเหมือนจุดประสงค์ของเบต้าไม่ใช่เพื่อแก้บั๊ก แต่เพื่อทำให้คนที่รายงานบั๊กรำคาญมากกว่า”
การเปลี่ยนแปลงหลังขึ้นหน้าแรก Hacker News และการตอบสนองของ Apple
- ทันทีหลังจากบทความนี้ขึ้นหน้าแรกของ Hacker News Apple ก็อัปเดตรายงาน FB22057274
- Apple ขอให้ส่ง sysdiagnose log สำหรับปัญหา UI
- ผู้เขียนชี้ว่าได้ส่ง ขั้นตอนการทำให้เกิดปัญหาซ้ำและวิดีโอบันทึกหน้าจอ ไปแล้ว และ sysdiagnose เป็น ข้อมูลที่ไม่จำเป็นและมีความเสี่ยงด้านความเป็นส่วนตัว
- ผู้เขียนตอบกลับคำขอของ Apple ดังนี้
- “บั๊ก UI ไม่จำเป็นต้องใช้ sysdiagnose และมันไม่ได้ช่วยอะไร”
- โดยเสนอวิธีที่ทำให้ปัญหาเกิดซ้ำได้ โดยไม่ต้องใช้ Little Snitch คือใช้ Network Link Conditioner ใน Xcode Additional Tools เพื่อตั้งค่าโปรไฟล์อัปโหลดล่าช้า 3000ms ก็จะเห็นอาการเดียวกัน
คำแนะนำเกี่ยวกับ Xcode Additional Tools
- Xcode Additional Tools มียูทิลิตีที่มีประโยชน์หลายอย่างรวมอยู่ด้วย และ
สามารถดาวน์โหลดได้จากหน้า Apple Developer Downloads (ต้องล็อกอิน)
การประเมินโดยรวม
- วิธีจัดการบั๊กรายงานของ Apple สร้างภาระที่ไม่จำเป็นให้กับนักพัฒนา และ
ทำงานในลักษณะที่ มุ่งลดจำนวนรายงานมากกว่าการแก้ปัญหาจริง
- จากรายงานที่ไม่มีการตอบกลับเป็นเวลานาน การขอให้ยืนยันอย่างไม่สมเหตุสมผล และการร้องขอข้อมูลที่ไม่มีประสิทธิภาพ
ทำให้ ความเชื่อมั่นและความตั้งใจในการร่วมมือของนักพัฒนา อ่อนแอลง
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ดูเหมือนว่าผู้เขียนคงไม่เคยเจอกับ ซอฟต์แวร์องค์กร
เวลาโปรแกรมเมอร์ได้รับบั๊กรายงาน ก็มักใช้มุกคลาสสิกแบบ “ผมยังทำให้เกิดซ้ำไม่ได้ คุณลองบนเวอร์ชันล่าสุดหรือยัง?” แล้วก็ถ่วงเวลาโดยไม่ทำอะไร
ถ้ายืนยันไม่ได้ก็จะปิดเป็น “ผู้ใช้ทำผิด” หรือ “ทำซ้ำไม่ได้”
วิธีรับมืออย่างเดียวคือบอกว่า “ครับ/ค่ะ ตรวจสอบแล้ว” ทั้งที่จริงไม่ได้ตรวจสอบ
ถ้าในล็อกเห็นแอนติไวรัส ก็จะปิดเรื่องทันทีพร้อมบอกว่า “ไปถามฝั่งนั้นสิ”
เพราะมีลำดับความสำคัญทางธุรกิจที่สำคัญกว่าบั๊กที่ผู้ใช้คนเดียวแจ้งเข้ามาอีกมาก
ถึงอย่างนั้น ในมุมผู้ใช้ก็น่าเสียดายอยู่ดี
นักพัฒนาส่วนใหญ่ไม่รู้วิธีทดสอบผลิตภัณฑ์ของตัวเอง หรือไม่ก็ขี้เกียจทำ
ตอนทำซัพพอร์ตเทคนิคสำหรับองค์กร ผมต้องรับเคสใหม่อย่างน้อยวันละสองเคส และดูแลพร้อมกันเกิน 20 เคส
ความโล่งใจเวลาปิดเคสที่ไม่มีความคืบหน้าเป็น “ปิดเพราะไม่มีการใช้งาน” นั้นมากจริง ๆ
ต่อมามีกฎว่าต้องติดต่อสามครั้งก่อนปิด กลายเป็นฝันร้ายไปเลย
สุดท้ายแล้ว ระบบราชการของบริษัทยักษ์ใหญ่ ทำทุกอย่างพัง
Apple มีท่าทีเหมือน ภาวนาให้บั๊กหายไปเอง
ตอนนี้ผมก็ไม่ส่งบั๊กรายงานแล้ว
โดนเมินยังพอรับได้ แต่ปัญหาคือพวกเขาปฏิบัติกับผมเหมือนเป็น QA ที่ไม่ได้รับเงิน
โดยคาดหวังให้ผมทุ่มแรงมหาศาลเพื่อพิสูจน์ว่าบั๊กมีอยู่จริง
เหมือนคิดว่า “นี่คือซอฟต์แวร์ของคุณ งั้นคุณก็ไปดีบักเองสิ”
โปรเจกต์โอเพนซอร์สก็ทำแบบเดียวกัน คือ ปิด issue ที่ stale อัตโนมัติ
การถือว่าแก้แล้วโดยอัตโนมัติเพียงเพราะเวลาผ่านไปช่วงหนึ่งมันไม่สมเหตุสมผลเลย
ข้อดีของโอเพนซอร์สคือคุณแก้เองได้ ส่ง PR ได้ หรือจะ fork ไปแก้เองก็ได้
การกรองตั๋วเก่า ๆ น่าจะสมเหตุสมผลกว่า
ในมุมผู้ใช้มันน่าหงุดหงิด แต่ไม่ใช่ทุกบั๊กที่จะ ทำให้เกิดซ้ำได้ง่าย
บางครั้งหลังมีการเปลี่ยนโค้ดที่เกี่ยวข้อง การให้ผู้ใช้ลองทดสอบอีกครั้งก็มีประสิทธิภาพกว่า
ถึงอย่างนั้น เวลาต้องปิดบั๊กเก่าที่ใช้งานไม่ได้แล้วก็ยังรู้สึกไม่ดีอยู่เสมอ
ซึ่งจริง ๆ หมายความว่าในเครือข่ายภายในของ Apple มันไม่เกิดปัญหา
การปิดก็แค่เป็นการซ่อนปัญหา และ การเปิดค้างไว้ไม่ได้มีต้นทุน
การต้องติดตั้งเบต้านั้นไม่มีประสิทธิภาพสำหรับผู้ใช้ยิ่งกว่าเดิม
ผมให้ทั้งโปรเจกต์ตัวอย่าง Xcode และขั้นตอนรีโปรดิวซ์ครบแล้ว
ผมมั่นใจว่า Apple ไม่ได้ทำอะไรเลย
น่าจะเป็นการ โชว์เคลียร์บั๊ก เพื่อเตรียม macOS 27 ก่อน WWDC มากกว่า
ตอนทำงานที่ Facebook กับ Google ผมเห็น ลูกเล่นในการจัดการบั๊ก มาเยอะ
หลังมี SLA ก็มีการลดความสำคัญของบั๊กลงแบบประดิษฐ์ หรือโยนกลับให้ผู้ใช้ด้วยคำถามว่า “ยังเป็นปัญหาอยู่ไหม?”
พอเวลาผ่านไปก็บอกว่า “เวอร์ชันนั้นเลิกใช้แล้ว” แล้วปิดทิ้ง
บางทียังฝืน รวม เข้ากับบั๊กอื่นเพื่อเลี่ยงความรับผิดชอบอีกด้วย
สุดท้ายเรื่องพวกนี้ก็มาจาก ตัวชี้วัดผลงานขององค์กร (SLA)
เพราะงั้นตอนนี้ผมแทบไม่ส่งบั๊กรายงานแล้ว
แต่ฝ่ายบริหารสั่งว่า “ตอนนี้ให้โฟกัสโปรเจกต์ AI”
แล้วก็ยังมาบ่นอีกว่า “ทำไมบั๊กเยอะจัง”
ผมคิดว่าการเมินเฉยเฉย ๆ ยังซื่อสัตย์กว่าการปิดทิ้ง
ฝ่ายผู้นำผลักดันให้เกิด การไตรเอจแบบบังคับ ในลักษณะนี้
การบล็อกการแจ้งเตือนอัตโนมัติเป็นปัญหา
เช่น ต่อให้เว็บไซต์ล่มทั้งเว็บ แต่ถ้าช่วงนี้เป็น นอกฤดูกาลใช้งาน ก็อาจไม่ใช่ P0
แต่ในทางปฏิบัติคุณภาพข้อมูลมักแย่จนเอาไปทำรายงานไม่ได้
ดังนั้นการมีค่าความสำคัญเดียวจึงใช้งานได้จริงกว่า
stalebot ก็เลยเหมือนเข้ามาปิด issue ที่ถูกเมินเหล่านี้แทน
เขาแยก severity สำหรับลูกค้า กับ priority ภายในองค์กรออกจากกัน
Salesforce “Lightning Experience” ช้า มาก ทั้งที่ชื่อดูเหมือนจะเร็ว
เครื่องมือภายในกลับเร็วและมีประสิทธิภาพกว่ามาก
ที่ ElevenLabs ก็มีเรื่องแบบเดียวกัน
พอส่งบั๊กรายงานไป AI จะตอบกลับอัตโนมัติ แล้วภายใน 48 ชั่วโมงก็ถูกทำเป็น stale
อีกไม่นาน LLM agent น่าจะแก้ปัญหาพวกนี้ได้
มันอาจคอมเมนต์อัตโนมัติว่า “ยังไม่ถูกแก้” และคอย bump อัตโนมัติ เป็นระยะ ๆ ว่า “สิ่งนี้กระทบกับเวิร์กโฟลว์สำคัญ”
ผมเคยส่งบั๊กให้ Microsoft แล้วหลายเดือนต่อมาก็ได้รับคำตอบว่า “ทำซ้ำไม่ได้”
ที่จริงในช่วงนั้นมันถูกแก้ทางอ้อมจากการแก้อื่นไปแล้ว
ทำให้ผมตระหนักว่าตัวเองเป็นเหมือน คนตาบอดที่คลำได้แค่ส่วนหนึ่งของช้าง
ผมเป็นอดีตพนักงาน Apple
ตัวติดตามบั๊กภายในของ Apple เรียกว่า Radar และทุก issue ต้องผ่านขั้นตอน “Verify” ก่อนถึงจะปิดได้
ภายนอกดูเหมือนเป็นกระบวนการประกันคุณภาพ แต่ในความเป็นจริง Radar จำนวนมากจะค้างอยู่ในสถานะ Verify ตลอดกาล
ทีมต่าง ๆ ถูกประเมินจาก “จำนวน Radar ที่ยังไม่ verify” จึงมักปิดทิ้งแบบบังคับหลังเวลาผ่านไปช่วงหนึ่ง
ภาพลวงตาว่า “ไม่มีบั๊กเลย” ทำให้เกิด ตัวชี้วัดผลงานที่บิดเบี้ยว
จึงไม่ควรตีความว่า Apple engineer ได้พยายามแก้จริงแล้ว
ที่บริษัท ผมเคยเข้าประชุมกับเพื่อนร่วมงานเพื่อ เคลียร์ backlog
และจัดการบั๊กเก่า ๆ ที่เกิดครั้งเดียวแล้วจบ
กระบวนการแบบนี้พบได้ทั่วไปมาก