krishdev

ทำ

ยิ่ง AI เร็ว เรายิ่งต้องคิดให้เล็กลง

เมื่อ AI ทำงานเร็วมาก สิ่งที่สำคัญอาจไม่ใช่การสั่งให้มันทำเยอะขึ้น แต่อยู่ที่การแบ่งงานให้เล็กพอจนเรายังเห็น ทดสอบ และคิดตามได้

กำลังโตอ่าน 3 นาที

มีเพื่อนคนหนึ่งถามผมว่า ถ้าเป็น non coder หรือ non dev จะ vibe coding ยังไงให้ไม่เปลือง token และงานออกมาดี

ผมกลับมานั่งคิดเรื่องนี้อยู่พักหนึ่ง

เพราะถ้าเป็น developer คำตอบหนึ่งอาจเป็นเรื่องการอ่าน code การแตก task การดู diff การ review สิ่งที่ AI แก้ให้

แต่สำหรับคนที่ไม่ได้เขียน code อยู่แล้ว เขาไม่ได้อ่าน code

และเอาจริงๆ AI วันนี้ก็ฉลาดพอจนหลายงานไม่จำเป็นต้องเริ่มจากการอ่าน code แบบละเอียดเหมือนเดิม

คนกลุ่มนี้ส่วนใหญ่ไม่ได้อยากสร้าง software เพื่อเป็น developer

เขาอยากสร้าง tool ที่ช่วยงานใน domain ที่เขาเข้าใจอยู่แล้ว

งาน finance

งาน legal

งานลงทุน

งาน trading

งาน operation บางอย่างที่เขาทำซ้ำทุกวัน

ตรงนี้น่าสนใจ เพราะความรู้ที่สำคัญที่สุดของเขาอาจไม่ใช่ code

แต่เป็นความเข้าใจในงานจริง

เขารู้ว่า input คืออะไร

เขารู้ว่า decision สำคัญอยู่ตรงไหน

เขารู้ว่าคำนวณผิดตรงไหนแล้วจะพัง

เขารู้ว่าคนใช้จริงจะกดอะไร งงตรงไหน และต้องเห็นข้อมูลแบบไหนถึงจะตัดสินใจได้

สิ่งนี้ AI ไม่มี ถ้าเขาไม่บอกมันดีพอ

ปัญหาไม่ใช่ไม่รู้ code อย่างเดียว

ผมเริ่มรู้สึกว่า ปัญหาของคนที่ vibe coding แล้วงานออกมาไม่ดี อาจไม่ใช่แค่เขาไม่รู้ code

แต่เป็นเพราะเขาเริ่มจากภาพที่ใหญ่เกินไป

เขาอยากได้ทั้งแอปในครั้งเดียว

มี login

มี dashboard

มี form

มี report

มี export

มี user หลาย role

มี logic การคำนวณ

มีหน้าตาสวยๆ

มีทุกอย่างตั้งแต่ prompt แรก

พอโยนทั้งหมดให้ AI ทำทีเดียว สิ่งที่ได้มักจะกว้าง แต่ไม่ลึก

เหมือนมีทุกหน้า แต่แต่ละหน้าขาดอะไรบางอย่าง

logic ยังไม่แน่น

UI กดได้บางจุด

บาง feature ดูเหมือนมี แต่ใช้จริงไม่ได้

แล้วพอเริ่มสั่งแก้ ปัญหาจะหนักขึ้น

เพราะ codebase ใหญ่ขึ้นแล้ว

AI ต้องอ่านหลายไฟล์มากขึ้น

context เริ่มเต็ม

จะแก้ feature เดียว อาจไปกระทบอีก feature หนึ่ง

สุดท้าย token ที่คิดว่าจะประหยัด กลับหมดไปกับการแก้สิ่งที่ควรจะยังไม่ถูกสร้างตั้งแต่แรก

ทำทีละ feature ผ่าน loop เล็กๆ แทนการให้ AI ทำทั้งแอปในครั้งเดียว
ทำทีละ feature ผ่าน loop เล็กๆ แทนการให้ AI ทำทั้งแอปในครั้งเดียว

คนที่ไม่อ่าน code ต้องมีอะไรให้กด

สำหรับ non coder วิธี test งานไม่ใช่การอ่าน code

วิธี test คือการกดใช้

สิ่งสำคัญมากคือ ต้องมี UI ให้กดตั้งแต่ต้น

ไม่ต้องสวย

ไม่ต้องครบ

แต่ต้องมีหน้าที่ทำให้เราทดสอบความคิดได้

