Generative AI เปลี่ยนโฉมงานพัฒนาซอฟต์แวร์

Generative AI  เปลี่ยนโฉมงานพัฒนาซอฟต์แวร์

Generative AI เครื่องมือทรงพลังช่วยยกระดับงานนักพัฒนาซอฟต์แวร์ ความสามารถมากกว่าการสร้างโค้ด แต่ยังอยู่ในช่วงพัฒนา เมื่อใช้งานจริงทีมวิศวกรต้องระมัดระวัง

Thoughtworks บริษัทที่ปรึกษาด้านเทคโนโลยีชั้นนำ เผยแพร่รายงาน Technology Radar ล่าสุด  พบว่า Generative artificial intelligence (GenAI) ส่งผลมากขึ้นเรื่อยๆ ต่อกระบวนการส่งมอบซอฟต์แวร์

โดยเครื่องมือ AI ระลอกใหม่มีศักยภาพในการช่วยทีมวิศวกรเพิ่มประสิทธิภาพ เสริมขีดความสามารถและปรับปรุงผลลัพธ์ในการพัฒนาซอฟต์แวร์  

เครื่องมือเหล่านี้มีความสามารถมากกว่าการสร้างโค้ด (Code Generation) เพราะเข้าไปช่วยในส่วนอื่นๆ ของวงจรการพัฒนาซอฟต์แวร์ได้ด้วย ซึ่งรวมถึงการทดสอบ การสร้างเอกสารการออกแบบ หรือแม้กระทั่งการจัดองค์ประกอบและโครงสร้างภายในของซอฟต์แวร์ใหม่ (Refactoring)

อย่างไรก็ตาม ขณะนี้ขีดความสามารถนี้ยังอยู่ในช่วงกำลังพัฒนา ซึ่งทีมวิศวกรควรตื่นตัวและระมัดระวังในการพิจารณาว่าจะนำเครื่องมือที่เพิ่งเกิดขึ้นใหม่เหล่านี้ไปใช้ในการทำงานจริงได้อย่างไร

Rachel Laycock ผู้อำนวยการด้านเทคโนโลยีของ Thoughtworks กล่าวว่า เครื่องมือ GenAI มีความสามารถในการช่วยทีมวิศวกรซอฟต์แวร์ได้หลากหลายด้าน

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

ช่วยยกระดับงานทีมพัฒนาซอฟต์แวร์

  • ทีมพัฒนาซอฟต์แวร์ที่มี AI เป็นตัวช่วย: เครื่องมือต่างๆ เช่น GitHub Copilot, CodiumAI, aider  และ Continue ส่งผลต่อแทบทุกองค์ประกอบในวงจรการพัฒนาซอฟต์แวร์

ท่ามกลางความตื่นเต้นต่อศักยภาพของ GenAI ทีมวิศวกรควรให้ความสำคัญต่อคุณภาพและความปลอดภัยของซอฟต์แวร์ ด้วยการสร้างความตระหนักรู้เกี่ยวกับความเสี่ยงต่างๆ ที่อาจเกิดขึ้นให้กับกลุ่มผู้ไม่ใช่นักพัฒนา

  • Open-ish source licenses: รูปแบบลิขสิทธิ์ใหม่ๆ ที่เป็นอุปสรรคต่อระบบนิเวศของ Open Source Software; แนวโน้มหนึ่งที่กำลังเกิดขึ้นคือการจำกัดการเข้าถึงฟังก์ชันการใช้งานหรือฟีเจอร์หลักๆ

หากไม่ได้จ่ายเงินซื้อเพิ่ม นักพัฒนาเทคโนโลยีจึงควรใส่ใจรายละเอียดประเภทลิขสิทธิ์กับระดับการอนุญาตให้ใช้สิทธิของผลิตภัณฑ์ที่ใช้อยู่ และสร้างความมั่นใจว่าสิทธิดังกล่าวครอบคลุมไฟล์ทั้งหมดใน Repository

  • ทำ Pull Requests (PRs) ให้ใกล้เคียงกับหลักการ Continuous Integration (CI):Pull Requests เป็นเสมือนช่องทางการตรวจสอบโค้ดในกระบวนการพัฒนาซอฟต์แวร์ แม้ว่ากระบวนการนี้มีความสำคัญในบางบริบท แต่ก็สามารถทำให้โฟกัสของนักพัฒนาถูกขัดขวาง และชะลอความเร็วในการส่งมอบซอฟต์แวร์ได้ หลาย

แม้ว่าThoughtworks ยังคงมองว่า Continuous Integration (CI) เป็นแนวปฏิบัติที่เหมาะสมสำหรับการจัดการโค้ด แต่สำหรับองค์กรที่ไม่ได้ใช้แนวทางแบบ CI ควรมองหาแนวทางใหม่ๆ ในการเพิ่มความแม่นยำและความรวดเร็วในการรวบรวมโค้ด โดยเฉพาะหากปริมาณโค้ดยังคงเพิ่มขึ้นต่อเนื่องจากการใช้งานตัวช่วยเขียนโปรแกรม

  • สถาปัตยกรรม LLMs รูปแบบใหม่: รูปแบบ (Patterns) คือสิ่งที่นิยมใช้กันในโลกเทคโนโลยีเพราะรูปแบบช่วยให้คำนิยามที่ดีสำหรับโซลูชันที่ใช้แก้ปัญหาในบริบทที่เฉพาะเจาะจงได้ ท่ามกลางการใช้ LLMs ซึ่งขยายตัวขึ้น เราเริ่มเห็นรูปแบบสถาปัตยกรรมเฉพาะที่เกิดขึ้นมาเพื่อใช้งานในหลายบริบทร่วมกัน