สารบัญ
ทุกบทความในซีรีส์นี้มาจากการที่ผมคุยกับ AI แล้วค้นข้อมูลเพิ่มเติม ผมเป็นคนกำหนดทิศทาง ให้ AI ช่วยสรุป วิเคราะห์ และเรียบเรียงออกมาเป็นบทความครับ
ตอนที่ 8 จบที่ภาพวง SDLC ครบวง
ทุกช่องมีเครื่องช่วยแล้ว ยกเว้นช่องเขียนโค้ด
ฝนยืนมองกระดานแล้วถามว่า ถ้าช่องนั้นมีผู้ช่วยบ้างล่ะ
ตอนนี้ผู้ช่วยมาแล้วครับ
ฝน ร้าน ทุกคนในร้าน และตัวเลขในงานของทีมฝน เป็นตัวอย่างสมมติครับ ส่วนเครื่องมือ เหตุการณ์ และตัวเลขจากงานวิจัยที่เล่าถึง มีอยู่จริง
มิถุนายน 2022 ผู้ช่วยเข้ามาในช่องเขียนโค้ด
ฝนอายุ 52 แล้ว
มิวที่เข้าทีมวันแรกในตอนที่ 8 ทำงานมาได้ 3 ปี
การ์ดจากลูกค้า 40 ใบยังรออยู่
ใบแรกต่อยอดจากปุ่มหัวใจของมิวเอง
“แจ้งเตือนเมื่อของที่ชอบลดราคา”
21 มิถุนายน 2022 GitHub เปิดให้ทุกคนจ่ายเงินใช้ GitHub Copilot ได้ หลังทดลองใช้แบบจำกัดมาตั้งแต่กลางปี 2021
GitHub เรียกมันว่า “AI pair programmer” เพื่อนนั่งเขียนโค้ดข้างๆ ที่เป็น AI
ทีมฝนลองกับการ์ดใบนี้
ก่อนมี Copilot
มิวต้องเขียนฟังก์ชันเทียบราคาเก่ากับราคาใหม่ ราว 40 บรรทัด
ต้องจัดการวันที่ ทศนิยม และกรณีที่ไม่มีราคาเก่า
เปิด Stack Overflow ดูไปด้วย ใช้เวลาเกือบชั่วโมง
หลังมี Copilot
มิวพิมพ์ comment บรรทัดเดียว
// check if price dropped more than 10%
แล้วตัวหนังสือสีเทาจางๆ ก็โผล่ขึ้นมาใต้บรรทัดนั้น เป็นฟังก์ชันทั้งก้อน
มิวอ่านดู แล้วกด Tab
2 นาที
AI เติมโค้ดได้ยังไง?
AI เดาบรรทัดถัดไปจากสิ่งที่อยู่บนจอ เหมือนแป้นพิมพ์มือถือที่เดาคำถัดไปให้ แต่เดาเป็นโค้ด
ตอนพิมพ์ข้อความในมือถือ พอพิมพ์ “พรุ่งนี้เจอกัน” แป้นพิมพ์ก็เสนอ “กี่โมง” ขึ้นมา
มันไม่ได้รู้ว่าพรุ่งนี้เราจะไปไหน มันแค่เคยเห็นคนพิมพ์ต่อกันแบบนี้บ่อยๆ
Copilot ก็คล้ายกัน แต่เคยเห็นโค้ดมาเยอะมาก
ตัวที่อยู่ข้างหลัง Copilot ตอนแรกชื่อ Codex ของ OpenAI ฝึกจากโค้ดสาธารณะบน GitHub
ทีม OpenAI เขียนรายงานเรื่อง Codex ไว้กลางปี 2021 และบอกตรงๆ ว่ามันอาจเสนอโค้ดที่ดูถูก แต่ไม่ได้ทำสิ่งที่คนใช้ต้องการ
สิ่งที่มันเห็น คือไฟล์ที่เปิดอยู่ตรงหน้า
มันไม่ได้รู้จักร้านของฝน ไม่รู้ว่าระบบทั้งหมดต่อกันยังไง
มันแค่เดาเก่งมาก