ถ้ากำลังทำ calculator บางอย่าง ต้องมีช่องให้ใส่ตัวเลข กดคำนวณ แล้วเห็นผลลัพธ์

ถ้ากำลังทำ dashboard ต้องมีข้อมูลตัวอย่าง แล้วเห็นว่า chart หรือ table ตอบคำถามที่อยากตอบจริงไหม

ถ้ากำลังทำ tool ช่วย review เอกสาร ต้องมีที่ใส่ข้อความ กดวิเคราะห์ แล้วอ่านผลที่ออกมาได้

คนที่ไม่อ่าน code ต้องเอาประสบการณ์ของตัวเองไปตรวจผ่าน UI

กดแล้วถามว่า ใช่ไหม

ตัวเลขถูกไหม

flow นี้ตรงกับงานจริงไหม

ถ้าคนใน domain นี้มาใช้ เขาจะเข้าใจไหม

คำถามพวกนี้สำคัญกว่า code สวยหรือไม่สวยในช่วงแรกมาก

Agile ในวันที่ loop สั้นลงมาก

คำตอบที่ผมคิดได้ กลับเป็นเรื่องเก่ามากของคนทำ software

Agile

ไม่ใช่ในความหมายพิธีกรรมของบริษัท

ไม่ใช่ sprint planning ที่ต้องมี meeting เยอะๆ

แต่เป็น mindset ง่ายๆ ว่า ทำทีละส่วน ทดสอบ แล้วค่อยปรับ

plan

implement

reflect

แล้วกลับไป plan ใหม่

เมื่อก่อน iteration หนึ่งอาจกินเวลา 2 สัปดาห์

ทีมต้องคุยกัน เลือก story ทำ feature เขียน code test deploy แล้วกลับมาดูผล

แต่พอมี AI loop นี้สั้นลงมาก

บางครั้งหนึ่งรอบอาจเหลือไม่กี่นาที

บางครั้งอาจเป็นหนึ่งชั่วโมง

เราวางแผน feature เล็กๆ ให้ AI ทำ

ลองกด

เห็นว่ามันผิดตรงไหน

กลับไปแก้ prompt

ให้มันปรับ

แล้วกดใหม่

สิ่งที่เปลี่ยนคือความเร็ว

แต่สิ่งที่ไม่เปลี่ยนคือ เรายังต้องคิดเป็นรอบอยู่ดี

เริ่มจากหน้า index ก็พอ

ถ้าเป็น tool ที่มีหลาย feature ผมคิดว่าไม่ควรเริ่มจากการให้ AI สร้างทั้งแอป

เริ่มจากหน้า index ธรรมดาก็พอ

หน้านี้มีชื่อ tool

มีคำอธิบายสั้นๆ

มีปุ่มไป feature แรก

แค่นั้นพอแล้ว

แล้วค่อยเลือก feature ที่สำคัญที่สุดขึ้นมาทำก่อน

feature แรกควรเป็นแกนหลักของ tool

ไม่ใช่ feature เสริม

ถ้า tool นี้เกิดมาเพื่อช่วยคำนวณอะไรบางอย่าง ก็ทำ flow คำนวณนั้นก่อน

ถ้าเกิดมาเพื่อช่วยตัดสินใจ ก็ทำ flow ที่ทำให้ตัดสินใจได้ก่อน

ถ้าเกิดมาเพื่อสรุปข้อมูล ก็ทำ flow ที่รับข้อมูลแล้วสรุปให้ได้ก่อน

ทำฐานของ feature นั้นให้กดได้ก่อน

แล้วค่อย iterate

เพิ่ม field

แก้สูตร

ปรับข้อความ

เพิ่ม validation

ทำผลลัพธ์ให้อ่านง่ายขึ้น

เพิ่ม chart ถ้าจำเป็น

เพิ่ม export ทีหลัง ถ้ามันจำเป็นจริงๆ

พอ feature นี้ใช้ได้จริง ค่อยกลับมาที่หน้า index แล้วเพิ่มปุ่มไป feature ต่อไป

หรือเพิ่ม tab dashboard ที่เอาข้อมูลจาก feature แรกมาแสดง

ทำแบบนี้ไปทีละก้อน

แอปจะค่อยๆ โตขึ้นจากของที่ test แล้ว ไม่ใช่โตขึ้นจากจินตนาการก้อนใหญ่ที่ยังไม่มีใครกดใช้

