Grab ระบุว่าการนำ AI coding assistants มาใช้ช่วยเร่งการพัฒนาและเพิ่มปริมาณการเปลี่ยนแปลงโค้ดต่อครั้ง ซึ่งนำมาซึ่งโอกาสในการเกิดข้อบกพร่องและการขัดข้องมากขึ้น เนื่องจากทีมผลิตภัณฑ์หลายทีมมีการส่งคำขอรวมโค้ด (merge requests) เข้ามาอย่างต่อเนื่อง
การล่มของแอปพลิเคชันไม่เพียงแต่ส่งผลเสียต่อประสบการณ์ผู้ใช้ แต่ยังกระทบต่ออันดับใน Google Play ด้วย เนื่องจากสาเหตุการล่มบางครั้งไม่มี stack trace ที่ชัดเจน ทำให้การค้นหาสาเหตุต้องอาศัยการเปรียบเทียบหลายส่วนประกอบ เช่น ไทม์ไลน์การปล่อย และข้อมูลเซสชัน
แนวทางการป้องกันแบบหลายชั้นของ Grab ใช้กลยุทธ์ Shift-left โดยตรวจจับข้อผิดพลาดตั้งแต่เนิ่นๆ ผ่านกระบวนการต่างๆ ตั้งแต่ก่อนรวมโค้ดไปจนถึงหลังการปล่อยเวอร์ชัน
เครื่องมือที่ใช้ประกอบด้วย static code analyzers เช่น Android Lint และ SwiftLint, การทดสอบอัตโนมัติและด้วยมือ, และ Grab Early Access (GEA) ซึ่งเป็นด่านก่อนการผลิตจริง โดยมีการใช้ Staged rollout เพื่อจำกัดผู้ใช้กลุ่มเล็กๆ ในช่วงแรก และใช้ Firebase Crashlytics กับ BigQuery สำหรับการตรวจสอบแบบเรียลไทม์
นอกจากนี้ ยังมีการทำ automated triage และ post-mortem analysis เพื่อรวบรวมข้อมูลและปรับปรุงกฎการตรวจสอบ (lint rules) อย่างต่อเนื่อง
ศัพท์ที่ควรรู้
- AI coding assistants – เครื่องมือช่วยเขียนโค้ดด้วย AI ที่ช่วยเร่งกระบวนการพัฒนาซอฟต์แวร์
- Merge requests – คำขอรวมโค้ด ซึ่งเป็นกระบวนการรวมโค้ดจากนักพัฒนาเข้าสู่โค้ดหลักของโปรเจกต์
- Shift-left strategy – กลยุทธ์การตรวจจับข้อผิดพลาดตั้งแต่เนิ่นๆ โดยการนำการทดสอบไปไว้ในขั้นตอนการพัฒนาให้เร็วที่สุด
- Static code analyzers – โปรแกรมที่วิเคราะห์โค้ดโดยไม่ต้องรันโปรแกรม เพื่อหาข้อผิดพลาด เช่น Android Lint และ SwiftLint
- Staged rollout – การปล่อยเวอร์ชันใหม่ให้กับผู้ใช้เพียงกลุ่มเล็กๆ ในช่วงเริ่มต้น เพื่อเฝ้าระวังปัญหา
ที่มา: infoq.com