จาก refactoring ที่แพงเกินทำได้ สู่ยุคที่ AI ทำให้ทดลองโครงสร้างใหม่ได้แทบฟรี
refactoring legacy code คือกระบวนการปรับโครงสร้างและคุณภาพของโค้ดระบบเดิมที่ซับซ้อนหรือเต็มไปด้วยหนี้ทางเทคนิค โดยไม่เปลี่ยนพฤติกรรมภายนอกของระบบ เป้าหมายคือทำให้โค้ดอ่านง่าย ดูแลต่อได้ และรองรับการเปลี่ยนแปลงในอนาคตได้ดีขึ้น แต่เดิมทีมวิศวกรรมจำนวนมากมองว่า refactoring legacy code เป็นงานหรูหราที่ไม่เคยมีเวลาพอ เพราะต้องแข่งขันกับการส่งฟีเจอร์ใหม่ตลอดเวลา ในช่วงยี่สิบปีที่ผ่านมา เหตุผลหลักที่ไม่แตะโค้ดเก่ามาจากมุมเศรษฐศาสตร์ การทำความเข้าใจระบบ ทดสอบ และปรับโครงสร้างใช้เวลาวิศวกรกลุ่มเดียวกับที่ต้องส่งฟีเจอร์ ทำให้หนี้ทางเทคนิคชนะโดยปริยาย แต่วันนี้สมการกำลังเปลี่ยนเมื่อ AI code agents เข้ามาแบกงานตั้งต้นที่เคยกินเวลาหลายวันให้เหลือไม่กี่นาที "The refactor you could never afford is now a few minutes away" เป็นประโยคที่สะท้อนจุดเปลี่ยนอย่างชัดเจน
AI code agents ลดต้นทุนด้วยการทำงานตั้งต้นแบบอัตโนมัติ แต่ไม่ใช่ฮีโร่แบบไร้ข้อจำกัด
จุดที่แพงที่สุดของงานกับ legacy code ไม่ใช่การเขียนโค้ด แต่คือการตั้งต้นทำความเข้าใจว่าเรากำลังมองอะไรอยู่ก่อนจะกล้าเปลี่ยน AI code agents กำลังบดงานส่วนนี้ให้สั้นลงอย่างเห็นได้ชัด ตัวอย่างเช่น การชี้เครื่องมือฟื้นฟูสถาปัตยกรรมไปยังโค้ดเบสที่ไม่คุ้น แล้วให้มันสร้างแผนที่ว่าฟังก์ชันไหน deploy ที่ไหน ระบบถูก build อย่างไร หน่วยและเทสต์อยู่ตรงไหน ใช้เทคโนโลยีอะไร จากนั้นใช้ agent สร้างข้อกำหนดจากพฤติกรรมจริงและสร้าง safety net เบื้องต้น ผลลัพธ์อาจไม่สมบูรณ์แต่การมี coverage 70–80% ทำให้การทดลองเปลี่ยนโครงสร้างครั้งแรกกลายเป็นเรื่องที่ทำได้อย่างปลอดภัยมากขึ้น โดยที่การสร้างชุดเทสต์ก้อนแรกก็ใช้เวลาเพียงไม่กี่นาที อย่างไรก็ตาม agents มีแนวโน้มจะเลือก “การเปลี่ยนที่เล็กที่สุดที่ผ่านเทสต์” ซึ่งถ้าปล่อยไว้ยาวนานจะกัดกร่อนสถาปัตยกรรมเดิมอย่างเงียบ ๆ นี่คือเหตุผลว่าทำไมมนุษย์ยังต้องอยู่ในวงจรตัดสินใจเสมอ
อิสระในการทดลองบนโค้ดรก ๆ มาพร้อมข้อกำหนดใหม่ด้าน automated code verification
จุดน่าสนใจคือเมื่อ AI ทำให้การทดลอง refactoring ข้ามไฟล์จำนวนมากกลายเป็นงานที่พอทำเล่นได้ ประเด็นสำคัญจึงไม่ใช่ "จะกล้าแตะโค้ดไหม" แต่เป็น "จะรู้ได้อย่างไรว่าการแตะครั้งนั้นปลอดภัย" การมีระบบควบคุมเวอร์ชันช่วยให้ทีมสามารถมอง refactoring เป็นการทดลองที่ทิ้งได้ ไม่จำเป็นต้องรับเข้า main เพียงเพราะ agent เคยใช้เวลากับมันไปแล้ว ทว่า version control ทำให้ refactoring ที่แย่เป็นของทิ้งได้ก็จริง แต่สิ่งที่จะบอกเราว่าอะไรคือ refactoring ที่แย่ก่อนขึ้น production คือการตรวจสอบอิสระ แนวทางที่กำลังเด่นขึ้นคือ automated code verification แบบหลายชั้น ทั้งระดับคำนวณ ระดับการให้เหตุผล และระดับ runtime เพื่อให้สิ่งที่ชั้นหนึ่งพลาดมีอีกชั้นคอยจับ ที่สำคัญ ห้ามให้ agent ที่เสนอการเปลี่ยนเป็นคนอนุมัติการเปลี่ยนนั้นเอง เพราะ AI ไม่สามารถตรวจสอบตัวเองได้โดยปราศจากอคติ นี่ไม่ใช่ความหรูหราที่แลกทิ้งได้ภายใต้เดดไลน์ แต่เป็นเกราะกันบั๊กใหม่ที่อาจมองไม่เห็น
จากงานสาละวนสู่การตัดสินใจเชิงสถาปัตยกรรม: ทีมที่ปรับบทบาทได้ก่อนจะกำไรจากยุค agentic
เมื่อ AI code agents เริ่มรับช่วงงาน refactoring ซ้ำ ๆ ไป เช่น การจัดเรียงโครงสร้างไฟล์ตามแพทเทิร์น การกระจายโค้ดซ้ำ การห่อโค้ดเดิมด้วยเทสต์ก่อนเปลี่ยน บทบาทวิศวกรก็เปลี่ยนจากคนลงมือแก้ทุกบรรทัด เป็นคนออกแบบการเปลี่ยนและเป็นกรรมการตัดสินว่าการเปลี่ยนนั้นควรอยู่ต่อหรือถูกทิ้ง ทีมที่ฉลาดจะใช้ agent ทำให้โค้ดเบสเข้าสู่สภาพ “ดีพอให้คิดต่อ” แล้วใช้คนโฟกัสกับการวาง boundary ใหม่ การจัดสรรโมดูล และการรีวิวโค้ด แนวทางที่กำลังชัดคือการหมุน code maintenance loop แบบ agentic ที่ให้ agent ไปทยอยเกษียณหนี้ทางเทคนิคในพื้นหลังทีละเรื่อง พร้อมตรวจสอบด้วย engine วิเคราะห์โค้ดในแบบ closed-loop ก่อนเปิดเป็น pull request เพื่อรีวิวโดยมนุษย์ สิ่งนี้สอดคล้องกับภาพตอนต่อไปที่มุ่งไปยังโจทย์แรกของโครงสร้างจริง ๆ คือการวาดเส้นแบ่งโมดูลแรกใน monolith ที่ยังไม่มี boundary ชัดเจน ความท้าทายไม่ได้อยู่ที่เครื่องมืออีกต่อไป แต่อยู่ที่สติและหลักคิดของทีม
ยุคต่อไป: ลด technical debt ด้วย agentic loop และการออกแบบ boundary อย่างมีสติ
เมื่อการ refactoring ที่เคยทำไม่ไหวกลายเป็นงานที่อยู่ห่างออกไปแค่ไม่กี่นาที สิ่งที่ต้องยอมรับคือมาตรฐานด้านการตรวจสอบโค้ดต้องสูงขึ้นตาม ไม่ใช่ลดลง การทำ technical debt reduction ที่มีความหมายจึงไม่ใช่การปล่อย agent ไปกวาดโค้ดแบบไร้ขอบเขต แต่คือการออกแบบวงจรที่ทุกการแก้ไขถูกตรวจอย่างอิสระ และถูกจับผิดทั้งในเชิงพฤติกรรมและเชิงสถาปัตยกรรม ก่อนเข้าสู่ production อนาคตอันใกล้ของงานนี้กำลังมุ่งไปที่การผ่าระบบ fintech ขนาดใหญ่เพื่อจัด boundary โมดูลแรกใน monolith ที่ยังไม่มีเส้นแบ่งชัดเจน พร้อมสำรวจสาเหตุที่ boundary เหล่านี้ค่อย ๆ เบี่ยงไปตามกาลเวลา ขณะเดียวกันมีตัวอย่างของระบบที่ใช้เครื่องมืออย่าง SonarQube และ Remediation Agent เพื่อหมุน code maintenance loop ในพื้นหลัง ปลดหนี้ทางเทคนิคด้วยวิธี agentic และยืนยันทุกการแก้ไขแบบ closed-loop ก่อนส่งต่อให้รีวิว ทีมที่มอง agent เป็นคู่คิด ไม่ใช่เครื่องลัด จะเป็นทีมที่เปลี่ยนหนี้สะสมให้กลายเป็นโครงสร้างรองรับการเติบโตได้มากที่สุด