AI ทำให้เร็วขึ้นจริงมั้ย?
เร็วขึ้นจริงกับงานเล็ก ใหม่ และโจทย์ชัด ตัวเลขที่คนพูดถึงกันมากที่สุดมาจากงานทดลองแบบนั้น
กันยายน 2022 GitHub เผยผลทดลอง
ให้นักพัฒนา 95 คนเขียน HTTP server ด้วย JavaScript
กลุ่มที่ไม่มี Copilot ใช้เฉลี่ย 161 นาที
กลุ่มที่มี Copilot ใช้ 71 นาที
เร็วกว่าราว 55%
ตัวเลขนี้ขึ้นหัวข่าวไปทั่ว
แต่ผมว่าต้องดูด้วยว่าโจทย์เป็นแบบไหน
เป็นงานเล็ก เริ่มจากศูนย์ ไม่มีโค้ดเก่าให้ต้องเข้าใจ และบอกชัดว่าต้องได้อะไร
ทีมฝนก็เจอแบบเดียวกัน
งานที่ซ้ำๆ เช่นฟอร์ม หน้าตั้งค่า หรือโค้ดเชื่อมข้อมูลตามแบบเดิม เร็วขึ้นเห็นๆ
แต่งานที่ต้องแก้โค้ดเก่าของร้าน ที่ AI ไม่เคยเห็น เร็วขึ้นไม่เท่าไหร่

พฤศจิกายน 2022 วางข้อความ error แทนการค้น
30 พฤศจิกายน 2022 OpenAI เปิดให้ลองใช้ ChatGPT ฟรี
สัปดาห์ต่อมา มิวเจอ error แปลกๆ ตอนส่งแจ้งเตือนราคา
แบบเดิม
ก๊อป error ไปค้นใน Google เปิด Stack Overflow 3 แท็บ อ่านว่าคำตอบไหนตรงกับเรา
20 นาที
แบบใหม่
วาง error ลงในช่อง chat แล้วพิมพ์ว่า “อธิบายเป็นภาษาไทยหน่อย”
ได้คำอธิบายพร้อมวิธีแก้
1 นาที
ไม่ใช่แค่มิว
งานวิจัยที่ตีพิมพ์ปี 2024 พบว่าภายใน 6 เดือนหลัง ChatGPT ออกมา คนเข้าไปถามตอบใน Stack Overflow ลดลงราว 25% เมื่อเทียบกับเว็บถามตอบอื่นที่ ChatGPT ช่วยได้น้อยกว่า
ที่ที่นักพัฒนาไปหาคำตอบ เปลี่ยนไปในไม่กี่เดือน

ผู้ช่วยในทุกช่องของวง
ฝนหยิบภาพวง SDLC จากตอนที่ 8 มาแปะกระดานอีกครั้ง
แล้วลองดูทีละช่อง ว่าผู้ช่วยเข้ามาตรงไหนได้บ้าง
วางแผน เก็บความต้องการ: มิววางอีเมลยาวของลูกค้าลงใน chat ให้ร่างการ์ด user story พร้อมเงื่อนไขว่าเสร็จ 3 ข้อ PM ตัดออกหนึ่งข้อ เพราะลูกค้าไม่ได้ขอจริง
วิเคราะห์: มิวถาม chat ว่างานนี้จะแตะโค้ดส่วนไหนบ้าง ฝนต้องเช็กซ้ำ เพราะมันเห็นแค่โค้ดที่เราวางให้ดู
ออกแบบ: chat เสนอวิธีส่งแจ้งเตือน 3 แบบ พร้อมข้อดีข้อเสีย ฝนเลือกแบบที่สอง เพราะรู้ว่าเครื่องของร้านรับแบบไหนได้
เขียนโค้ด: Copilot เติมโค้ดให้ทีละก้อน มิวอ่านแล้วกดรับ หรือไม่รับ
ทดสอบ: AI ร่าง unit test ให้ 12 ข้อในนาทีเดียว มิวยังต้องอ่านทุกข้อ
ปล่อยของ: AI ช่วยเขียน config ของ pipeline ส่วนตัว pipeline จากตอนที่ 6 ยังเหมือนเดิม
ดูแลระบบ: ตีสองมีสัญญาณเตือน คนเวรวาง log ลงใน chat ให้ช่วยอธิบาย แต่คนเวรเป็นคนตัดสินว่าจะ rollback มั้ย
ดูแลต่อ: ก่อนแก้โค้ดเก่า มิวให้ AI อธิบายก่อนว่าโค้ดนี้ทำอะไร comment ข้อความ commit และคู่มือสั้นๆ AI ก็ร่างให้ มิวแก้ต่อ
ทุกช่องเหมือนกันหมด
AI ช่วยร่าง คนตัดสิน
และ AI ตอบเฉพาะตอนที่มีคนถาม
ไม่มีใครถาม มันก็นิ่ง