เริ่มจากหน้า index แล้วค่อยเพิ่มปุ่มไปยัง feature ที่ทดสอบแล้วทีละก้อน
เริ่มจากหน้า index แล้วค่อยเพิ่มปุ่มไปยัง feature ที่ทดสอบแล้วทีละก้อน

plan ไม่ได้ทำให้ช้า

หลายคนอาจรู้สึกว่า plan ทำให้ช้า

โดยเฉพาะในยุคที่ AI ทำอะไรให้เร็วมาก

แต่ผมกลับรู้สึกว่า plan คือสิ่งที่ทำให้ไม่เปลือง

เพราะ prompt ที่ใหญ่เกินไป ไม่ได้แปลว่าประหยัดกว่า

สั่งครั้งเดียวให้ทำทั้งแอป อาจดูเหมือนเร็ว

แต่ถ้าสิ่งที่ออกมาผิดทั้งโครง การแก้ทีหลังจะแพงมาก

แพงในที่นี้ไม่ใช่แค่เงินค่า token

แต่แพงด้วยเวลา

แพงด้วยความสับสน

แพงด้วยความรู้สึกว่า AI ทำไมทำไม่ได้สักที

ทั้งที่บางครั้งปัญหาไม่ได้อยู่ที่ AI

แต่อยู่ที่เราให้มันทำหลายเรื่องเกินไปในครั้งเดียว

plan ที่ดีสำหรับ vibe coding อาจไม่ต้องยาว

แค่เขียนให้ชัดว่า รอบนี้จะทำอะไร

feature นี้ต้องรับ input อะไร

ต้องคำนวณหรือประมวลผลอะไร

ผลลัพธ์ควรออกมาแบบไหน

เราจะกด test ยังไง

อะไรที่ยังไม่ทำในรอบนี้

ข้อสุดท้ายสำคัญมาก

อะไรที่ยังไม่ทำในรอบนี้

เพราะถ้าไม่เขียนไว้ AI มักจะช่วยคิดต่อให้เอง

บางครั้งมันช่วยดี

บางครั้งมันสร้างของเกินจำเป็น แล้วเราต้องเสียเวลาตามลบทีหลัง

domain expert ยังสำคัญมาก

ผมคิดว่า non coder มีข้อได้เปรียบบางอย่างที่ developer อาจไม่มี

เขาอยู่กับปัญหาจริง

เขารู้ detail ของงานจริง

เขารู้ว่ากฎบางอย่างในตำราใช้ไม่ได้กับสถานการณ์จริง

เขารู้ว่า edge case ไหนสำคัญ และ edge case ไหนไม่ต้องสนใจตอนนี้

ถ้าเขาเอาความรู้นี้มาใช้กับ AI ได้ดี เขาอาจสร้าง tool ที่มีประโยชน์มาก

ไม่ใช่เพราะเขาเขียน code เก่ง

แต่เพราะเขารู้ว่าของที่ดีใน domain นั้นควรทำงานยังไง

สิ่งที่ต้องเรียนเพิ่มจึงอาจไม่ใช่ syntax ของภาษา programming ก่อน

แต่อาจเป็นวิธีคิดของ product software

แตกของใหญ่ให้เล็ก

ทำทีละ feature

มี UI ให้ test

กดใช้จริง

reflect จากสิ่งที่เห็น

แล้วค่อยไปต่อ

ที่ผมอยากตอบเพื่อนคนนั้น

ถ้าจะ vibe coding ให้ไม่เปลือง token และงานออกมาดี โดยเฉพาะถ้าไม่ได้อ่าน code

อย่าเริ่มจากทั้งแอป

เริ่มจาก loop เล็กๆ

plan ให้ชัดว่า feature นี้คืออะไร

ให้ AI implement เฉพาะก้อนนั้น

กดใช้ผ่าน UI

reflect ว่ามันตรงกับงานจริงไหม

แก้จน feature นั้นใช้ได้

แล้วค่อยขึ้น feature ใหม่

AI ทำให้การสร้าง software เร็วขึ้นมาก

แต่ความเร็วไม่ได้แปลว่าเราควรคิดทีเดียวทั้งแอป

ยิ่ง AI เร็วเท่าไร ผมยิ่งรู้สึกว่าเราต้องแบ่งงานให้เล็กลงเท่านั้น

เพราะถ้า loop เล็กพอ เราจะเห็นความผิดเร็ว

แก้ถูกจุดเร็ว

และไม่ต้องเผา token ไปกับการแก้ความสับสนที่เราสร้างไว้ตั้งแต่ต้น