สร้าง Production-Ready Software ด้วย AI: Cursor, Claude และอื่นๆ
Building Production-Ready Software with AI: Cursor, Claude, and Beyond
เมื่อวันอังคารที่ผ่านมา ฮงจัด sharing session เกี่ยวกับการใช้ Cursor AI ในการพัฒนา feature ระดับ Production ฉันเลยอยากเขียนสรุปให้เพื่อนๆได้อ่านกัน
หมายเหตุ: เนื้อหานี้สามารถปรับใช้กับ AI ตัวอื่นได้เช่น Gemini หรือ Claude
1. Flip This Narrative: ปรับมุมมอง เปลี่ยนเรื่องเล่า
ฮงเคยมีความเชื่อว่า “AI ยังไม่สามารถทำงานซอฟต์แวร์ที่ซับซ้อนได้” ซึ่งความเชื่อนี้มาจากประสบการณ์ในอดีตที่เคยลองใช้แล้วมันไม่ได้ผล
จนกระทั่งฮงเจอบทความที่ Developer ผู้พัฒนา Claude Code บอกว่า “กว่า 80% เขาให้ AI เขียนหมดแล้ว เขาเขียนเอง 20%” โปรเจค Claude Code ก็น่าจะซับซ้อนนะ แปลว่าความเชื่อที่ฮงมีมันผิด
นั่นแปลว่า “เรายังไม่รู้ว่าจะใช้ AI ทำงานที่ซับซ้อนได้อย่างไร” มากกว่า AI ไม่สามารถทำได้
❌ Don’t:
พิมพ์สั้นๆแล้วหวังว่า AI จะเข้าใจและทำงานถูกต้อง
✅ Do:
- ให้ข้อมูลที่จำเป็น
- ให้ AI วางแผน
- รีวิวแผนงานก่อนลงมือทำ
2. More Power Requires More Control: พลังที่ยิ่งใหญ่มาพร้อมกับความรับผิดชอบอันใหญ่ยิ่ง
เราสามารถมอบหมายงานให้ AI ทำงานได้ เพราะว่าเรามอบอำนาจให้มัน
ความสามารถของ AI ในปัจจุบัน:
- ไม่ใช่เพียงแค่อ่านข้อมูล แต่ยังสร้าง/แก้ไข/ลบได้
- รัน command ในเครื่องได้
- เชื่อมต่อไปยัง services ต่างๆผ่าน MCP เพื่อดึงหรือแก้ไขข้อมูล
- เปิด browser และทำ action ในฐานะ user ได้
- Claude มี Computer Use ที่ใช้ keyboard และ Mouse ได้เหมือน User
ความเสี่ยง:
ยิ่งเราให้อำนาจกับ AI มาก เรื่องที่ AI สามารถทำได้ก็ยิ่งเยอะขึ้น ไม่ใช่เรื่องดีเท่านั้น เรื่องไม่ดีก็ทำได้เช่นกัน เช่น:
- AI ลบข้อมูลทั้งที่ไม่ได้สั่ง
- หลงคิดว่าตัวเองทำถูก แต่จริงๆเป็น hallucination
💪 Key สำคัญ:
เรามอบหมายงานให้ AI ทำได้ แต่ทุกอย่างต้องอยู่ในการดูแลและตรวจสอบได้
3. จะสร้าง Software ด้วย AI อย่างมีคุณภาพได้อย่างไร
1️⃣ Project Context: กำหนด Context ให้ชัดเจน
เพื่อที่ AI จะได้ไม่ต้องเดา ต้องบอก:
- โปรเจคที่เกี่ยวกับอะไร
- มี naming convention, code convention อย่างไร
- มี technologies ไหนใช้บ้าง และใช้งานอย่างไร
- workflow การทำงานที่อยากให้ทำเป็นอย่างไร เช่น Test-driven development (TDD)
2️⃣ Draw the Constraints: กำหนดข้อจำกัด
กำหนดสิ่งที่ AI เป็น สิ่งที่ AI จะทำและไม่ได้ เช่น:
- ในโปรเจคนี้ AI จะรับบทเป็น Senior Software Engineer ที่มีความเชี่ยวชาญ tech stack นี้
- ให้ value กับเรื่องคุณภาพและการทำ software อย่างยั่งยืน
- จะทำ TDD ทุกครั้ง
- AI จะไม่มีวันเขียนโค้ดที่ไม่ได้ใช้
- จะไม่เขียนโค้ดที่มีบัคหรือช่องโหว่อย่างตั้งใจ
- จะไม่มีวันpush force ดึดขาด
3️⃣ Set Your Standard: ตั้งมาตรฐาน
สามารถสร้างมาตรฐานการทำงานของ AI ได้เช่น Production-Ready Commit ทุก commit ต้องพร้อมไป production:
- Function การทำงานทุกอย่างถูกต้องตาม requirement
- Test ต้องผ่าน
- Code ต้อง clean, อ่านง่าย, ดูแลง่าย
- ไม่มี breaking change
- มี log ให้ตรวจสอบได้
- ไม่มี security concern ไม่มีช่องโหว่ความปลอดภัย
อะไรที่เราคิดว่ามันดี เราสอนให้ AI ทำได้หมด (เมื่อก่อน การทำสิ่งเหล่านี้ต้องฝึกฝน engineering practice เยอะๆ บางคนทำบ้าง บางคนไม่ทำ แต่ AI ทำได้โดยไม่บ่น)
แน่นอนว่า AI ก็มั่วได้ เราเลยต้องตรวจสอบการทำงานทุกครั้ง
4. Full-Stack Workflow: การทำงานครบวงจร
Software Development มีขั้นตอนอย่างไรบ้าง:
- Planning - วางแผนการทำงานหลังได้รับ task มาแล้ว
- Implementation - การทำงาน แก้ไขไฟล์ที่เกี่ยวข้อง
- Testing - การเขียน test และการทำสอบระบบ
- Commit - บันทึกการแก้ไขที่ถูก verify ความถูกต้องแล้ว
- Code Review & Release - การรีวิวโค้ดและส่งมอบสู่ลูกค้า
ทั้งหมดนี้ เราสามารถมอบหมายงานให้ AI ทำงานได้ (ขึ้นอยู่กับว่าเราจะมอบอำนาจให้มันแค่ไหน)
Level 1: Implementation + Testing + Commit (AI บางส่วน)
ทำงานร่วมกับ AI ทำไปเขียนไป ถามไป และ commit โค้ด
Level 2: Implementation + Testing + Commit (AI ทั้งหมด)
วางแผนร่วมกับ AI และเมื่อแผนถูกต้อง ก็ปล่อยให้ AI ทำทั้งหมด แล้วค่อยรีวิวผลลัพธ์ตอนสุดท้าย
Level 3: Planning + Implementation + Testing + Commit (AI ทั้งหมด)
ส่ง Jira ticket ให้ AI อ่านและไปทำเองจนเสร็จ แล้วค่อยให้เรารีวิวโค้ด
Level 4: Planning + Implementation + Testing + Commit + Code Review (AI ทั้งหมด) แต่ release ทำเอง
ระดับนี้ เราให้ AI ทำงานร่วมกับ AI Code Reviewer ทำไป รีวิวไป เมื่อทุกอย่างเรียบร้อย เรารีวิวเองอีกรอบแล้วค่อยกด deploy
Level 5: Everything is Automated
AI ทยอยหยิบการ์ดเองเมื่อมันว่าง อันไหนทำได้ก็ทำ ทำไปแก้ไขไป พอเสร็จ ก็ deploy เองไปเลย
ฮงยังไม่ได้ไปถึง Level 5 และคงจะยังไม่ไว้ใจถึงขั้นนี้ 😂
5. Bottleneck of Software Development Shift: คอขวดย้ายที่ได้
คอขวดของการทำ software development ก่อนยุค AI จะอยู่ที่ว่าในทีม Dev ทำ feature และ QA ทดสอบระบบนั้นได้เร็วแค่ไหน
แต่ AI ได้เข้ามาเปลี่ยนระบบนี้!!
[คอขวดย้ายที่ #1]
Dev ทำ feature ได้เร็วขึ้น แปลว่างาน code review, ตรวจสอบระบบก็เยอะขึ้นด้วย ถ้ารีวิวยังช้าอยู่ ภาพรวมก็ไม่ได้เร็วขึ้นจริง คอขวดจึงย้ายมาที่ code review (ถ้าเราละเลยการตรวจสอบ อาจสร้างปัญหาบน production และเกิดผลกระทบต่อผู้ใช้จริงได้)
[คอขวดย้ายที่ #2]
เราสามารถทำให้ AI ช่วย review โค้ดด้วยอีกแรงได้ ซึ่งแปลว่า code review เร็วขึ้น ปล่อย feature ได้เร็วขึ้น คอขวดจะย้ายที่อีกแล้ว เป็นการรอคิวเพื่อ deploy feature แทน
[คอขวดย้ายที่ #3]
ถ้าทุกอย่างมันเร็วขึ้นมากๆๆๆ ความท้าทายถัดมาคือ requirement เมื่อ Dev ทำ feature ได้เร็วกว่าที่ Product Owner จะคิด Feature ออก Backlog จะค่อยๆลดลง จนมันหมดเกลี้ยง Product Owner คิดปุ๊ป Dev ทำแล้ว Deploy เลย ไวเกิ้น
ถ้ามันถึงจุดนี้ได้จริง มันคงจะน่าทึ่งมาก และมันจะมีคำถามใหม่ตามมา
6. What Should We Do Next?
ถ้าทุกอย่างเป็นไปได้ แล้วเราควรจะทำอะไร?
เมื่อ AI ช่วยลดข้อจำกัดลงหลายๆด้าน (ความเร็วการทำงาน, learning curve, leverage) ให้ AI ทำงาน แล้วเราไปเรียนรู้ดีไหม?
คำถามที่ต้องครุ่นคิด:
- เราจะเอาความสามารถนี้ไปทำอะไร หรือสร้างอะไร?
- เราจะทำอย่างไร ไม่ให้ทักษะที่เราเคยพัฒนามา เสื่อมถอย?
- จะใช้ AI ช่วยในการเรียนรู้และพัฒนาตัวเองอย่างไร?
- คุณค่าในตัวเราจะอยู่ตรงไหน ในเมื่อ AI ทำหลายๆอย่างได้ดีกว่าเรา?
ชุดคำถามเหล่านี้ เป็นการบ้านที่เราต้องกลับไปครุ่นคิดเยอะๆ ฮงไม่มีคำตอบให้ มันเป็นสิ่งที่เราต้องหาด้วยตัวเอง
สรุป
Sharing Session นี้ไม่ได้ออกแบบมาแบบ tech จ๋ามาก แต่เน้นเรื่องของการนำเสนอแนวคิด มุมมองการทำงานที่เปลี่ยนไป การประยุกต์ใช้ AI ให้เข้ากับ workflow การทำงานของเรา
สิ่งที่ฮงอยากย้ำเตือนคือ AI มันเก่ง แต่มันก็มั่วได้ เพราะงั้นเราต้องตรวจสอบทุกครั้ง
ขอบคุณครับ