Vibe Coding ทำให้ Bus Factor กลายเป็น 0
(mindflash.org)- ในการพัฒนาซอฟต์แวร์ 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 แล้ว ก็ไม่อาจมองข้ามความสำคัญของ การเก็บรักษาความรู้ และ ความเข้าใจโค้ด ได้ และจำเป็นต้อง คงระบบการจัดการความรู้และการทำเอกสาร ไว้
3 ความคิดเห็น
หรือว่าบัสแฟกเตอร์กลายเป็นอนันต์ไปแล้วไม่ใช่เหรอ?
ถ้านักพัฒนาที่สังกัดบริษัทไม่มีความรู้ บัสแฟกเตอร์ก็จะเข้าใกล้ 0
ความคิดเห็นจาก Hacker News
การใช้ LLM เพื่อปั่นโค้ดจำนวนมหาศาลที่ไม่ได้รับการรีวิวออกมาเฉยๆ เป็นวิธีใช้งานที่ผิด โปรเจกต์แบบนั้นหมายความว่าในเชิงโครงสร้างมันกำลังเดินไปผิดทาง หรือถ้าเกิดบั๊กซับซ้อนขึ้นมาก็จะกลายเป็นสิ่งที่บำรุงรักษาไม่ได้ในไม่ช้า จุดแข็งที่แท้จริงของ LLM คือสถานการณ์แบบนี้: เมื่อต้องนำอัลกอริทึมที่เป็นที่รู้จักไปใช้กับโครงสร้างข้อมูลเดิมที่ซับซ้อน, เมื่อต้องตั้งโครงของข้อมูลทดสอบหรือ unit test ที่มี dependency เยอะ, เมื่อต้องทำ visual web editor กับ backend API พร้อมเพิ่มความสามารถในการบันทึกลง sqlite, หรือเมื่อต้องนำงานที่ทำซ้ำซึ่งแม้แต่ regular expression ที่ซับซ้อนก็ยังจัดการยาก ไปใช้กับ codebase ขนาดใหญ่ เป็นต้น ในทางปฏิบัติ LLM ทำให้งานที่เคยกินเวลาครึ่งวันหรือ 3 วัน เริ่มต้นได้ใน 2 นาที ประเด็นสำคัญคือ ต่อให้ LLM แก้ปัญหาที่ยากมากไม่ได้ ก็ยังเพิ่มผลิตภาพได้อย่างมหาศาล เราจึงหลุดพ้นจากงานซ้ำๆ น่าเบื่อ แล้วไปโฟกัสกับปัญหาที่น่าสนใจกว่าได้
ตอนแรกคิดว่า LLM จะจัดการงานเปลี่ยนแปลงซ้ำๆ ใน codebase ขนาดใหญ่ได้ภายใน 2 นาที แต่พอลองจริงกับโมเดลใหญ่หลายตัวกลับพบว่ายิ่ง context ซับซ้อน ความผิดพลาดยิ่งสะสม และบางครั้งยังมีการเปลี่ยนแปลงที่ไม่เกี่ยวข้องโผล่มาด้วย สุดท้ายเลยเชื่อถือไม่ได้ กับตัวอย่างขนาดเล็กมันสมบูรณ์แบบ แต่พอขนาดใหญ่ขึ้นก็เริ่มไม่ไหว จะปรับปรุงด้วย agentic loop ก็ได้ แต่พอต้องรันและรีวิวซ้ำๆ กลับใช้เวลามากกว่าเดิมมาก ให้ LLM เขียนโปรแกรมเพื่อทำงานเปลี่ยนแปลงนั้นแบบอัตโนมัติกลับน่าเชื่อถือกว่ามาก
ตัวอย่างที่ยกมาทั้งหมดก็ดูดี แต่จริงๆ แล้วกรณีใช้งานที่เป็นไปได้มีมากกว่านั้นมาก คุณพูดถึงกรณีของนักพัฒนาที่ชำนาญ แต่สำหรับคนที่ทักษะทางเทคนิคยังไม่มากหรือเพิ่งเริ่มเรียน LLM ก็ทำให้สิ่งที่พวกเขาทำได้เพิ่มขึ้นมากเช่นกัน งานที่เมื่อก่อนต้องจ่าย 100 ดอลลาร์ ตอนนี้ลองทำเองได้ใน 3 นาที ผลลัพธ์จะสมบูรณ์แบบและบำรุงรักษาได้ไหมกลับไม่ใช่เรื่องสำคัญนัก การได้เห็นความเป็นไปได้นั้นมีคุณค่ามากกว่า
ฉันเห็นด้วยกับความเห็นของคุณ แต่อยากเล่าประสบการณ์ขำๆ ล่าสุด ฉันขอให้ Claude เขียน unit test แล้วพอรีวิวก็พบว่าโค้ดของฉันเองมีบั๊กจริง และ test นั้นจับได้ แต่แทนที่ Claude จะแก้บั๊ก มันกลับทำให้ test ที่ล้มเหลวนั้นไม่ถูกรันไปเลยเพื่อให้ผ่าน เป็นเรื่องชวนขำในโลกจริง LLM อ่อนเรื่องการนิยาม requirement, การออกแบบสถาปัตยกรรม, และการเขียนสเปกให้ตรง requirement แต่มีจุดแข็งในงานอย่างการเขียนโค้ดที่ขอบเขตชัดและผลกระทบจำกัด
ฉันเคยลองใช้ขั้นกลางแบบให้ AI รีวิว PR อัตโนมัติก่อน แล้วค่อยทำ manual review การสร้างโค้ดใช้เวลา 5~10 นาที ส่วนการรีวิวและ commit เพิ่มเติมโดยทั่วไปใช้ 1~3 ชั่วโมง แต่ฉันก็ใช้วิธีนี้ได้ผลในหลายโปรเจกต์ (10~20k LOC, ราว 100 ไฟล์) ถ้าให้สเปกดี ฟีเจอร์จำนวนมากจะถูกทำออกมาได้แทบจะถูกต้องโดยไม่ต้องแก้เยอะ และส่วนใหญ่จะเป็นการ refactor ตาม feedback แน่นอนว่าถ้าทำงานไม่ถูกต้องจริงๆ บางครั้งก็ใช้เวลาเกือบทั้งวันในการแก้ แต่โดยรวมแล้วผลิตภาพดีขึ้น 3~5 เท่า สำหรับโปรเจกต์ขนาดใหญ่ ดูเหมือนว่าการแยกชิ้นส่วนและทำให้เป็นโมดูลจะดีกว่า
การพูดทำนองว่า "LLM ทำงานปริมาณ x วันเสร็จใน 2 นาที" ค่อนข้างเกินจริงเล็กน้อย เพราะไม่ได้รวมเวลารีวิวไว้ ถ้ารวมกระบวนการรีวิวและตรวจสอบจริง เวลาจะมากกว่านั้นมาก และอาจเผลอตกไปอยู่ใน “วิธีที่ผิด” ที่พูดถึงตอนต้นได้ด้วย
บทความนี้ยกปัญหาของการสร้างโค้ดด้วย AI มาได้หลายข้อ แต่ดูเหมือนจะไม่คำนึงถึงวิธีแก้ที่มีอยู่แล้วหรืออาจเกิดขึ้นในอนาคต แต่ก่อน ต่อให้ทีมลงแรงกับ codebase เพียงเล็กน้อย ก็ยังช่วยให้คนที่เพิ่งเข้ามาใหม่เข้าใจโค้ดได้ เลยสงสัยว่าเจ้าของบทความไม่ค่อยมีประสบการณ์กับ legacy code หรือคิดจริงๆ ว่าประเด็นที่ AI “ลืม context ทั้งหมดของกระบวนการเขียนครั้งแรก” เป็นสิ่งที่แก้ไม่ได้ เขายังดูเหมือนเข้าใจปัญหา Bus Factor 0 ว่าต้องแก้ได้อย่างถูกต้องสมบูรณ์ 100% เท่านั้น ทั้งที่จริงมนุษย์เองก็ไม่ได้ถูกต้อง 100% ตลอดเวลา แต่เราก็ยังเชื่อถือกัน
รู้สึกว่าบทความนั้นมองปัญหาแบบย่อเกินไปมาก ความจริงก็คือ เรามีข้อจำกัดอยู่แล้วตั้งแต่แรกว่าไม่อาจทำทุกอย่างร่วมกับผู้เขียนได้เสมอ แค่มีคู่ช่วยหรือ AI ที่คอยอธิบายได้ก็ถือว่าก้าวหน้าอย่างมากแล้ว มันเหมือนกำลังจินตนาการถึงโลกที่ไม่มีมนุษย์ แต่เราก็เจอสถานการณ์แบบนั้นบ่อยอยู่แล้ว
ฉันคือผู้เขียน เห็นด้วยกับข้อทักท้วงข้อแรก และคิดว่า AI จะค่อยๆ ลดช่องว่างนี้ได้ในอนาคต แต่กว่าจะถึงตอนนั้น ปัญหาบางอย่างอาจเกิดขึ้นไปแล้ว ยังมีปัญหาเรื่องโค้ดที่เหลืออยู่โดยไม่มีทั้งบริบทเชิงตรรกะหรือประวัติการแก้ไขด้วย มีคนพูดกันมากว่า AI “เรียนรู้ตลอดเวลา” แต่ในความเป็นจริง มันไม่ได้เรียนรู้อะไรจนกว่าจะมีโมเดลใหม่ออกมา มนุษย์เองก็ไม่แม่น 100% แต่ก็ไม่ใช่ Bus Factor 0 และการระบุปัญหากับแก้ปัญหาก็ง่ายกว่า ถ้าปัญหาอื่นๆ ถูกแก้ได้ ปัญหา bus factor ก็จะลดลงตามไปด้วย
ฉันเคยคิดเหมือนกันว่า ถ้าตอนต้องวิเคราะห์ legacy code ในอดีตมีเครื่องมือ AI ก็คงดี เคยมีสถานการณ์หลุดโลกจริงๆ แบบ "คนสุดท้ายที่แก้ไฟล์ Perl นี้ตอนนี้กลายเป็นผู้จัดการสาขาไปแล้ว ฉันต้องนัดประชุมกับเขาเองไหม?"
สำหรับคำถามว่า "ทำไมต้องถูกต้อง 100%?" ฉันคิดว่าคนที่วิจารณ์ AI กลับมักคาดหวังให้ AI เป็นคำตอบวิเศษที่สมบูรณ์แบบเสียเอง โทนมันคล้ายกับคนที่ต่อต้าน static typing แล้วบ่นว่า "มันยังจับ logical error ไม่ได้เลย"
ช่วงนี้ตามบล็อกต่างๆ มีภาพที่สร้างโดย AI มากเกินไป จนกลายเป็นรบกวนสมาธิ และหลายครั้งก็ไม่ได้ช่วยให้เนื้อหาดีขึ้นเลย
ไม่นานมานี้ฉันเข้าร่วมทีมที่มี codebase เละเทะ ทีมเดิมก็ออกไปแทบหมดแล้ว และคนที่ยังอยู่ก็ไม่ได้รู้โค้ดดีนัก เรียกได้ว่าเป็น Bus Factor 0 อย่างสมบูรณ์ ที่น่าประหลาดคือ AI กลับช่วยให้ความเร็วในการเข้าใจโค้ด การจับเจตนา และการดีบักดีขึ้นมาก เราเริ่มใช้ AI ดึงเอกสารออกมาจากตัวโค้ดเอง เอกสารหรือการบอกต่อปากต่อปากอาจบิดเบือนได้ แต่โค้ดคือตัวจริงของความจริง ด้วยความช่วยเหลือจาก AI เราสร้างสภาพแวดล้อมที่โค้ดอธิบายตัวเองได้ และรู้สึกว่าผลิตภาพเพิ่มขึ้นมาก
ก่อนยุค LLM ปัญหา Bus Factor ก็มีอยู่เสมอ บริษัทส่วนใหญ่ไม่ได้จัดโครงสร้างให้มีหลายคนเข้าใจงานแต่ละส่วนอย่างแท้จริง ถึงจะมีหลายคนถูกจัดให้ดูแลแต่ละพื้นที่ แต่งานก็เพิ่มขึ้นเรื่อยๆ จนสุดท้ายก็กลับไปสู่สถานการณ์ที่ไม่มีใครเข้าใจทั้งหมดอยู่ดี ถ้าจะหลีกเลี่ยงสิ่งนี้อย่างสมบูรณ์ก็ต้องมีการบริหารวิศวกรรมหนักมาก เช่น หมุนเวียนคนไปตาม codebase แต่โดยมากก็ทำไม่ได้เต็มที่เพราะแรงกดดันด้านความเร็ว ฉันสรุปประสบการณ์ย้อนหลังในฐานะ CTO เกี่ยวกับเรื่องนี้ไว้เป็นหนังสือ ที่นี่ และเปิดให้เข้าถึงได้ไม่ว่าคุณจะจ่ายเท่าไร ฉันคิดว่าหลักการของการสร้างระบบด้วย LLM ก็แทบไม่ต่างจากการทำงานในสภาพแวดล้อมที่ใช้ผู้รับเหมาภายนอก 10 คน
Bus Factor เป็นปัญหามาตั้งแต่ก่อน LLM และเป็นคำศัพท์เฉพาะที่ใช้กันมานานแล้ว TFA (บทความต้นฉบับ) กำลังวิจารณ์แนวโน้มที่เมื่อก่อน Bus Factor อาจอยู่ที่ 1 แต่ตอนนี้กำลังมุ่งไปที่ 0 เลย
ปัญหาไม่ใช่แค่งานมีปริมาณมากขึ้น แต่คือมันไม่ได้เดินไปในทิศทางที่ควรแนะนำมากขึ้นจริงๆ มีแต่รูปแบบการทำให้เสร็จลวกๆ เพื่อให้ทันเดดไลน์ซ้ำแล้วซ้ำอีก การวางอุปสรรคเชิงกระบวนการเพิ่มไม่กี่จุดแก้เรื่องนี้ไม่ได้
สมองของเรามักประหยัดพลังงานกับข้อมูลที่ไม่ได้ใช้บ่อย ยิ่งห่างจากบางอย่างก็ยิ่งเข้าใจได้น้อยลงหรือหลงลืมมันไป ต่อให้รีวิวโค้ดเองทั้งหมด ในที่สุดทักษะก็อาจถดถอยได้ มันคล้ายกับเวลาวิศวกรไปทำงานผู้จัดการนานๆ แล้วแทบแก้ปัญหาทางเทคนิคไม่ได้อีก ในระบบอัตโนมัติของรถยนต์ก็เหมือนกัน การให้มนุษย์คอยมีส่วนร่วมต่อเนื่องในช่วงกลางๆ (level2→5) เป็นเรื่องยาก และถ้าเครื่องจักรยังเชื่อถือได้ไม่ถึง 100% สุดท้ายก็จะเกิดปัญหา
มีจุดสำคัญมากในประเด็นนี้ คือจริงๆ แล้วเครื่องมือและ workflow แบบนี้เพิ่งอยู่ในระยะแรกเริ่มเท่านั้น ฉันมั่นใจว่าในอนาคต AI อาจแก้ปัญหาเหล่านี้ได้ดีกว่ามนุษย์ด้วยซ้ำ ฉันก็เคยทดลองใช้ LLM มาแล้ว ทั้งที่สำเร็จบางส่วนและล้มเหลวบ้าง แต่ในบางด้านมันแสดงความสามารถที่ยอดเยี่ยมอย่างชัดเจน LLM ไม่รู้สึกเบื่อที่จะอัปเดตเอกสาร คอมเมนต์ README หรือแม้แต่ ADR อย่างละเอียด ถ้ามีแนวทางและโครงสร้างที่ดีพอ codebase ที่ขับเคลื่อนด้วย LLM อาจกลับกลายเป็นสิ่งที่เข้าถึงได้ง่ายกว่าในระยะยาว เพราะมีแนวโน้มว่าจะมีเอกสารที่ดีกว่า
ฉันคิดว่าบทความนี้มองข้ามไปว่า ตัวโค้ดเองก็ทำให้เราอ่านเจตนาได้มากพอสมควร มนุษย์ รวมถึง LLM ด้วยก็น่าจะเป็นแบบนั้น เป็นสิ่งที่คาดเดาได้พอสมควร โดยทั่วไปเรามักแก้ปัญหาคล้ายๆ กันด้วยวิธีคล้ายๆ กัน ถ้าดูว่าโค้ดถูกเขียนอย่างไร ก็พอจะเห็นเบาะแสได้ว่าใครแก้ปัญหาอะไร เมื่อไร และทำไปทำไม แน่นอนว่ายังมีข้อมูลอีกมากที่ถูกซ่อนไว้ แต่เรื่องคล้ายกันนี้ก็เกิดขึ้นในองค์กรที่สมาชิกเปลี่ยนบ่อยอยู่แล้ว
ฉันเชื่อว่ากระบวนการคิดของมนุษย์สุดท้ายก็สะท้อนลงมาในโค้ด แต่ถึงอย่างนั้นมันก็ด้อยกว่าการมีคนที่ถามตรงๆ ได้มาก โดยทั่วไปเราจะทำ reverse engineering เฉพาะเมื่อจำเป็นจริงๆ แต่ใน legacy code สุดท้ายทุกคนก็ต้องทำ แต่มันไม่ใช่เรื่องดีในแง่ผลิตภาพ และ codebase ที่สร้างด้วย LLM ไม่ได้มีเจตนาเดียว แต่ปะปนไปด้วยเจตนาหลากหลายจากหลายคน ทำให้การดูเพียงบางชิ้นส่วนของโค้ดยิ่งทำให้สับสนว่าเจตนาเดิมคืออะไร มันอาจทำให้เราหลงคิดว่าโค้ดที่ AI สร้างขึ้นมีความหมายสอดคล้องและเข้มงวดแบบเดียวกับโค้ดที่มนุษย์เขียน ทั้งที่จริงแล้วกลับยิ่งตีความยากขึ้น
ความสามารถในการมองเจตนาจากโค้ดเพียงอย่างเดียวขึ้นอยู่กับขอบเขตและขนาด ถ้าเป็น Arduino ที่จำกัดไว้แค่ 32kB ก็ยังเข้าใจได้ง่าย แต่ถ้าเป็นแพลตฟอร์มซับซ้อนที่มีไมโครเซอร์วิสหลายสิบตัวพันกันอยู่ โดยเฉพาะถ้ามันถูกเขียนแบบ 'vibe coding' แล้วถ้ามันกลายเป็นความรับผิดชอบของฉัน ฉันคงอยากยอมแพ้ไปเลย
ฉันเห็นด้วยกับประเด็นและข้อสรุปของบทความนี้ แต่ตลอด 20 ปีที่ผ่านมา ฉันก็เจอสถานการณ์คล้ายกันหลายครั้งแล้ว (สภาพแวดล้อมที่ไม่มีใครให้ถามได้ ผู้รับผิดชอบตัวจริงออกไปหมด) LLM อาจทำให้เรื่องแบบนี้เกิดเร็วขึ้นบ้าง แต่ฉันคิดว่ามันไม่ใช่ปัญหาใหม่ทั้งหมด เท่ากับเป็นการเร่งปัญหาเก่าให้เร็วขึ้นมากกว่า ฉันยินดีที่มีคนหยิบประเด็นนี้ขึ้นมาพูด
ในทางกลับกันก็มีอีกมุมหนึ่ง ถ้าจัดทำเอกสาร การทดสอบ และการตั้งค่าต่างๆ ใน codebase ไว้อย่างดีเพื่อให้ AI ใช้งานได้คล่อง ฉันคาดว่าอีก 1 ปีข้างหน้า AI agent จะทำงานแบบเดิมได้เร็วขึ้นกว่าเดิม
ฉันสงสัยว่า AI Coding Tool จะเริ่มมีท่าทีแบบนักพัฒนาเดิมๆ ที่ว่า "โค้ดเก่าก่อนหน้านี้แย่หมด งั้นเขียนใหม่ทั้งหมดดีกว่า" ได้อย่างไร น่าสนใจเหมือนกันว่าในอนาคตระบบ CI/CD เองอาจกลายเป็นสิ่งที่ให้ AI เขียนใหม่ทั้งโปรเจกต์แบบยกชุดหรือไม่
ฉันคือผู้เขียน ถ้าเป็นอย่างที่พูดจริง Bus Factor ก็เพิ่มขึ้นแล้ว กล่าวคือ แก่นแท้คือข้อมูลไม่ได้ค้างอยู่แค่ในหัว แต่ถูกเก็บและคงอยู่ในรูปแบบต่างๆ