ก่อนที่คุณจะฝากงานหลักของผลิตภัณฑ์ไว้กับ AI โปรดอ่านสิ่งนี้
การทำ Demo นั้นแตกต่างจากการทำงานในระบบ Production เครื่องมือ AI หลายอย่างทำได้ดีเยี่ยมในการทำ Demo แต่ผู้ก่อตั้งที่สับสนระหว่างสองสิ่งนี้ มักจะสร้าง Prototype ที่รวดเร็ว แต่กลับต้องมาเผชิญกับการต้องรื้อสร้างใหม่ที่ล่าช้าในภายหลัง
การนำ AI มาใช้ในการเขียนโค้ดกำลังเติบโตขึ้น บริษัทมากกว่า 78% ใช้ AI ในฟังก์ชันหลักของธุรกิจ และในสตาร์ทอัพขนาดเล็ก อัตราการใช้งานนั้นสูงกว่า 60%
อย่างไรก็ตาม ข้อมูลด้านคุณภาพแสดงให้เห็นถึงความเสี่ยง งานวิจัยจาก CodeRabbit พบว่าโค้ดที่เขียนโดย AI มีปัญหาด้านตรรกะ (logic issues) มากกว่าโค้ดที่เขียนโดยมนุษย์ถึง 1.75 เท่า และมีความเสี่ยงด้านความปลอดภัยสูงกว่า 2.74 เท่า นอกจากนี้ บางการศึกษายังระบุว่าโค้ด Java ที่สร้างโดย AI ไม่ผ่านเกณฑ์มาตรฐานความปลอดภัย (security benchmarks) มากกว่า 70% ของจำนวนครั้งทั้งหมด
ปัญหานี้เป็นปัญหาเชิงโครงสร้าง เมื่อคุณใช้ Prompt ที่คลุมเครือ AI จะคิดค้นทั้งสถาปัตยกรรม (architecture) และโค้ดไปพร้อมๆ กัน ซึ่งถือเป็นลำดับขั้นตอนที่ผิด
Spec-Driven Development (SDD) คือทางออกของเรื่องนี้ คุณต้องกำหนดกฎเกณฑ์ของระบบก่อน โดยการกำหนดรูปแบบของ API, database schemas และขอบเขตต่างๆ ก่อนที่จะมีการเขียนโค้ดใดๆ จากนั้นจึงใช้ AI ในการสร้างงานตามกฎเกณฑ์เหล่านั้น
แนวทางนี้ได้ผลเพราะ AI ทำงานภายใต้ข้อจำกัด (constraints) แทนที่จะเป็นการคาดเดา
ความพร้อมสำหรับ Production ไม่ใช่สิ่งที่มาเติมทีหลัง แต่มันคือส่วนหนึ่งของสถาปัตยกรรมของคุณ การมี frontend ที่ถูกสร้างขึ้นพร้อมกับ backend เป็นเพียงเครื่องมือที่มีประโยชน์ แต่มันไม่ใช่ระบบสำหรับ Production ระบบที่แท้จริงจำเป็นต้องมี:
- Containerized deployment
- Infrastructure-as-code
- Orchestration
- Health checks
- CI/CD pipelines
- Test coverage
- Observability
เมื่อต้องประเมินเครื่องมือ AI สำหรับใช้งานในระดับ Production ให้ลองถามคำถาม 5 ข้อนี้:
- เครื่องมือนี้ทำอะไรก่อนที่จะเริ่มเขียนโค้ด? หากมันไม่ทำอะไรเลย แสดงว่าคุณกำลังสร้างหนี้ทางสถาปัตยกรรม (architectural debt)
- นอกจากโค้ดแล้ว ผลลัพธ์ (output) มีอะไรอีกบ้าง? โครงสร้างพื้นฐาน (Infrastructure) และการทดสอบ (tests) ต้องเป็นส่วนหนึ่งของผลลัพธ์ ไม่ใช่สิ่งที่มาคิดทีหลัง
- คุณสามารถตรวจสอบการตัดสินใจได้หรือไม่? คุณจำเป็นต้องเห็นว่า AI ทำงานอย่างไร เพื่อหลีกเลี่ยงการต้องดูแลระบบที่เป็นเหมือนกล่องดำ (black box)
- ระบบจัดการกับความล้มเหลวอย่างไร? การจัดการข้อผิดพลาด (Error handling) และการแจ้งเตือน (alerting) ต้องถูกสร้างไว้ในตัว
- คุณสามารถย้ายโค้ดของคุณได้หรือไม่? โค้ดที่ผูกติดกับแพลตฟอร์มเฉพาะ (proprietary platform) คือภาระ (dependency) ไม่ใช่สินทรัพย์ (asset)
เลิกมองแค่ผลลัพธ์จากการทำ Demo แต่ให้มองไปที่กระบวนการคิดอย่างเป็นระบบที่เกิดขึ้นก่อนที่จะมีการสร้าง Demo นั้นขึ้นมา
ทีมที่ดีที่สุดจะไม่ข้ามขั้นตอนการวางสถาปัตยกรรม แต่พวกเขาใช้เครื่องมือที่ดีกว่าเพื่อให้วางสถาปัตยกรรมได้เร็วขึ้น พวกเขาใช้ AI เพื่อช่วยดำเนินการตามวิจารณญาณทางวิศวกรรม (engineering judgment) ไม่ใช่เพื่อมาแทนที่มัน
Source: https://dev.to/8080_ai/before-you-trust-ai-with-core-product-work-read-this-2go3