กับดักที่ 1 package ที่ไม่มีอยู่จริง
ระหว่างทำแจ้งเตือนราคา chat แนะนำให้ลง package ชื่อ “price-watch”
ชื่อฟังดูดี ตรงงานพอดี
มิวลองค้นในที่แจกกลาง
ไม่มี package ชื่อนี้
AI แต่งชื่อขึ้นมาเอง เพราะชื่อแบบนี้ “ฟังดูน่าจะมี”
ฝนบอกว่าเรื่องนี้น่ากลัวกว่าที่คิด
ถ้าคนร้ายรู้ว่า AI ชอบแต่งชื่อไหน ก็ไปจดชื่อนั้นไว้ก่อน แล้วใส่ malware ลงไป
คนต่อไปที่ทำตาม AI โดยไม่ตรวจ ก็ติดตั้งของคนร้ายเข้าเครื่องเอง
งานวิจัยปี 2024 ลองให้ AI 16 ตัวเขียนโค้ดกว่า 5 แสนครั้ง พบว่า 19.7% ของ package ที่ AI แนะนำ ไม่มีอยู่จริง
ปีต่อมา คนตั้งชื่อการโจมตีแบบนี้ว่า slopsquatting
ต้นไม้ package กับ Dependabot จากตอนที่ 8 ยังต้องมีเหมือนเดิม และต้องเพิ่มอีกข้อ คือเช็กก่อนว่าชื่อนั้นมีจริง และใครเป็นคนทำ

กับดักที่ 2 โค้ดที่ใช้ได้ แต่ไม่ปลอดภัย
หน้าค้นหาสินค้า Copilot เติมโค้ดดึงข้อมูลให้
ใช้ได้ ผลถูก test ผ่าน
แต่รุ่นพี่ที่ review เห็นว่าโค้ดเอาคำที่ลูกค้าพิมพ์ ไปต่อเป็นคำสั่งฐานข้อมูลตรงๆ
ถ้ามีคนพิมพ์คำสั่งแปลกๆ ลงช่องค้นหา ก็อาจสั่งฐานข้อมูลของร้านได้
ช่องโหว่แบบนี้เรียกว่า SQL injection เป็นช่องโหว่เก่าที่รู้จักกันมานาน
ปี 2021 ทีมจาก NYU ลองให้ Copilot เขียนโค้ด 1,689 ชิ้น ใน 89 สถานการณ์ที่เสี่ยงเรื่องความปลอดภัย
ราว 40% มีช่องโหว่ที่อยู่ในรายชื่อช่องโหว่ยอดนิยม
AI เรียนจากโค้ดสาธารณะ ซึ่งมีทั้งโค้ดดีและโค้ดที่มีช่องโหว่ มันเลยเขียนได้ทั้งสองแบบ
ครั้งนี้ test จับไม่ได้ คนตรวจจับได้
กับดักที่ 3 test ที่เห็นด้วยกับบั๊ก
ทีมตั้งไว้ว่า ลดราคาตั้งแต่ 10% ขึ้นไป ต้องแจ้งเตือน
ของชิ้นหนึ่งลดพอดี 10% แต่ไม่มีแจ้งเตือน
โค้ดเขียนว่า “มากกว่า 10” แทน “ตั้งแต่ 10”
แปลกตรงที่ test 12 ข้อที่ AI ร่างให้ ผ่านหมด
มิวเปิดดู test ข้อหนึ่งเขียนไว้ว่า ลด 10% ต้องไม่แจ้งเตือน
AI ร่าง test จากโค้ดที่มีอยู่ ไม่ได้ร่างจากการ์ด
โค้ดผิดยังไง test ก็ผิดตามแบบนั้น แล้วยืนยันว่าบั๊กคือของถูก
ฝนชี้กลับไปที่ตัว V จากตอนที่ 8
ทดสอบต้องมาจากขาซ้าย คือความต้องการและการออกแบบ
ไม่ใช่มาจากก้นตัว V ที่เป็นโค้ด
ถ้าเอา test มาจากโค้ด ก็เหมือนให้คนทำข้อสอบเป็นคนเขียนเฉลยเอง

