มีโอกาสได้แบ่งปันเรื่องการนำเอา AI มาใช้ในการพัฒนา software
ตั้งแต่การจัดการ requirement
การออกแบบระบบงาน เช่นการเขียน flow และ diagram ต่าง ๆ
มาถึงการพัฒนา ทดสอบ และ deploy ระบบงาน
ว่าสามารถนำมาใช้งานอย่างไรบ้าง ?
ใน Software Development มี Life cycle ดังนี้
- Requirement and Analysis
- Design
- Development
- Testing
- Deployment
- Maintenance
สามารถนำ AI มาใช้งานในแต่ละขั้นตอน
เป้าหมายเพื่อช่วยให้คำแนะนำ และ ช่วยลดงานต่าง ๆ ลงไป
แสดงดังรูป
![](http://www.somkiat.cc/wp-content/uploads/2024/12/ai-in-sdlc.jpg)
ยกตัวอย่างเช่น
- ในเรื่องของ requirement สามารถนำมาช่วยสร้าง User Story และ ช่วยตรวจสอบว่า requirement ของเรานั้นชัดเจนหรือไม่ แต่จะทำได้ก็กำหนดก่อนว่า คำว่าชัดเจนเป็นอย่างไรก่อน
- ขั้นตอนการออกแบบ เช่น การเขียน diagram ต่าง ๆ เช่น Flow chart, Sequence diagram และ ER diagram โดยสามารถใช้เครื่องมือพวก excalidraw และ database.build เข้ามาช่วยงานพวกนนี้ได้แบบง่าย ๆ
- ในส่วนของ User interface หรือฝั่ง frontend มีเครื่องมือให้มใช้เยอะมาก ๆ เช่น bolt.new และ v0.dev เป็นต้น
- การเขียน code สามารถ generate code ต่าง ๆ รวมทั้ง test case ต่าง ๆ ได้ เช่น การใช้เครื่องมือพวก Aider chat, IDE อย่าง cursor รวมทั้งพวก GitHub Copilot ใน VSCode ก็ช่วยลดงานได้เยอะมาก ๆ แต่ระวังการใช้งานด้วย เพราะว่า บ่อยครั้งมันช่วยการสร้าง แต่การ maintain ละ จะทำอย่างไรต่อไป รวมทั้งเราได้ความรู้หรือเรียนรู้อะไรบ้างหรือไม่ ?
- การ test ก็มีเครื่องมือช่วยในการออกแบบ test case จาก requirement หรือใน test tool ต่าง ๆ มี AI เข้ามาช่วย เช่นใน Postman ก็มี Postbot ให้ใช้งานเป็นต้น
เมื่อใช้งานเครื่องมือต่าง ๆ ได้แล้ว
ในการพัฒนา software นั้น เราสามารถเอา AI ต่าง ๆ มาเป็นหัวใจของระบบงานได้
เช่นการใช้งาน AI Model ต่าง ๆ ผ่าน API ได้เลย
ไม่ว่าจะ mode เสียเงิน หรือ ฟรีก็ตาม
เช่น Llama, phi, gemma model ผ่าน Ollama หรือใช้ model ต่าง ๆ จาก Huggingface ผ่าน LM Studio ก็ได้
หรือเป็นการเพิ่ม knowledge ให้ AI Model ต่าง ๆ ด้วยเทคนิค RAG (Retrieval Augmented Generation)
ที่ต้องเข้าใจเรื่องการทำ
- pre-processing data
- chunking
- embbedding
- vector database
- re-ranking
รวมถึงการทำ fine-tuning model อีกด้วย
ลองใช้งานกันดูครับ น่าสนุกมาก ๆ