7 คะแนน โดย GN⁺ 2025-03-25 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เครื่องมือเขียนโค้ดที่ขับเคลื่อนด้วย AI เพิ่มขึ้นอย่างรวดเร็ว และแม้นักพัฒนาบางคนจะสร้างผลงานที่น่าทึ่งด้วย AI ได้ แต่ในทีมวิศวกรรมจริงกลับมักเห็นผลลัพธ์ไม่มากนัก
  • เหตุผลที่ผลลัพธ์แตกต่างกันมี 2 ข้อ: "กรีนฟิลด์ vs โค้ดเบสขนาดใหญ่", "เล่นคนเดียว vs หลายคน"
  • จึงคาดการณ์เวิร์กโฟลว์การเขียนโค้ดแบบใหม่สำหรับ AI และแนวโน้มในอนาคตไว้ดังนี้:
    • หลายบริษัทกำลังจ้างวิศวกรเพิ่ม — โดยเฉพาะบริษัทที่ดี
    • ความท้าทายที่ใหญ่ที่สุดคือโค้ดเบสขนาดใหญ่ — พื้นที่ที่สร้างคุณค่าได้จริง
    • หุ่นยนต์ vs ไอรอนแมน — ความแตกต่างเชิงปรัชญาของเครื่องมือ AI
    • การเพิ่มประสิทธิภาพความสุขของนักพัฒนา — งานน่าเบื่ออะไรบ้างที่ AI รับไปทำได้
    • การติดตามโค้ดจาก AI เป็น anti-pattern — อย่าหลงไปกับความยั่วยวนของการติดตาม

สาเหตุของความแตกต่างด้านผลลัพธ์

  • Green-field vs โค้ดเบสขนาดใหญ่
    • เครื่องมือ AI ส่วนใหญ่ถูกปรับให้เหมาะกับโปรเจ็กต์ใหม่ (Green-field)
    • เมื่อนำไปใช้กับโค้ดเบสเก่า ประสิทธิภาพจะลดลง
  • เล่นคนเดียว vs หลายคน
    • เวิร์กโฟลว์ AI ในปัจจุบันเน้นการทำงานคนเดียว
    • เมื่อทำงานร่วมกันในทีมจะเกิดปัญหา (เช่น merge conflict, การจัดการคอนเท็กซ์ที่ซับซ้อน เป็นต้น)

"เวิร์กโฟลว์ AI ใช้คนเดียวพอได้ แต่ถ้าใช้ในทีมจะชนกันบ่อยและไม่มีประสิทธิภาพ"

บริษัทชั้นนำกำลังจ้างวิศวกรเพิ่ม

  • คำทำนายที่ว่าความก้าวหน้าของ AI จะทำให้ความต้องการวิศวกรลดลงนั้นไม่เป็นจริง
  • เมื่อ AI เพิ่มผลิตภาพ สุดท้ายจะเกิด Jevons paradox ที่ทำให้การจ้างวิศวกรเพิ่มขึ้น
  • การตอบสนองของแต่ละองค์กรต่อการนำ AI มาใช้

    • ทีมระดับบน: ผลิตภาพเพิ่มขึ้นจากการใช้ AI → จ้างวิศวกรเพิ่ม
    • ทีมระดับกลาง: ไม่มีการเปลี่ยนแปลงด้านการจ้าง เพราะติดระบบราชการและต้นทุนการประสานงาน
    • ทีมระดับล่าง: เทคโนโลยีเป็นเพียงเครื่องมือธรรมดา → ลดขนาดทีมเพื่อลดต้นทุน

ปัญหาใหญ่ที่สุดคือโค้ดเบสขนาดใหญ่

  • AI เก่งมากในการแก้ปัญหาเชิงอัลกอริทึม แต่ผลงานในงานฟรีแลนซ์จริงกลับไม่ดีนัก
  • สาเหตุหลักคือ ขาดคอนเท็กซ์
  • วิธีส่งผ่านคอนเท็กซ์ให้ AI ในโค้ดเบส:
    • Fine-tuning → คาดเดาผลได้ยากและมีต้นทุนสูง
    • การขยาย Context Window → รับประกันความแม่นยำได้ยาก
    • RAG (Retrieval-Augmented Generation) → ปัจจุบันมีแนวโน้มดีที่สุด

RAG ที่ดี คือหัวใจของการขยายเครื่องมือเขียนโค้ด AI

