Software engineering เป็นงานที่ต้องทำเป็นทีม ไม่ใช่หน้าที่ของคนใดคนหนึ่ง อย่างไรก็ตาม งานเขียนโค้ดยังเป็นงานของ programmer แต่ละคนอยู่ ยังต้องเขียนโค้ดในส่วนของตัวเอง และต้องตรวจสอบ quality ของโค้ดตัวเองอย่างละเอียด ก่อนที่จะส่ง pull request เข้ามาใน repository ของทีม หรืออาจเรียกได้ว่า Tasks ของแต่ละคน ไม่ว่าเล็กหรือใหญ่ ยากหรือง่าย ทั้งหมดล้วนส่งผลต่อ quality ของ software ทั้งสิ้น
เมื่อพูดถึง software process ในระดับบุคคลนี้ ผู้เขียนได้ใบ cert ของ PSP (Personal Software Process) เมื่อหลายปีก่อน จาก Software Park โดยสาระสำคัญของ PSP สอนให้ programmer คิดให้มากๆ ในช่วง planning และ design ก่อนลงมือเขียนโค้ดบันทัดแรก และเมื่อเขียนเสร็จแล้ว ให้ตรวจทานอย่างละเอียด โดยเฉพาะ mistakes ของตัวเอง ที่เกิดขึ้นบ่อย เพื่อสร้าง code ที่มี quality ก่อนนำโค้ดมารวมกัน
อย่างไรก็ตาม การมาถึงของ AI ดูเหมือนจะช่วยลด mistakes ที่เป็น human error เหล่านี้ได้ โดย AI สามารถเขียนโค้ด snippet หรือ boilerplate ให้เราได้ทันที นอกจากนั้นยังเขียน test เพื่อตรวจทานให้ด้วย อยู่ที่เราจะเลือกใช้อย่างไร
แม้ว่า AI จะดูเหมือนเป็นตัวช่วยให้เกิดโค้ดที่มี quality แต่ในความเป็นจริง AI เพียงแค่ช่วยสร้าง code ให้เท่านั้น สุดท้ายเมื่อเรานำ code มารวมกัน มันก็ยังเป็น code ของเรา ที่เราต้องใส่ใจและตรวจสอบหาข้อผิดพลาดที่อาจเกิดขึ้นอยู่ดี นี่จึงเป็นหนึ่งในเหตุผลที่ GitHub และโครงการ open source ใหญ่ๆ ยังไม่ยอมรับ Pull Request ที่เป็น code ที่สร้างโดย AI ผมไม่ได้ต่อต้าน AI เพียงแค่อยากชี้ให้เห็นว่าเราไม่สามารถละเลย process ในระดับบุคคลได้ เพราะ code ที่ AI สร้างขึ้น ก็คือโค้ดของคุณ ที่คุณสั่งให้มันสร้างจาก prompt
นอกจากนี้ หากคุณเป็น junior programmer คุณจะมามัวสับสนหรือชักช้า ไม่ได้อีกต่อไป พี่ๆ senior ได้หา AI มาเป็นผู้ช่วยแล้ว การแข่งขันในทักษะการถามตอบกับ AI หรือ prompt engineering จึงสำคัญมาก ผู้ที่มีความรู้มากกว่า ก็จะถามได้ดีกว่า และมี productivity ที่สูงกว่า
หากมองในภาพรวม ในอนาคตอีกไม่กี่ปีข้างหน้า โลกกำลังเปลี่ยนจาก Wisdom of Crowds ที่ทุกคนบน internet ช่วยกัน collaborate ในทุกๆเรื่อง เหมือนที่ Wikipedia ทำในหลายสิบปีที่ผ่านมา กลายมาเป็น Wisdom of AI ที่เรา collaborate กับ AI โดยตรง แต่การมาของ AI ยังมีข้อจำกัดดังที่ได้กล่าวมา ณ ปัจจุบัน AI ก็มีความสามารถ เท่ากับ data ที่ใช้ train มันมา และที่เหลือก็เป็นสิ่งที่มัน generate ขึ้นเอง ซึ่งบางครั้งก็เกิดการหลงผิดหรือ “hallucination”
ในอีกไม่กี่ปีข้างหน้า การมาของ AI agent ที่ฉลาดขึ้น หรือแม้กระทั่ง AGI (Artificial General Intelligence) อาจทำให้ทุกอย่างใน software development process เปลี่ยนไป เพราะ AI จะไม่เป็นเพียง copilot แต่จะเป็น programmmer จริงๆเลย ทำให้ speed และวิธีการทำ software project เปลี่ยนไปในทางที่ดีขึ้น
โลกอาจไม่ต้องการ MVP (Minimum Viable Product) อีกต่อไป หรือการทำ product ด้วย agile methodology ที่เน้นการทำ software แบบเพิ่มทีละน้อย (incremental) ก็อาจไม่จำเป็น ในเมื่อ programmer ร่วมกับ AI สามารถนำเสนอ product ที่มี qaulity ในเวลาอันรวดเร็วได้ ต่างจากในอดีตการทำ software product นั้นเป็นเรื่องที่ยากและมีค่าใช้จ่ายสูง
กล่าวคือ software engineer ทุกคนจะกลายเป็น engineering manager ที่สามารถ delegate งานไปให้ AI agent ทำงานให้ได้ และตัวเขาเองก็ focus ไปที่ การกำหนด requirement การออกแบบ architecture และการตัดสินใจที่ยากๆ
นำไปสู่ยุคที่ใครๆก็สามารถทำ software ได้โดยไม่ยาก เราจะเห็น software แพร่กระจายในตลาดมากขึ้น เราจะเห็น software ที่ใช้เฉพาะงาน หรือ software ที่ใช้แล้วทิ้ง เพราะการมาของ AI agents
เราจะมี programmer มากขึ้นกว่าแต่ก่อน และ programmer ที่ใช้ AI ก็ต้องปรับตัวอยู่เสมอ เหมือนการเรียนรู้ภาษา programming ใหม่ๆ อยู่ตลอดเวลา
เมื่อ software แพร่หลายอย่างมาก จะทำให้ product quality ดีขึ้นมากด้วย MVP หรือ product ที่มี feature ไม่ครบก็จะไม่เป็นที่ยอมรับอีกต่อไป programmer สามารถสร้าง software ออกมาได้อย่างรวดเร็ว และโค้ดจะถูก test อยู่ตลอดเวลา เพราะ AI จะเขียน unit test ให้ด้วย ต้นทุน switching cost จาก software หนึ่งไปยังอีก software หนึ่ง ก็จะลดลงด้วย เพราะการ migrate data ก็จะง่ายขึ้นด้วยคาวมช่วยเหลือของ AI
บทสรุปของ Wisdom of AI อาจเรียกได้ว่า จะนำไปสู่ยุคทองของ programmer และ software companies ไม่ว่าจะเป็น startup หรือไม่ก็ตาม ที่จะสามารถสร้าง software ที่ดีกว่าและใช้เวลาน้อยลงส่งมอบงานตรงเวลาและคุม budget ได้ด้วย AI และยังสามารถ maintain quality ที่ดีได้ ถึงแม้ว่าปัจจุบัน AI ยังไม่ได้เก่งขนาดนั้น และเราต้องตรวจทานโค้ดของเราเองอยู่ แต่อีกไม่กี่ปีข้างหน้า เราจะได้เห็น AI agents ที่ไม่ใช่เพียงแค่เป็นผู้ช่วย (copilot) แต่เป็นผู้สร้าง (builder) ที่สามารถทำงานแทนเราได้เลย