สรุปบทเรียน 8 ปีแห่งการรอคอย สู่ 3 เดือนที่สร้างเสร็จด้วย AI
บทความนี้ถ่ายทอดประสบการณ์ของ Lalit Maganti ที่พยายามสร้างเครื่องมือสำหรับ SQLite มานานกว่า 8 ปี แต่โปรเจกต์มักจะติดขัดเพราะความซับซ้อนและน่าเบื่อ จนกระทั่งเขาได้นำ AI เข้ามาเป็นตัวช่วยในการทำงานอย่างจริงจัง
1. กับดักของ "Vibe-coding" และการก้าวข้าม Spaghetti Code
ในช่วงแรก Lalit ลองใช้วิธีที่เรียกว่า Vibe-coding คือการปล่อยให้ AI (Claude Code) เป็นผู้ตัดสินใจเกือบทั้งหมด ทั้งการวาง Design และการ Implementation ผลลัพธ์ที่ได้คือเขาสามารถสร้าง Prototype ที่ใช้งานได้จริงภายในเวลาอันสั้น แต่ปัญหาที่ตามมาคือ Codebase กลายเป็น Spaghetti ที่ซับซ้อนจนเขาไม่สามารถควบคุมหรือต่อยอดในระยะยาวได้
เขาสรุปบทเรียนว่า แม้ AI จะพิสูจน์ได้ว่าแนวทางนั้น Viable (เป็นไปได้) แต่การขาดการควบคุมจากมนุษย์ทำให้โครงสร้างพังทลาย เขาจึงตัดสินใจ Restart ใหม่ทั้งหมดจาก Scratch
2. AI ในฐานะ Research Assistant ที่ทรงพลังที่สุด
สิ่งที่ให้ Value สูงที่สุดเมื่อเทียบกับเวลาที่เสียไปไม่ใช่การให้ AI เขียน Code แต่คือการใช้ AI ในการทำ Research * แทนที่จะต้องนั่งอ่านเอกสารหรือทำความเข้าใจการทำงานของ SQLite ที่ซับซ้อนด้วยตัวเองทั้งหมด เขาใช้ AI ช่วยเสนอแนวทางและอธิบายแนวคิดยากๆ (เช่น Wadler-Lindig สำหรับการทำ Formatter)
AI ช่วยย่นระยะเวลาการเรียนรู้จากหลายวันให้เหลือเพียงไม่กี่ชั่วโมง ทำให้เขาสามารถข้ามผ่านช่วงเวลาที่น่าเบื่อและยากลำบากไปได้เร็วขึ้น
3. ความสำคัญของ Mental Model และความเสี่ยงของการ "Lost Touch"
ประเด็นที่น่าสนใจมากคือเรื่อง Mental Model ของนักพัฒนาต่อ Codebase * เมื่อเราปล่อยให้ AI เขียน Code ในปริมาณมหาศาล เราจะเริ่มสูญเสียความเข้าใจในรายละเอียดเชิงลึก หรือที่เรียกว่าการ Lost touch * เมื่อไม่มี Mental Model ที่ชัดเจน การสื่อสารกับ AI จะเริ่มติดขัด กลายเป็นเหมือนผู้บริหารที่ไม่เข้าใจ Code แล้วไปสั่งงานที่ทำไม่ได้จริง
Lalit แก้ปัญหานี้ด้วยการกลับมาเป็นคนคุมทิศทางและตัดสินใจเองทั้งหมด (Taking ownership) โดยใช้ AI เป็นเพียง "Autocomplete on steroids" เท่านั้น
4. Implementation vs. Design
บทสรุปสำคัญจากโปรเจกต์นี้คือ:
AI คือ Force Multiplier ที่ยอดเยี่ยมสำหรับการ Implementation (เขียน Code ที่ชัดเจน, ทำงานซ้ำๆ, สร้าง Unit Test)
แต่ AI เป็นตัวแทนที่อันตรายสำหรับเรื่อง Design และ Architecture เพราะ AI ไม่มีรสนิยม (Taste) และไม่มีความเข้าใจเรื่องบริบทของเวลาหรือความรู้สึกของผู้ใช้งาน (UX)
บทสรุป: หัวใจสำคัญของการพัฒนาซอฟต์แวร์ในยุค AI ยังคงอยู่ที่มนุษย์ต้องวาง Fundamental Foundation (รากฐานที่แข็งแรง) และโครงสร้างที่ชัดเจน เพราะสุดท้ายแล้ว "Simple data structure wins all algorithm" และ AI จะทำงานได้ดีที่สุดเมื่อทำงานภายใต้การกำกับดูแลของนักพัฒนาที่มี Mental Model แม่นยำเท่านั้น