ทำไมคอขวดย้ายไปอยู่ที่คนตรวจ?
เพราะ AI ทำให้เขียนโค้ดเร็วขึ้นมาก แต่ทุกบรรทัดยังต้องมีคนอ่านและตัดสินเหมือนเดิม
กลางปี 2023 ทีมฝนเปิด pull request มากกว่าเดิมราว 3 เท่า
รุ่นพี่คนที่ตรวจงานเริ่มจมกองงาน
pull request รอตรวจเป็นแถว
ต้องถามตัวเองทุกครั้งว่า โค้ดชิ้นนี้ผมเข้าใจจริงมั้ย หรือแค่ดูเหมือนถูก
ต้นปี 2024 GitClear วิเคราะห์โค้ดที่ถูกแก้กว่า 153 ล้านบรรทัด ตั้งแต่ปี 2020 ถึง 2023
พบว่าช่วงนั้นมีโค้ดที่ก๊อปวางซ้ำมากขึ้น และโค้ดที่ต้องถูกแก้หรือถูกลบภายในสองสัปดาห์ก็มากขึ้น
เขาบอกเองว่านี่คือสิ่งที่เกิดพร้อมกัน ยังพิสูจน์ไม่ได้ว่า AI เป็นต้นเหตุ
แต่ทีมฝนรู้สึกได้
เขียนเร็วขึ้น แต่ต้องกลับมาแก้บ่อยขึ้น
ปี 2023 ผู้ช่วยขยับเข้ามาใกล้ขึ้นอีก
มีนาคม 2023 GitHub เปิดทดลอง Copilot Chat ให้คุยได้ในตัวโปรแกรมเขียนโค้ดเลย
เดือนเดียวกัน Cursor โปรแกรมเขียนโค้ดที่ใส่ AI ไว้ตั้งแต่ต้น ก็มีให้โหลดใช้แล้ว
แต่ยังเหมือนเดิม คนถาม คนรับ
| เครื่องมือยุคนั้น | ทำอะไร | ต่อมากลายเป็น |
|---|---|---|
| GitHub Copilot (2021-2022) | เติมโค้ดสีเทา กด Tab รับ | ทุกวันนี้มีทั้งช่อง chat และโหมด agent ที่ทำงานเองหลายขั้น (เล่าในตอนหน้า) |
| ChatGPT (2022) | ถามตอบ อธิบาย error ร่างโค้ด | ผู้ช่วยแบบ chat ที่ใช้กันทั่วไป |
| Copilot Chat, Cursor (2023) | เอา chat เข้ามาอยู่ในโปรแกรมเขียนโค้ด | ยังพัฒนาต่อ และจะกลับมาในตอนหน้า |