หุ่นยนต์ vs ไอรอนแมน: ความแตกต่างเชิงปรัชญาของเครื่องมือ AI

  • เครื่องมือแบบอัตโนมัติเต็มรูปแบบ → ทำงานเหมือนเอเจนต์อิสระ
    • รับคำสั่งจาก Slack แล้วส่ง PR โดยอัตโนมัติ
    • ตัวอย่าง: Devin, Lindy
  • เครื่องมือแบบเสริมพลัง → มนุษย์เป็นผู้นำงานและ AI ทำหน้าที่สนับสนุน
    • ใช้เป็นเครื่องมือช่วยใน IDE และมนุษย์เป็นผู้ส่ง PR ขั้นสุดท้าย
    • ตัวอย่าง: Augment, Cursor
  • กลยุทธ์ไหนได้เปรียบกว่า?

    • วงจรป้อนกลับ → เครื่องมือแบบเสริมพลังแก้ข้อผิดพลาดได้เร็วกว่า
    • ความสามารถในการขยาย → เครื่องมือแบบอัตโนมัติเต็มรูปแบบเสี่ยงเพิ่มความซับซ้อนในองค์กร
    • แนวทางที่มีมนุษย์เป็นศูนย์กลาง → เครื่องมือแบบเสริมพลังพัฒนาไปในทิศทางที่เสริมความสามารถมนุษย์

"AI ควรสร้างอเวนเจอร์ส ไม่ใช่ Clone Wars"

การเพิ่มประสิทธิภาพเพื่อความสุขของนักพัฒนา

  • ทีมที่ประสบความสำเร็จไม่ได้โฟกัสที่ ผลิตภาพ แต่โฟกัสที่ ความสุขของนักพัฒนา
  • ใช้ AI เพื่อลดงานง่าย ๆ ที่น่าเบื่อและหนักหน่วง
  • Toil ที่ AI ช่วยแก้ได้
    • 1) การทำเทสต์อัตโนมัติ
      • AI เขียนโค้ดเทสต์ → ลดภาระโค้ด boilerplate
      • รางวัลจากการเขียนสเปกไว้ล่วงหน้ามากขึ้น → นำ TDD มาใช้ได้ง่ายขึ้น
    • 2) การทำเอกสารอัตโนมัติ
      • AI เขียนคอมเมนต์โค้ดและสเปกทางเทคนิค → ลดภาระการดูแลเอกสาร
      • AI อธิบายโครงสร้างและพฤติกรรมของโค้ดได้ → แต่เจตนาในการเขียนโค้ดยังต้องให้มนุษย์อธิบาย
    • 3) การปรับปรุงคุณภาพโค้ด
      • ตรวจสอบสไตล์โค้ดและช่องโหว่ด้านความปลอดภัยได้
      • ตัวอย่างเครื่องมือ AI: Augment, Packmind, Codacy

การติดตามโค้ดจาก AI เป็น anti-pattern

  • หาก AI ทำงานแบบอัตโนมัติ ก็จำเป็นต้องติดตามผลงาน
  • แต่ถ้า AI ทำหน้าที่เสริมพลังมนุษย์ การแยกโค้ดจาก AI ออกจากโค้ดของมนุษย์ก็ไม่มีความหมาย
  • การโฟกัสที่ ผลิตภาพและความพึงพอใจของนักพัฒนา จะมีประสิทธิผลกว่า

ประเด็นสำคัญ

  1. การนำ AI มาใช้ทำให้การจ้างวิศวกรเพิ่มขึ้น → เมื่อผลิตภาพเพิ่มขึ้นจาก Jevons paradox การจ้างก็ขยายตาม
  2. จำเป็นต้องมีการใช้ AI แบบหลายผู้เล่น → ต้องเสริมความร่วมมือในระดับทีม
  3. ต้องแก้ปัญหาโค้ดเบสขนาดใหญ่ → หัวใจสำคัญคือการให้คอนเท็กซ์
  4. เครื่องมือแบบเสริมพลังได้เปรียบกว่าแบบอัตโนมัติเต็มรูปแบบ → มนุษย์นำและ AI สนับสนุน
  5. เพิ่มประสิทธิภาพความสุขของนักพัฒนา → ให้ความสำคัญกับความสุขมากกว่าผลิตภาพ
  6. การกลับมาของ TDD → AI ช่วยลดภาระในการเขียนเทสต์
  7. ภาระงานเอกสารลดลง → AI เขียนคอมเมนต์โค้ดและสเปกทางเทคนิคอัตโนมัติ
  8. คุณภาพโค้ดดีขึ้น → AI ช่วยตรวจสไตล์โค้ดและปัญหาความปลอดภัย
  9. การติดตามโค้ดจาก AI ไม่มีความหมาย → ควรประเมินผลงานจากผลิตภาพและความพึงพอใจโดยรวม

1 ความคิดเห็น

 
livekth 2025-03-25

ผมเห็นด้วยกับข้อ 1 ได้ยากนะ

  • บริษัทที่ดีมักพยายามรับเฉพาะวิศวกรที่ยอดเยี่ยมเท่านั้น ทรัพยากรวิศวกรแบบนั้นมีอยู่อย่างจำกัด เลยไม่ได้มีการจ้างงานเพิ่มขึ้น

ผมรู้สึกแบบนี้บ่อยมาก เพราะแม้จะพยายามจ้างวิศวกรที่ดีในบริษัทเล็ก ๆ แต่มันไม่ง่ายเลยจริง ๆ