- งานวิจัยล่าสุดระบุว่า เมื่อนักพัฒนาโอเพนซอร์สใช้เครื่องมือ AI กับโค้ดเบสที่ตนคุ้นเคยดี กลับทำให้เวลาในการทำงาน เพิ่มขึ้น 19%
- นักพัฒนา เชื่อว่า AI ทำให้ตนทำงานได้เร็วขึ้น แต่ในความเป็นจริงกลับช้าลง สะท้อน ช่องว่างระหว่างการรับรู้กับความเป็นจริง
- สาเหตุหลักคือ ข้อจำกัดในการถ่ายทอดความรู้ ระหว่าง AI กับ mental model ที่ละเอียดซับซ้อน (โครงสร้างความเข้าใจ) ที่นักพัฒนามีอยู่
- ตาม ทฤษฎีของ Peter Naur สิ่งสำคัญที่สุดในการเขียนโปรแกรมไม่ใช่โค้ด แต่คือ "mental model" ในหัวของนักพัฒนา
- นักบุกเบิกด้านวิทยาการคอมพิวเตอร์ชาวเดนมาร์ก และผู้ได้รับรางวัลทัวริงปี 2005 มีส่วนร่วมกับ สัญกรณ์ Backus-Naur Form (BNF) ที่ใช้ในการอธิบายไวยากรณ์ของภาษาโปรแกรม
- ใน มุมมองระยะยาว หากต้องการเข้าใจโปรเจ็กต์อย่างลึกซึ้ง การ เขียนโค้ดด้วยตนเองเพื่อสร้าง mental model เป็นสิ่งสำคัญ
ปรากฏการณ์ที่ AI ทำให้นักพัฒนาโอเพนซอร์สช้าลง
- จากงานวิจัยของ Metr พบว่า เมื่อใช้เครื่องมือ AI ความเร็วในการแก้ปัญหากลับช้าลง 19%
- ก่อนเริ่มงาน นักพัฒนาคาดว่า AI จะช่วยให้เร็วขึ้น 24% และแม้หลังทำงานเสร็จแล้วก็ยังเชื่อว่าตัวเองเร็วขึ้น 20% มากกว่าความจริง
- งานวิจัยนี้ศึกษากับ นักพัฒนาที่มีประสบการณ์ซึ่งดูแลโปรเจ็กต์โอเพนซอร์สที่ตนเข้าใจอย่างลึกซึ้งโดยตรง
- แม้ผลลัพธ์นี้จะไม่สามารถสรุปครอบคลุมนักพัฒนาทุกกลุ่มได้ แต่สำหรับกลุ่มนี้ มันแสดงให้เห็นว่า เครื่องมือ AI ส่งผลย้อนกลับต่อผลิตภาพ
- ในสภาพแวดล้อมองค์กร หรือสำหรับ นักพัฒนาทั่วไปที่ต้องปรับตัวเข้ากับโค้ดเบสใหม่ เครื่องมือ AI อาจมีบทบาทเชิงบวกต่อการเพิ่มผลิตภาพมากกว่า
ทำไม AI จึงทำให้นักพัฒนาโอเพนซอร์สที่เชี่ยวชาญช้าลง
- ตามบทความ “Programming as Theory Building” ของ Peter Naur ผลลัพธ์ที่แท้จริงของการเขียนโปรแกรมไม่ใช่โค้ด แต่คือ ‘mental model ของนักพัฒนาที่มีต่อโปรเจ็กต์’
- mental model นี้เป็นหัวใจของความเข้าใจระบบ การวินิจฉัยปัญหา และการปรับปรุงอย่างมีประสิทธิภาพ
- AI ที่อิง LLM ไม่สามารถเข้าถึง mental model ของนักพัฒนาได้โดยตรง และแม้จะให้ข้อมูลบางส่วนไปก็ยังเกิด การสูญเสียโดยเนื้อแท้ในกระบวนการถ่ายทอดความรู้
- ตัวอย่างเช่น เวลาเราฝากใครสักคนช่วยกล่อมเด็กให้หลับ แม้จะอธิบายไว้อย่างชัดเจน แต่บ่อยครั้งผลลัพธ์จริงก็ออกมาต่างจากที่ตั้งใจ
- การถ่ายทอด mental model มีความซับซ้อนอย่างยิ่ง และแทบเป็นไปไม่ได้ที่ AI จะซึมซับสิ่งนี้ได้จากข้อความเพียงอย่างเดียว
- ดังนั้น เมื่อมอบหมายงานในโปรเจ็กต์ที่ตนเข้าใจอย่างลึกซึ้งให้ AI ทำ กลับยิ่งทำให้ผลิตภาพลดลง
- ข้อมูลเชิงบริบทที่อุดมสมบูรณ์และความเข้าใจเชิงสัญชาตญาณของนักพัฒนา เป็นสิ่งที่ AI แทนที่ได้ไม่ง่าย
ควรห้ามใช้เครื่องมือ AI ในการทำงานจริงหรือไม่?
- ไม่จำเป็นต้องถึงขั้นนั้น เพราะข้อสรุปนี้ใช้กับ “คนที่ทำงานในโปรเจ็กต์ที่ตนรู้จักและเข้าใจดีอยู่แล้ว” เท่านั้น
- นักพัฒนาในองค์กรจำนวนมากมักต้องบำรุงรักษาโค้ดของรุ่นพี่ที่ออกจากทีมไปแล้ว หรือทำงานโดยยังไม่ได้เข้าใจโครงสร้างทั้งหมดของระบบอย่างลึกซึ้ง
- ในสภาพแวดล้อมแบบนี้ AI สามารถช่วยทำความเข้าใจโค้ดเบสได้อย่างรวดเร็วและสร้างการเปลี่ยนแปลงโค้ดโดยอัตโนมัติ ซึ่งช่วยเพิ่มผลิตภาพในระยะสั้นได้
- หากมองจากมุมของ การสร้างคุณค่าทางธุรกิจระยะสั้น และประสิทธิภาพที่ต้องการทันที เครื่องมือ AI อาจมีบทบาทเชิงบวกต่อผลิตภาพได้
การสร้าง mental model และ AI
- หากยังไม่มี mental model ต่อโปรเจ็กต์ LLM อาจช่วยเพิ่มผลิตภาพได้
- แต่หากแก่นแท้ของการพัฒนาซอฟต์แวร์คือ ‘การสร้าง mental model’ การพึ่งพา AI มากเกินไปอาจทำให้ความสามารถนี้ถดถอยลง
- หากต้องการเข้าใจโปรเจ็กต์อย่างลึกซึ้งและขับเคลื่อนการเปลี่ยนแปลงได้อย่างเชิงรุกในระยะยาว ประสบการณ์การเขียนโค้ดด้วยตนเองเป็นสิ่งจำเป็น
- ในทางกลับกัน หากเป็นงานลักษณะ ‘แค่ทำให้มันใช้งานได้’ การใช้ AI ก็อาจมีประสิทธิภาพกว่า
ประเด็นอภิปรายเพิ่มเติมและบทสรุป
- ด้วยเครื่องมือ AI ในระดับปัจจุบัน ยังยากที่จะเพิ่มผลิตภาพให้กับนักพัฒนาที่มี mental model เพียงพออยู่แล้ว
- ทิศทางที่ AI จะสามารถสนับสนุน mental model ได้อย่างเหมาะสม หรือยกระดับผลิตภาพของนักพัฒนาผู้เชี่ยวชาญแบบก้าวกระโดด ยังต้องอาศัยการวิจัยและพัฒนาอีกมาก
- ในอนาคตเมื่อโมเดลก้าวหน้ามากขึ้น อาจมีวันที่นักพัฒนามนุษย์ไม่จำเป็นต้องมี mental model ด้วยตนเองก็ได้ แต่ ในระดับปัจจุบัน ความเข้าใจและการเรียนรู้ด้วยตนเองยังเป็นสิ่งจำเป็น
- สุดท้ายแล้ว AI อาจเป็นอุปสรรคในสภาพแวดล้อมที่เราเข้าใจอย่างลึกซึ้งว่ากำลังทำอะไรอยู่ แต่จะเป็นเครื่องมือเพิ่มผลิตภาพได้ในสภาพแวดล้อมที่ผลลัพธ์รวดเร็วสำคัญกว่า
5 ความคิดเห็น
> นักพัฒนาเชื่อว่า AI ทำให้ตัวเองทำงานได้เร็วขึ้น
การวิจัยด้วย AI เร็วขึ้น ทำให้สามารถยกระดับคุณภาพได้ ดังนั้นแม้จะเป็นงานเดียวกัน ผลลัพธ์ก็น่าจะออกมามีคุณภาพสูงขึ้นเล็กน้อยไม่ใช่หรือครับ นักพัฒนาอาจกำลังคิดว่า หากจะพัฒนาให้ได้ตามระดับคุณภาพของผลลัพธ์หลังทำงาน การไปให้ถึงจุดนั้นด้วยความช่วยเหลือของ AI น่าจะเร็วกว่าการไปให้ถึงด้วยตัวคนเดียวหรือเปล่า
ถ้าตั้งแต่แรกไม่ได้ใช้ AI ก็อาจจะลงมือทำด้วยความรู้ที่ตัวเองมีมากขึ้นอีกนิด เลยทำให้เป็นแบบนั้นหรือเปล่า ก็อดคิดไม่ได้ครับ
> ในทางกลับกัน หากเป็นงานแบบ ‘แค่ทำให้มันรันได้’ การใช้ AI ก็อาจมีประสิทธิภาพ
ไม่ใช่แค่นักพัฒนาเท่านั้น แต่เพราะมีผู้คนหลากหลายแนวคิด เลยมีคนที่บังเอิญมาทำงานเป็นนักพัฒนา และเกลียดหรือกลัวการเขียนโค้ดหรือการอ่านโค้ด ยิ่งเป็นคนที่มีแนวคิดว่าแค่ให้มันรันได้ก็พอ มากกว่าจะตีความในมุมของโครงสร้างที่เป็นระบบหรือการบำรุงรักษา ก็ยิ่งดูเหมือนว่าจะพึ่งพาหรือศรัทธาใน AI อย่างมาก คิดแบบนั้นนะครับ ถ้าไม่ใช่ก็แล้วไป
การวัด "ผลกระทบของ AI" ต่อประสิทธิภาพการทำงานของนักพัฒนาโอเพนซอร์สที่มีประสบการณ์
ความคิดเห็นจาก Hacker News
ผมคิดว่าโพสต์บล็อกนี้หยิบยกปัจจัยเชิงรูปธรรมข้อหนึ่งที่น่าสนใจ ว่าเหตุใด AI จึงอาจทำให้ความเร็วในการพัฒนาช้าลงได้
ในงานวิจัยก็มีคำพูดอ้างอิงจากนักพัฒนาอยู่ด้วยในส่วน C.1.5 ลองดูได้
หลายคนอ่านงานวิจัยแล้วเจอปัจจัยหนึ่งที่ตัวเองรู้สึกตรง จึงสรุปได้ง่าย ๆ ว่า “ปัญหาข้อนี้ข้อเดียวคือเหตุผลที่ทำให้ช้าลง”
แต่ในความเป็นจริงมีหลายปัจจัยร่วมกัน (อย่างน้อย 5 ข้อที่น่าจะเป็นไปได้ และมากสุดอาจตัดทิ้งไม่ได้ถึง 9 ข้อ ดูตารางปัจจัยหน้า 11)
การวิเคราะห์สาเหตุแบบหลายมุมจึงสมเหตุสมผลกว่าสมมติว่ามีสาเหตุหลักเพียงข้อเดียว
ถ้าใครมีแผนจะลองทดลองด้วยตัวเอง ผมหวังว่าจะช่วยแชร์ผลลัพธ์กลับมาทางอีเมลในงานวิจัยด้วย
และสำหรับหัวข้อบทความที่ใช้ว่า “AI slows down open source developers. Peter Naur can teach us why” ผมคิดว่าถ้าจะให้แม่นยำกว่านี้ ควรเป็นประมาณว่า “ช่วงต้นปี 2025 AI ทำให้นักพัฒนาโอเพนซอร์สที่มีประสบการณ์ทำงานช้าลง Peter Naur ช่วยให้บริบทเพิ่มเติมต่อปัจจัยบางอย่างได้”
ถ้อยคำอาจเร้าอารมณ์น้อยลง แต่ผมคิดว่าความแม่นยำสำคัญกว่า
ขอบคุณอีกครั้งสำหรับบทความที่ยอดเยี่ยม ผมยังตามอ่านคอมเมนต์อยู่เรื่อย ๆ
กระทู้ก่อนหน้าที่เกี่ยวข้อง
ข้อความเต็มของงานวิจัย
การ์ตูน xkcd เรื่องการจัดการเวลา
Joel on Software: Things you should never do, part I
โค้ดที่ AI สร้างจำนวนมากแค่ถูกสร้างขึ้นมา ผ่านการทดสอบง่าย ๆ แล้วก็จบ มีโค้ดจำนวนไม่น้อยที่แม้แต่ตัวผู้ใช้เองก็ไม่ได้เข้าใจบริบททั้งหมดหรือเหตุผลของมันอย่างเพียงพอ
(พูดไว้ละเอียดกว่านี้ในส่วน C.2.7 ของ paper “การใช้เครื่องมือ AI ต่ำกว่าค่าเฉลี่ย”)
อ้างอิง: ปัญหา AI spam ตั้งแต่หลายปีก่อน
try:catchครอบกว้างเกินไปจนตามต้นตอปัญหายากขึ้น ส่วนตัวผมอยากให้ปัญหาแสดงออกมาเร็วและแรง (fail fast) เพื่อจะได้แก้ตรงจุดทันทีผมก็คิดคล้าย ๆ กัน แต่ไม่รู้จะอธิบายออกมายังไงดี
การตั้งชื่อว่า mental model นี่เหมาะมากเลยครับ ไว้คงต้องหยิบมาใช้บ่อย ๆ