ช่วง 6 เดือนที่ผ่านมา
LLM ในมุมของการช่วยสร้าง product พัฒนาแบบก้าวกระโดดมากๆ
จำได้ว่าช่วง กลางๆปีที่แล้ว ยังเป็นช่วงที่ vibe coding โตระเบิด hype มากๆอยู่เลย (จริงๆตอนนี้ก็ hype อยู่) แต่จากที่ได้ลองกับหลายๆ project พบว่าหลายๆครั้ง เพิ่ม feature ไปเรื่อยๆ มักจะติดข้อจำกัดนึงคือ เพิ่มของใหม่ ของเก่าพังแบบไม่รู้ตัว
สุดท้ายความเร็วที่ปั้นของได้ในช่วงแรกๆ ก็เสียไปจากการที่ต้องมาบอก AI ว่า
เห้ย ของเก่าเจ๊งได้ไง กลับไปซ่อมด้วย
วนไปไม่รู้จบ
ในหัวเลยติดภาพจำว่า ข้อจำกัดของพวก vibe coding ทั้งหลาย นี่น่าจะเหมาะกับ prototype ไวๆ พอจะขึ้นของจริง คงต้องให้ engineer ช่วยวาง structure ดีๆ ไม่ต้องมาเสียเวลานั่งแก้ทีหลัง
ปัญหานั้นค่อยๆกำลังหมดไป
พอได้ลองหลายๆอย่าง พบว่ามีคนพยายามแก้ปัญหานี้อยู่เยอะเลยแฮะ ด้วยการทำ framework มาครอบ LLM อีกที หลักๆคือวาง workflow การเขียนโค้ดจริง ให้เริ่มจากการ setup context ให้ชัดก่อน ว่า
- แอพเราจะแก้ปัญหาอะไร (ตั้งแต่ what’s the problem เลย)
- Research ว่าแอพนี้ ควรจะมี tech stack อะไร, ใช้ framework ไหน , tradeoff ของแต่ละอย่างคืออะไรบ้าง (และมันแนะนำให้ใช้อะไร)
- Roadmapping : เขียน roadmap แบ่งเป็น phase ย่อยๆ ได้ประมาณไหน (เช่น อย่างเว็บนี้ แบ่งออกเป็น phase ย่อยๆคือ…)
- Planning : พอได้ roadmap ก็เอามาวางแผนต่อ ว่าแต่ละ phase/ feature ย่อย ต้องแตก tasks ยังไงบ้าง
- Verify : ตรวจอีกที ว่าที่ทำมา ตรงตาม spec มั้ย
- แถมบาง step ยังไป research บน public community ล่าสุดให้ด้วย ว่าไอที่เรากำลังจะทำ stack, framework, วิธีการของชาวบ้านเค้าทำไงกันบ้าง
- ทำได้ตั้งแต่เริ่มจาก 0 ยัน production deployment step by step เลย เหลือจะเชื่อ
Framework พวกนี้มีหลายตัวเลยที่เคยลอง ไอเดียการวาง workflow ข้างบนคล้ายๆกัน แต่รายละเอียดแต่ละ step แต่ละอันจะลงลึกไม่เท่ากัน เช่น speckit, openspec, BMAD, get shit done แต่ที่รู้สึกเข้ามือ ไม่มาก ไม่น้อยไปก็คือ GSD - get shit done พระเอกของเราวันนี้
(เอาจริง ชอบเพราะชื่อมันเท่ด้วยส่วนนึง lol)
เอามาลองกับเว็บตัวเองเลยละกัน
อย่างเว็บนี้ เริ่มใหม่ตั้งแต่ต้น ตั้งใจอยากไว้เขียน blog เรียบเรียงความคิด เพราะหลังๆไม่ค่อยได้เขียนอะไรยาวๆเท่าไร ส่วนหลักๆก็จะมี Home, Blog, About
ทั้งหมดเริ่มเล่า requirement ด้วย get-shit-done เนี่ยแหละ เดี๋ยวเล่าให้ฟังว่าเกิดไรขึ้นบ้าง
เริ่ม setup
- ใช้ Claude code - model หลักๆใช้ sonnet + high thinking ทั้งตอนคุย + เขียนโค้ด คิดว่าเพียงพอ (หลังๆมามี
/advisorก็เปิดให้ไปปรึกษา opus ได้) - ติดตั้ง get shit done
npx get-shit-done-cc@latest
จบแล้ว เริ่มลุยได้
เล่าก่อน ว่า Project นี้เกี่ยวกับอะไร
/gsd:new-project
a simple personal website
it should have home, about page, showing my experiences, content from LinkedIn
and /blog section, UI similar to medium
don't include writing feature, i'll provide markdown files for content
MVP นี้อยากได้ส่วน display หลักๆ เพื่อ migrate ของเก่าๆมาจาก medium งั้นยังไม่ต้องมี UI พาร์ทเขียน blog

คุยกันไปกันมา ส่วนเขียน content ใช้ Obsidian เป็น markdown editor + render เขียนบน local machine ไปก่อน
Tech stack ที่ใช้
หลังจากนั้น จะมีคำถามมาให้เรา confirm ว่าเข้าใจตรงกันมั้ย + ให้ข้อมูลเพิ่มเติม รวมถึง propose tech stack/framework ที่น่าจะใช้สำหรับงานนี้