สิ่งที่ผมได้จากยุคนี้
ลองทำเอง
ปลายปี 2023 การ์ดในคิวลดจาก 40 เหลือ 25
เร็วขึ้นจริง
แต่ทุกบรรทัดยังต้องมีคน
คนพิมพ์คำถาม คนก๊อปวาง คนกดรับ คนรัน test คนแก้ คนเปิด pull request
บ่ายวันหนึ่ง ฝนนั่งดูมิวทำงาน
มิวก๊อป error จากหน้าจอคำสั่ง ไปวางใน chat
ก๊อปคำตอบกลับมาวาง รันใหม่ เจอ error ใหม่
วนแบบนี้ 15 รอบในบ่ายเดียว
ผมว่าเรื่องสำคัญของตอนนี้คือ AI ช่วยเร็วจริง แต่คนต้องรู้ว่ามันเห็นอะไร ไม่เห็นอะไร และยังต้องตรวจทุกอย่างที่มันให้
เก็บศัพท์
| ศัพท์ | ความหมายแบบภาษาคน |
|---|---|
| AI assistant | ผู้ช่วยที่ตอบเมื่อเราถาม ทีละคำถาม คนเป็นคนตัดสินทุกครั้ง |
| GitHub Copilot | ผู้ช่วยที่เติมโค้ดให้ระหว่างพิมพ์ |
| ghost text | โค้ดสีเทาจางที่ AI เสนอขึ้นมา กด Tab เพื่อรับ |
| Codex | ตัว AI ของ OpenAI ที่ฝึกจากโค้ดสาธารณะ อยู่ข้างหลัง Copilot รุ่นแรก |
| ChatGPT | ผู้ช่วยแบบ chat ที่ถามตอบเป็นภาษาคนได้ |
| prompt | คำสั่งหรือคำถามที่เราพิมพ์ให้ AI |
| hallucination | ตอนที่ AI แต่งของที่ไม่มีอยู่จริงขึ้นมา แต่พูดอย่างมั่นใจ |
| slopsquatting | คนร้ายจดชื่อ package ที่ AI ชอบแต่ง แล้วใส่ malware ไว้ |
| SQL injection | ช่องโหว่ที่คนพิมพ์คำสั่งแปลกๆ ลงช่องกรอก แล้วสั่งฐานข้อมูลได้ |
| code churn | โค้ดที่เขียนแล้วต้องถูกแก้หรือลบในเวลาไม่นาน |
| คอขวด | จุดที่งานไปรอติดกันอยู่ ทำให้ทั้งสายช้า |
จดบันทึก
ถ้าเพิ่งเข้ามาอ่านตอนนี้ ย้อนไปเริ่มที่ตอนที่ 1 ได้ครับ
ตอนที่ 2 สอนว่ายิ่งรู้ว่าผิดช้า ยิ่งเจ็บ
ตอนที่ 3 สอนว่ารอยต่อระหว่างคนคือที่ที่ความผิดซ่อนอยู่
ตอนที่ 4 สอนว่าให้คนใช้ดูเร็ว
ตอนที่ 5 ทำให้โค้ดเสร็จทุกสองสัปดาห์
ตอนที่ 6 ทำให้โค้ดถึงมือลูกค้าในวันเดียวกัน
ตอนที่ 7 ทำให้พังแล้วรู้เร็ว และฟื้นเร็ว
ตอนที่ 8 ประกอบทุกอย่างเป็นวงเดียว
ตอนที่ 9 ช่องเขียนโค้ดมีผู้ช่วยแล้ว แต่คนยังเป็นคนขับทุกขั้น
ฝนมองมิวก๊อปวางรอบที่ 15 แล้วพูดขึ้นมา
“เราเป็นแค่คนถือของวิ่งไปมาระหว่าง AI กับเครื่อง ถ้ามันเปิดไฟล์ รัน test แล้วแก้เองได้ล่ะ”

คำถามที่พบบ่อย
AI ผู้ช่วยเขียนโค้ด ต่างจาก SDLC ยุค 2019 ยังไง?
วง SDLC ยังเหมือนเดิมทุกขั้น ที่เปลี่ยนคือแต่ละขั้นมี AI ช่วยร่างให้ โดยเฉพาะช่องเขียนโค้ดที่ยุค 2019 ยังเป็นมือคนล้วนๆ แต่คนยังเป็นคนตัดสินทุกขั้นเหมือนเดิม
Copilot ต่างจาก ChatGPT ยังไง?
Copilot อยู่ในโปรแกรมเขียนโค้ด เดาโค้ดต่อจากที่เราพิมพ์ ส่วน ChatGPT เป็นช่อง chat ที่เราถามเป็นภาษาคน แล้วมันตอบกลับ ทั้งสองแบบตอบเมื่อเราถาม และคนต้องเป็นคนรับเอง
ทำไม package ที่ AI แนะนำต้องตรวจก่อนลง?
เพราะ AI แต่งชื่อ package ที่ไม่มีอยู่จริงได้ และคนร้ายอาจไปจดชื่อนั้นไว้แล้วใส่ malware เราจึงต้องเช็กว่าชื่อนั้นมีจริง และมาจากคนทำที่ไว้ใจได้
ให้ AI เขียน test ให้ได้มั้ย?
ได้ แต่ test ต้องมาจากความต้องการในการ์ด ไม่ใช่มาจากโค้ด ไม่อย่างนั้น test จะเห็นด้วยกับบั๊กในโค้ด และผ่านทั้งที่ของผิด
ใช้ AI แล้วยังต้อง review โค้ดอีกมั้ย?
ยังต้องครับ และต้องละเอียดขึ้นด้วย เพราะ AI เขียนโค้ดที่ดูถูกได้เร็วมาก ทั้งที่ข้างในอาจมีช่องโหว่ หรือไม่ตรงกับที่ลูกค้าอยากได้
Next → ตอนที่ 10: ยุคที่ AI agent ลงมือเอง ตอนหน้า ผู้ช่วยจะไม่รอให้เราก๊อปวางอีกต่อไป มันจะเริ่มเปิดไฟล์ รัน test และแก้งานเองหลายขั้นต่อกัน แล้วคนจะเหลืองานอะไรบ้าง ผมจะลองดูครับ