เมื่อปัญญาประดิษฐ์เปลี่ยนแปลงการพัฒนาซอฟต์แวร์ด้วยการทำให้สามารถสร้างโค้ดได้อย่างรวดเร็ว วิธีการที่ไม่คาดคิดจากปลายทศวรรษ 1990 กำลังได้รับความสนใจใหม่ Extreme Programming ( XP ) ซึ่งครั้งหนึ่งเคยถูกมองว่าเป็นแนวทางที่รุนแรงด้วยแนวปฏิบัติอย่าง pair programming บังคับ กำลังถูกพิจารณาใหม่ในฐานะทางแก้ไขปัญหาที่เกิดจากการพัฒนาที่เร่งความเร็วด้วย AI
ประเด็นหลักไม่ได้เกี่ยวกับความเร็วในการพิมพ์หรือการสร้างโค้ดอีกต่อไป เครื่องมือ AI สามารถสร้างแอปพลิเคชันทั้งหมดได้ในเวลาเพียงไม่กี่ชั่วโมง แต่การเร่งความเร็วนี้ได้สร้างความท้าทายใหม่: ทีมงานกำลังผลิตซอฟต์แวร์เร็วกว่าที่พวกเขาจะตรวจสอบได้ว่ามันมีประโยชน์หรือถูกต้องจริงหรือไม่
ความท้าทายในการสร้างโค้ดด้วย AI
- ความแม่นยำของ LLM ลดลงเมื่อมีหน้าต่างบริบทที่ยาวขึ้น
- ความเสี่ยงในการผลิตซอฟต์แวร์เร็วกว่าขีดความสามารถในการตรวจสอบ
- ตัวแทนอัตโนมัติสามารถสร้างชั้นของตรรกะที่ไม่ได้รับการตรวจสอบ
- โค้ดที่เปราะบางและยุ่งเหยิงกลายเป็นสิ่งที่มีค่าใช้จ่ายสูงในการเปลี่ยนแปลง
มุมมองที่พัฒนาของ Kent Beck เกี่ยวกับ AI และการเขียนโปรแกรม
ผู้สร้าง Extreme Programming เองได้สำรวจอย่างแข็งขันว่า AI เข้ากับแนวปฏิบัติการพัฒนาสมัยใหม่อย่างไร Kent Beck ได้ยอมรับว่าแม้ทักษะการเขียนโปรแกรมแบบดั้งเดิม 90% อาจล้าสมัยไปด้วย AI แต่ 10% ที่เหลือกลับมีค่าเพิ่มขึ้นอย่างทวีคูณ การเปลี่ยนแปลงนี้เน้นย้ำสิ่งที่ XP ถูกออกแบบมาเพื่อจัดการ: องค์ประกอบของมนุษย์ในการพัฒนาซอฟต์แวร์ที่ระบบอัตโนมัติไม่สามารถทดแทนได้
การสนทนาในชุมชนเผยให้เห็นว่านักพัฒนาหลายคนพบว่าแนวทาง test-first ของ XP มีประโยชน์เป็นพิเศษเมื่อทำงานกับโค้ดที่สร้างโดย AI แนวปฏิบัตินี้ให้วิธีที่เชื่อถือได้ในการตรวจสอบผลลัพธ์ของ AI และทำให้ง่ายขึ้นในการสร้างโค้ดที่มีความหมายจากเครื่องมือ AI ตั้งแต่แรก
ปัญหาของการเร่งความเร็ว AI แบบไม่มีขอบเขต
งานวิจัยแสดงให้เห็นว่าโมเดลภาษาขนาดใหญ่มีความแม่นยำลดลงเมื่อหน้าต่างบริบทยาวขึ้น หมายความว่าเซสชันการเขียนโค้ดด้วย AI ที่ยืดเยื้อมักจะให้ผลลัพธ์ที่เปราะบางมากขึ้น สิ่งนี้สร้างปัญหาที่ซับซ้อนขึ้นเมื่อตรรกะที่สร้างโดย AI ที่ไม่ได้รับการตรวจสอบสร้างต่อเนื่องจากตัวมันเอง ทำให้เกิดระบบที่ซับซ้อนซึ่งกลายเป็นสิ่งที่แก้ไขได้ยากและมีค่าใช้จ่ายสูงในภายหลัง
การเน้นของ XP ในเรื่องชุดงานเล็ก ๆ การตอบรับอย่างต่อเนื่อง และข้อจำกัดที่มีเจตนา จัดการกับปัญหานี้โดยตรง ด้วยการชะลอความเร็วเพียงพอที่จะตรวจสอบแต่ละขั้นตอน ทีมงานสามารถใช้ประโยชน์จากความเร็วของ AI ในขณะที่หลีกเลี่ยงกับดักของการสร้างระบบที่ซับซ้อนซึ่งพลาดเป้าหมายโดยสิ้นเชิง
อัตราความสำเร็จของโปรเจกต์ซอฟต์แวร์ตลอดช่วงเวลา
- 1994: 16% ของโปรเจกต์ส่งมอบตรงเวลาและไม่เกินงบประมาณ
- 2012: อัตราความสำเร็จ 37%
- 2020: อัตราความสำเร็จ 31%
- การปรับปรุงสุทธิในช่วง 26 ปี: เพิ่มขึ้น 15 เปอร์เซ็นต์พอยต์
Pair Programming ได้รับความหมายใหม่
แนวปฏิบัติของ pair programming ซึ่ง XP ทำให้มีชื่อเสียงในการลดผลผลิตดิบลงครึ่งหนึ่งแต่เพิ่มความเข้าใจร่วมกันเป็นสองเท่า กำลังถูกตีความใหม่สำหรับยุค AI นักพัฒนาบางคนกำลังสำรวจแนวทางการจับคู่ที่ผสมผสานความร่วมมือของมนุษย์กับความช่วยเหลือจาก AI แม้ว่านักบริสุทธิ์จะโต้แย้งว่าประโยชน์ของ pair programming ที่แท้จริงเกิดขึ้นได้เฉพาะระหว่างมนุษย์ที่สามารถสร้างบริบทร่วมกันที่ยั่งยืน
ฉันคิดว่าสถานการณ์ที่เหมาะสมคือโปรแกรมเมอร์สองคนที่จับคู่กันใช้ชุด AI agents ร่วมกันในสาขาการทำงานเดียวกัน มันเป็นวงจรป้อนกลับที่เหมาะสมของการวางแผน การตรวจสอบ การสร้าง และการทดสอบแบบจับคู่
ข้อมูลเชิงลึกที่สำคัญคือแม้ว่า AI สามารถเร่งการสร้างโค้ด แต่มันไม่สามารถทดแทนการตัดสินใจของมนุษย์ที่จำเป็นในการกำหนดว่าโค้ดนั้นแก้ปัญหาจริงสำหรับผู้ใช้จริงหรือไม่
ค่านิยมหลักของ XP สำหรับยุค AI
- ความเรียบง่าย: ลดความซับซ้อนของระบบ
- การสื่อสาร: รักษาความสามัคคีของทีม
- การให้ข้อมูลป้อนกลับ: ขับเคลื่อนการเรียนรู้และการปรับตัว
- ความเคารพ: สร้างความปลอดภัยและความไว้วางใจ
- ความกล้าหาญ: ทำให้เกิดความโปร่งใสและการเปลี่ยนแปลง
เหตุใดวิธีการจึงยังคงสำคัญหลังจากการนวัตกรรมหลายทศวรรษ
แม้จะมีคลื่นของความก้าวหน้าทางเทคโนโลยีจากภาษาโปรแกรมระดับสูงไปจนถึงแพลตฟอร์มคลาวด์และตอนนี้คือ AI อัตราความสำเร็จของโครงการซอฟต์แวร์ได้ปรับปรุงเพียงเล็กน้อยในช่วง 30 ปีที่ผ่านมา การศึกษา Standish Chaos แสดงให้เห็นว่าอัตราการส่งมอบโครงการที่ประสบความสำเร็จเพิ่มขึ้นจากเพียง 16% ในปี 1994 เป็น 31% ในปี 2020 - การเพิ่มขึ้นเพียงเล็กน้อยแม้จะมีการเปลี่ยนแปลงที่ปฏิวัติวงการในด้านเครื่องมือ
ความท้าทายที่ยังคงอยู่นี้บ่งบอกว่าคอขวดในการส่งมอบซอฟต์แวร์ไม่ใช่ความสามารถทางเทคนิค แต่เป็นปัจจัยด้านมนุษย์และองค์กรที่ XP มุ่งเป้าไปโดยเฉพาะ: การสื่อสาร วงจรป้อนกลับ ความเข้าใจร่วมกัน และการปรับให้สอดคล้องกับความต้องการของผู้ใช้
ค่านิยมหลักของวิธีการนี้ในเรื่องความเรียบง่าย การสื่อสาร การตอบรับ ความเคารพ และความกล้าหาญยังคงมีความเกี่ยวข้องในวันนี้เช่นเดียวกับในทศวรรษ 1990 หลักการเหล่านี้ช่วยทีมงานนำทางความซับซ้อนที่เพิ่มขึ้นซึ่งมาพร้อมกับการพัฒนาที่ขับเคลื่อนด้วย AI เพื่อให้แน่ใจว่าการสร้างโค้ดที่เร็วขึ้นจะแปลเป็นผลลัพธ์ที่ดีขึ้นแทนที่จะเป็นเพียงผลผลิตที่มากขึ้น
อ้างอิง: Should we revisit Extreme Programming in the age of AI?