ทีแรกไม่เคยได้ยิน Astro แต่พอไป research เองเพิ่ม ก็คิดว่าน่าจะเหมาะกับที่อยากให้เว็บนี้เป็น ลุยอันนี้ละกัน
Clarify requirement ที่ไม่เคลียร์
ข้อดีอีกอย่างของการมี framework มาครอบคือ มันจะช่วยหา edge case, unclear requirements ละมาถามเรา ซึ่งพวก vibe coding ส่วนใหญ่ มักจะเน้นไว ทำให้หลายๆเคส AI เดาให้ ว่ามันน่าจะเป็นแบบไหน ละทำให้เลย
อย่างอันนี้ จะมา confirm กันอีกที ว่า MVP เรารวมส่วนไหนบ้าง
SEO มีมั้ย, Blog มี feature อะไรพิเศษป่าว

รวมไปถึงว่าจะ deploy กันยังไงเลย

กว่าจะเริ่มได้โค้ดจริง ใช้เวลา setup กันพอสมควร
เป็นอีกจุดที่ต้อง tradeoff กันระหว่างความไว (พิมพ์ 2 ประโยค ได้เห็น results เลย - vibe coding) กับความถูกต้องครอบคลุม ซึ่งส่วนตัวคิดว่าแต่ละแบบก็เหมาะกับแต่ละละสถานการณ์ เราแค่ต้องรู้ข้อจำกัด ละเลือกใช้ให้ถูก
Final requirement + Implementation plan
ได้ requirement ทั้งหมดออกมา และเราไปเปิดดูรายละเอียดของแต่ละ requirements ได้หมดเลย

แผนการ Implement

วางแผน implement และ execute จริง
พอเข้า execute คือปล่อยไหลยาวไปเลย
ปกติเราใช้ LLM ละได้ผลลัพธ์ไม่ตามต้องการ เป็นเพราะเราให้ context ไม่เพียงพอ (ขี้เกียจเขียนว่างั้น) และแต่ก่อน main agent จะเป็นคนเขียนโค้ดเอง ทำให้พอเจอ requirement เยอะๆยาวๆ context จะใกล้เต็ม ความมั่ว ความเอ๋อจะเกิดขึ้นตอนนี้
GSD เลยแก้ปัญหาโดยเรียก sub agent ขึ้นมาเพื่อเขียนโค้ดเป็นส่วนๆโดยเฉพาะ ทำเสร็จละค่อยบอกหัวหน้า เสร็จหมด หัวหน้าเรียกลูกน้องอีกตัวไปตรวจผลลัพธ์อีกที ทำให้งานเสร็จโดย context ไม่เต็ม ลดโอกาสเอ๋อไปได้เยอะมาก
ส่วนเราก็คอยเคลียร์ context ของตัวหลักตอนจบแต่ละงานย่อย เช่นหลังจบ researching, discussion, planning, execution, verify แต่ละอันเราก็เคลียร์ context ทิ้ง
Implement จบ milestone แรก ได้อะไรมาบ้าง
- Home
- About
- Blog (listing+details)
จริงๆจะหั่นเหลือแค่ home ก่อน ละค่อยมาเพิ่ม 2,3 ก็ได้
หน้าตาเริ่มต้นยังไม่สวยเท่าไร อารมณ์ดูละรู้ว่า AI generated แน่ๆ - แต่เดี๋ยวมีสูตรทำให้ดูโปรขึ้นมา ดูเหมือนกับเว็บ AI generated ทั่วๆไป เดี๋ยวมาเล่าอีกที
นี่มัน over engineered ไปมั้ย
จริงๆ ถ้า scope แค่นี้ Vibe เอาจาก lovable เร็วกว่านี้เยอะ ไม่กี่ประโยคเสร็จแล้ว แต่อันนี้คิดว่าอยากทำ structure ให้ดี ละลองใช้ GSD ในหลายๆมุม เลยออกมาเป็นโปรเจกต์ทดลองอันนี้
ซึ่งไม่จำเป็นต้องเริ่มกับ project ใหม่ก็ได้ มี project เดิมอยู่แล้ว เอา gsd ไปแปะ ก็ย่อมได้
หรือ ถ้าเพิ่ม feature ง่ายๆ (เช่น มี home, blog แล้ว อยากเพิ่ม about) ก็ไม่ต้องทำทุก step (research, planning…) เปิดมาบอก requirement ละให้มันไปค้นจาก context เดิมๆที่เคยมี ละลุยให้เลยก็ได้
สรุป
จากมุมของ PM ที่พอมี Engineering background นิดหน่อย คิดว่าการมีสิ่งนี้ ทำให้การเปลี่ยนจากไอเดีย → real product ง่ายและ สนุกขึ้นมากก
และ process ทำงานระหว่าง PM x Dev x Design ในการพัฒนา Product นั้นเปลี่ยนไปแน่นอน จากการที่ LLM มีความสามารถในระดับที่ยอมรับได้มากขึ้น
ใครลองแล้วคิดว่าเป็นไง หรือมีท่าเจ๋งๆ ทักมาคุยกันได้ครับบบ