• ในการพัฒนาซอฟต์แวร์ Bus Factor คือแนวคิดที่ใช้บอกว่าต้องมีผู้ถือครองความรู้เฉพาะกี่คนจึงจะยังดูแลโปรเจกต์ต่อไปได้ โดยเดิมนั้น ค่าต่ำสุดในกรณีเลวร้ายคือ 1
  • อย่างไรก็ตาม หลังจาก การเปิดตัว ChatGPT (30 พฤศจิกายน 2022) เมื่อ generative AI ถูกนำไปใช้กันอย่างแพร่หลาย หลายคนไม่ได้เก็บรักษาความรู้ไว้ด้วยตนเองอีกต่อไป แต่พึ่งพา AI แทน จนเกิดสถานการณ์ที่แทบจะเป็น Bus Factor 0
  • ในสายงานเขียนโปรแกรม นักพัฒนาจำนวนมากขึ้นเรื่อยๆ ใช้ โค้ดและฟังก์ชันที่ LLM สร้างขึ้น ตรงๆ โดยเลิกพยายามทำความเข้าใจ codebase และหันไปใช้ “vibe coding
  • ผลคือเมื่อถึงเวลาต้องแก้บั๊ก อุดช่องโหว่ความปลอดภัย หรือขยายฟีเจอร์ อาจต้องเผชิญกับสถานการณ์ที่ ไม่มีใครรู้ว่าเหตุใดโค้ดจึงถูกเขียนแบบนั้น
  • สิ่งนี้ก่อให้เกิดความเสี่ยงร้ายแรงต่อความน่าเชื่อถือและความปลอดภัยของซอฟต์แวร์ และตราบใดที่ วันที่ AI สามารถสร้างโค้ดที่สมบูรณ์แบบได้อย่างสมบูรณ์แบบ ยังมาไม่ถึง ข้อจำกัดเชิงรากฐานนี้ก็ยังคงอยู่

แนวคิดและประวัติของ Bus Factor

  • Bus Factor คือแนวคิดที่ แสดงเป็นตัวเลขว่าความรู้เฉพาะถูกแบ่งปันอยู่กับคนกี่คน
    • ตัวอย่าง: ถ้ามี 3 คนที่รู้วิธีกู้คืน database backup ได้ Bus Factor ของความสามารถนี้ก็คือ 3
  • ตามธรรมเนียมแล้วค่าที่แย่ที่สุดคือ 1 และหากคนคนนั้นสูญเสียความรู้นั้นไป ก็จะไม่สามารถดูแลโปรเจกต์ต่อได้
  • มนุษย์พยายามเอาชนะปัญหานี้ผ่านวิธีมากมาย เช่น การทำเอกสาร การสอน การถ่ายทอดความรู้ สัมมนา โรงเรียน ฯลฯ
    • นำไปสู่ความพยายามอย่างเป็นระบบในการสืบทอดและเก็บรักษาความรู้ โดยใช้ทั้งทรัพยากรบุคคลและเวลาเป็นจำนวนมาก

การนำ AI มาใช้และ Bus Factor 0

  • การเปิดตัว ChatGPT ในเดือนพฤศจิกายน 2022 เปิดยุค “AI First”
  • ในกระบวนการที่ AI สร้างโค้ดและฟังก์ชัน หลายคนถูกกันออกจากการเป็นผู้เก็บรักษาความรู้ และเริ่มพึ่งพาสิ่งที่ AI สร้างขึ้น ทำให้ความเข้าใจต่อโปรเจกต์ลดลงอย่างรวดเร็ว
  • ผลลัพธ์คือเกิด ภาวะที่ไม่มีผู้ถือครองความรู้อยู่เลย หรือก็คือ สถานการณ์ Bus Factor 0
  • โปรแกรมเมอร์มีแนวโน้มจะไม่เขียนหรือทำความเข้าใจโค้ดและฟังก์ชันด้วยตนเอง แต่ มอบหมายให้ AI ไปทั้งหมด
  • ในกระบวนการนี้ นักพัฒนาเริ่ม หลีกเลี่ยงการทำความเข้าใจ codebase และการทำเอกสาร แล้วเปลี่ยนไปเป็นรูปแบบที่เพียง ขอให้ AI อธิบายใหม่อีกครั้ง

ปัญหาของการเขียนโค้ดด้วย LLM

  • ต่อให้ยังไม่พูดถึงปัญหาคุณภาพโค้ด ประเด็นสำคัญคือ การอ่านและการบำรุงรักษานั้นยากกว่าการเขียนโดยเนื้อแท้
  • ในอดีต อย่างน้อยก็ยังมีเมนเทอร์หรือเอกสารคอยช่วยเหลือขั้นต่ำ แต่ในสภาพแวดล้อมที่พึ่งพา AI แม้แต่ตาข่ายนิรภัยแบบนี้ก็หายไป
  • ในการพัฒนาที่อิง LLM กระบวนการสร้างโค้ดไม่ได้ถูกบันทึกไว้ และ แม้แต่ AI เองก็จำบริบทของโค้ดที่มันสร้างไม่ได้
  • สุดท้ายแล้ว นักพัฒนาต้องตกอยู่ในสถานการณ์ที่ต้องวิเคราะห์และแก้ไข โค้ดที่ AI เขียน แต่มีบริบทไม่ชัดเจน
  • สิ่งนี้นำไปสู่ภาวะที่ ไม่มีใครรู้เจตนาและโครงสร้างของโค้ด เมื่อต้องแก้บั๊ก แพตช์ช่องโหว่ความปลอดภัย หรืออัปเกรด dependency

ความเสี่ยงจากมุมมองของผู้ใช้

  • ไม่ใช่แค่นักพัฒนา แต่ผู้ใช้เองก็เผชิญความเสี่ยงเช่นกัน
    • ซอฟต์แวร์ที่ให้อัปโหลดเอกสารส่วนตัว ข้อมูลบัตรเครดิต รูปถ่ายส่วนตัว หรือความคิดส่วนตัว อาจถูกสร้างขึ้นจาก โค้ดที่ไม่มีใครรู้โครงสร้างภายในและจุดประสงค์ของมัน
  • สิ่งนี้แฝงความเสี่ยงร้ายแรงในแง่ การคุ้มครองข้อมูลและความน่าเชื่อถือ และทำให้เกิดคำถามต่อ เสถียรภาพของบริการ

บทสรุป

  • vibe coding ที่นำไปสู่ Bus Factor 0 เป็นแนวทางที่มีข้อบกพร่องในระดับพื้นฐาน
  • นี่คือข้อจำกัดที่หลีกเลี่ยงไม่ได้ ตราบใดที่ AI ยังไม่สามารถสร้างโค้ดที่ถูกต้อง 100% จากพรอมป์ต์ที่ถูกต้อง 100% ได้
  • ดังนั้นในสถานการณ์ปัจจุบัน นอกเหนือจาก การใช้ AI แล้ว ก็ไม่อาจมองข้ามความสำคัญของ การเก็บรักษาความรู้ และ ความเข้าใจโค้ด ได้ และจำเป็นต้อง คงระบบการจัดการความรู้และการทำเอกสาร ไว้

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น