- เมื่อ เครื่องมือ CLI แบบเอเจนต์ อย่าง Claude Code, OpenAI Codex, Cursor กลายเป็นกระแสหลัก การใช้งาน “เอเจนต์โค้ดดิ้งแบบขนาน” ที่ รัน AI เอเจนต์หลายตัวพร้อมกัน เพื่อทำงานแบบขนานก็เพิ่มขึ้น
- วิศวกรหลายคนกำลังใช้แนวทางนี้เพื่อเพิ่มประสิทธิภาพการทำงาน และสามารถประยุกต์ใช้ได้เกินกว่าการพัฒนาไปสู่ งานรีเสิร์ช, การบำรุงรักษา, และงานตามคำสั่ง
- อย่างไรก็ตาม ก็ยังมีความกังวลว่า ความเร็วในการรีวิวโค้ด อาจกลายเป็นคอขวด หรือ จังหวะโฟลว์ (flow) อาจถูกทำลาย
- ยิ่งเป็นนักพัฒนาที่มีประสบการณ์มาก ก็ยิ่งมีแนวโน้ม คุ้นเคยกับการใช้เอเจนต์แบบขนาน เพราะมีทักษะในการทำหลายงานและรีวิวโค้ดไปพร้อมกัน
- ในการทำงานกับเอเจนต์แบบขนาน แนวปฏิบัติวิศวกรรมพื้นฐานอย่าง การทดสอบ, การแบ่งงานเป็นหน่วยเล็ก, การรีแฟกเตอร์, และการรีวิวโค้ด คือ องค์ประกอบสำคัญในการรักษาความน่าเชื่อถือและคุณภาพ
การแพร่หลายของ AI เอเจนต์แบบขนานและการเปลี่ยนแปลงวิธีพัฒนา
- เมื่อ เครื่องมือ CLI แบบเอเจนต์ อย่าง Claude Code, OpenAI Codex, Cursor กลายเป็นกระแสหลัก ก็เริ่มเห็นเทรนด์ที่วิศวกรรันเอเจนต์หลายตัว พร้อมกันเพื่อทำงานแบบขนาน
- Sid Bidasaria วิศวกรของ Anthropic กล่าวในบทสนทนา ว่าเขารันเอเจนต์หลายตัวระหว่างคุยงานเพื่อ เพิ่มประสิทธิภาพการทำงาน
- Simon Willison ผู้เชี่ยวชาญด้าน AI engineering อธิบายในบทความ "embracing the parallel coding agents lifestyle" ดังนี้
- ตอนแรกเขาเคยสงสัย เพราะ การรีวิวโค้ดที่ AI สร้างขึ้นเป็นคอขวด แต่ในช่วงไม่กี่สัปดาห์ที่ผ่านมา เขาก็เริ่มใช้เอเจนต์แบบขนานอย่างเป็นธรรมชาติ
- แม้จะสามารถรีวิวและนำไปใช้ได้เพียงการเปลี่ยนแปลงสำคัญทีละอย่าง แต่ก็มี งานที่เริ่มทำแบบขนานได้มากขึ้นโดยไม่เพิ่มภาระทางความคิดมากนัก
- การใช้เอเจนต์แบบขนานมีประโยชน์อย่างยิ่งกับ งานรีเสิร์ช, งานบำรุงรักษา, และงานตามคำสั่ง
ผลกระทบต่อแนวปฏิบัติวิศวกรรมซอฟต์แวร์แบบเดิม
- การทำงานด้วยเอเจนต์แบบขนานอาจ พลิกแนวปฏิบัติวิศวกรรมซอฟต์แวร์ที่สั่งสมมาหลายทศวรรษ
- หากวิศวกรที่รันเอเจนต์หลายตัวพร้อมกัน มีประสิทธิภาพมากกว่า เพื่อนร่วมงานที่ทำงานแบบ "single-threaded" โดยโฟกัสทีละปัญหา ก็อาจเกิดขึ้นได้จริง
- ในยุคก่อน AI งานวิศวกรรมให้ความสำคัญกับการรักษา สภาวะโฟลว์ (flow, ภาวะจดจ่อ)
- ทำความเข้าใจองค์ประกอบ → สร้าง ตรวจสอบ และทำซ้ำกับโซลูชัน → ส่ง pull request หรือ merge และ deploy
- การหยุดชะงักระหว่างกระบวนการนี้จะรบกวนสมาธิ และต้องใช้เวลาเพื่อกลับเข้าสู่จังหวะเดิมอีกครั้ง จึงมีนักพัฒนาจำนวนมากที่ให้ความสำคัญกับ การมีเวลาจดจ่อแบบต่อเนื่อง
- แต่ก็ไม่ได้เป็นจริงกับวิศวกรที่มีประสิทธิภาพสูงทุกคน เพราะบางคนเก่งเรื่อง การทำหลายงานและการสลับบริบท
- วิศวกรที่มีประสิทธิภาพที่สุดคนหนึ่งที่ผู้เขียนรู้จักสมัยเป็นผู้จัดการ คือคนที่ สลับบริบทบ่อยและจัดการหลายงานพร้อมกัน
- ตารางงานหนึ่งวัน: รีวิวโค้ด → งานเขียนโค้ด → standup → เขียนโค้ด
(ในความเป็นจริงมี การขัดจังหวะอย่างต่อเนื่อง เช่น คำขอรีวิวโค้ด คำขอความช่วยเหลือ คำถามจากผู้จัดการ เป็นต้น)
ความเหมาะสมของวิศวกรอาวุโสกับเอเจนต์แบบขนาน
- มีความเป็นไปได้ว่า วิศวกรระดับซีเนียร์ขึ้นไปจะปรับตัวกับการทำงานร่วมกับ AI เอเจนต์แบบขนานได้อย่างเป็นธรรมชาติ
- สามารถเก็บ เวิร์กโฟลว์แบบขนาน ของสมาชิกทีมไว้ในหัวได้
- ทำ code review ข้าม 2~5 workstreams ได้
- มีทักษะ จัดการ interruption เพื่อขับเคลื่อนงานให้คืบหน้า แม้สมาธิจะถูกรบกวนอยู่ตลอด
- มีความสามารถในการสั่งงานผู้อื่น จึงสามารถ มอบหมายงานและอธิบายงานเร่งด่วน ได้
- มีทักษะการเขียน จึงสื่อสารเป็นลายลักษณ์อักษรได้อย่างมีประสิทธิภาพ เช่น code review, เอกสาร RFC, การเขียน ticket, การวิจารณ์งานของเพื่อนร่วมทีม
- การใช้ AI เอเจนต์อาจช่วยให้ วิศวกรที่ต้องการเพิ่มประสิทธิภาพการทำงาน พัฒนาคุณสมบัติที่ ผู้นำทางเทคนิคที่ยอดเยี่ยมควรมี
- จนถึงตอนนี้ คนที่ใช้เอเจนต์แบบขนานได้สำเร็จส่วนใหญ่พบได้ในกลุ่ม วิศวกรระดับซีเนียร์ขึ้นไป
- อย่างไรก็ตาม Armin Ronacher ผู้สร้าง Flask กล่าวว่าปัจจุบันเขาไม่ได้ใช้เอเจนต์แบบขนานมากเหมือนในอดีต
- "สมองของผมมีขีดจำกัดในปริมาณที่สามารถรีวิวได้"
อนาคตและความไม่แน่นอนของการทำงานแบบเอเจนต์ขนาน
- ตอนนี้เราได้เข้าสู่ยุคใหม่ที่ นักพัฒนาทุกคนสามารถเริ่มทำงานแบบขนานด้วยโค้ดดิ้งเอเจนต์ ได้แล้ว
- ยังไม่แน่ชัดว่าสิ่งนี้จะทำให้วิศวกรมีประสิทธิภาพมากขึ้นจริง หรือเพียงแค่ ทำให้รู้สึกว่าตัวเองมีประสิทธิภาพมากขึ้น
- เป็นไปได้ว่า วิศวกรที่จดจ่อทีละเรื่อง อาจสร้างซอฟต์แวร์ที่น่าเชื่อถือกว่าเมื่อเวลาผ่านไป และ
- การทำงานกับเอเจนต์แบบขนานอาจนำไปสู่ ปัญหาและงานวนซ้ำที่มากขึ้น จนหักล้างผลประโยชน์ที่ได้
- อย่างไรก็ตาม คาดว่าจะมีนักพัฒนามากขึ้นเรื่อย ๆ ที่ ทดลองใช้เอเจนต์แบบขนาน
ความสำคัญของพื้นฐานวิศวกรรมซอฟต์แวร์ในการทำงานกับ AI เอเจนต์
- แม้จะใช้ AI เอเจนต์ ความรู้พื้นฐานด้านวิศวกรรมซอฟต์แวร์ก็ยังสำคัญ
- การทดสอบ: ใช้ unit test กับทุก side project (ไม่ไว้วางใจงานของตัวเองหากไม่มีการตรวจสอบ)
- งานขนาดเล็กที่อธิบายได้ชัดเจน: อธิบายงานที่มีขอบเขตเล็กและยกตัวอย่างให้ชัด
- การรีแฟกเตอร์: ทุก ๆ งานลำดับที่ 3~4 จะสั่งให้เอเจนต์รีแฟกเตอร์โค้ดที่เขียนขึ้นมา (เช่น แยก method, ย้ายไปคลาสใหม่)
- การรีวิว: ติดตามงานของเอเจนต์
- ทำงานเล็ก ๆ ด้วยตัวเอง: เปิด IDE ทิ้งไว้และแก้โค้ดไม่กี่บรรทัดด้วยตัวเอง เพื่อรักษาการรับรู้ต่อ codebase
- วิศวกรคนอื่น ๆ ก็เล่าประสบการณ์ในทำนองเดียวกันว่า แนวปฏิบัติทางวิศวกรรมที่ "บังคับ" ให้เอเจนต์ผ่านการทดสอบทั้งหมด นำไปสู่ผลลัพธ์ที่ดีกว่า
- เนื่องจาก AI เอเจนต์ ไม่เป็นเชิงกำหนดและไม่น่าเชื่อถือได้เต็มที่ แนวปฏิบัติเหล่านี้จึงช่วยให้เกิดแนวทางใช้งานจริงที่น่าเชื่อถือมากขึ้น
7 ความคิดเห็น
อย่างที่ Armin Ronacher กล่าวไว้ ผมคิดว่าคอขวดคือภาระด้านการรับรู้ของผู้ตรวจทาน หากยุ่งอยู่แล้วกับการเขียนโค้ดหรืองานอื่น ๆ ก็เท่ากับว่าไม่สามารถนำไปใช้ได้ และผมยังคิดว่าอาจเกิดผลย้อนกลับ เช่น คุณภาพลดลงโดยไม่คาดคิด หรือใช้เวลาในการตรวจทานมากขึ้น
ผมกังวลว่าการทำหลายอย่างพร้อมกันอาจกลายเป็นเรื่องปกติสำหรับนักพัฒนา ภายใต้ข้ออ้างเรื่องการใช้ AI และการเพิ่มผลิตภาพ
อย่าง fe be data นี่ได้ถึงแค่ 3 เอเจนต์ แต่ถ้ามากกว่านั้นสมองตามไม่ทันเลย T.T
เพราะ AI ตอนนี้ ADHD กลายเป็นเรื่องปกติใหม่แล้วเหรอ? ไม่ต้องไปโรงพยาบาลแล้วเหรอ?
คิดซะว่าเป็นเพื่อนร่วมงานที่ไม่รู้จักเหน็ดเหนื่อย แล้วก็ใช้หลายตัวโดยคอยฆ่าทิ้งบ้างปลุกกลับมาบ้างเรื่อย ๆ 5555
> วิศวกรที่มีประสิทธิภาพมากที่สุดที่ผมรู้จักตอนเป็นผู้จัดการ คือคนที่สลับคอนเท็กซ์บ่อยและจัดการหลายงานพร้อมกันได้
> เรียนรู้ความสามารถในการรับมือกับการขัดจังหวะ เพื่อสร้างความคืบหน้าได้แม้ในสถานการณ์ที่สมาธิถูกรบกวนอย่างต่อเนื่อง
เทียบกับ
> ลดการสลับคอนเท็กซ์ ทำงานทีละอย่างให้เสร็จแล้วค่อยไปงานถัดไป และบันทึกความจำไว้ในเครื่องมือภายนอก
> การสลับบริบทบ่อยๆ (context switching) เพิ่มภาระการควบคุมของสมองส่วน prefrontal และ parietal lobe
> - https://th.news.hada.io/topic?id=24026
ส่วนตัวแล้วผมมักเกิดความอยากทำหลายอย่างพร้อมกันอยู่เสมอ แต่เพราะมันเหนื่อยเกินไปเลยทำให้ต้องระวังไว้ครับ
ผมคิดว่าวิธีที่เรียบง่ายและทำได้อย่างสม่ำเสมอน่าจะดีกว่าครับ
สมองของมนุษย์ก็ไม่ได้ทำงานแบบขนานนี่นา 555 ยังไงเสียถ้าสุดท้ายต้องตรวจทานกันแบบลำดับอยู่ดี การทำงานแบบขนานก็คงไม่ได้มีความหมายมากขนาดนั้นหรอก
ถ้าคิดว่าเป็น PM ไม่ใช่เพื่อนร่วมทีมฝั่งนักพัฒนา แล้วทำแบบขนานพร้อมกัน มันก็พอใช้ได้อยู่เหมือนกันครับ