LLMs สร้างความท้าทายใหม่เมื่อการสร้างโค้ดเร็วกว่าความเข้าใจและกระบวนการตรวจสอบของทีม

ทีมชุมชน BigGo
LLMs สร้างความท้าทายใหม่เมื่อการสร้างโค้ดเร็วกว่าความเข้าใจและกระบวนการตรวจสอบของทีม

การเติบโตของ Large Language Models ( LLMs ) ในการพัฒนาซอฟต์แวร์ได้จุดประกายการถกเถียงที่สำคัญเกี่ยวกับว่าเครื่องมือเหล่านี้ช่วยแก้ไขความท้าทายหลักด้านผลิตภาพของอุตสาหกรรมได้จริงหรือไม่ ในขณะที่การสร้างโค้ดด้วย AI สัญญาว่าจะทำให้รอบการพัฒนาเร็วขึ้น นักพัฒนาที่มีประสบการณ์กำลังแสดงความกังวลว่าอาจสร้างคอขวดใหม่ในการทำงานร่วมกันของทีมและการประกันคุณภาพโค้ด

คอขวดที่แท้จริงยังคงไม่เปลี่ยนแปลง

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

นักพัฒนาคนหนึ่งที่มีประสบการณ์มากกว่า 30 ปีกล่าวว่าการแปลความต้องการทางธุรกิจเป็นโซลูชันทางเทคนิคเป็นส่วนที่ยากที่สุดเสมอมา โดยเปรียบเทียบกับความพยายามในการ offshoring ช่วงต้นยุค 2000 ที่ล้มเหลวด้วยเหตุผลที่คล้ายกัน ความท้าทายไม่ได้อยู่ที่การสร้างโค้ดเพียงอย่างเดียว แต่ต้องมั่นใจว่าโค้ดนั้นตอบสนองความต้องการทางธุรกิจที่แท้จริงผ่านการให้ข้อมูลย้อนกลับและการทำงานร่วมกันแบบวนซ้ำ

ปัญหาคอขวดในการพัฒนาซอฟต์แวร์แบบดั้งเดิม:

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

LLMs เปลี่ยนภาระงานแทนที่จะขจัดออกไป

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

ต้นทุนที่ใหญ่ที่สุดของโค้ดคือการเข้าใจมัน — ไม่ใช่การเขียนมัน

การเปลี่ยนแปลงนี้กลายเป็นปัญหาโดยเฉพาะเมื่อโค้ดไหลผ่านระบบเร็วกว่าที่ทีมจะสามารถหารือหรือตรวจสอบได้อย่างเหมาะสม ผลลัพธ์มักเป็นกระบวนการตรวจสอบที่ซับซ้อนมากขึ้นแทนที่จะเป็นการปรับปรุงความเร็วโดยรวม

ความท้าทายใหม่ที่เกิดจาก LLMs:

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

ความท้าทายของระบบเก่าและการถ่ายทอดความรู้

การอภิปรายเผยให้เห็นมุมมองที่น่าสนใจเกี่ยวกับวิธีที่ LLMs อาจช่วยในการดูแลรักษาโค้ดเก่า นักพัฒนาบางคนเห็นศักยภาพในการใช้ AI เพื่อค้นหาผ่านโค้ดเบสเก่าอย่างรวดเร็วและระบุส่วนที่เกี่ยวข้อง โดยเฉพาะเมื่อทีมพัฒนาเดิมไม่มีอยู่แล้ว อย่างไรก็ตาม คนอื่นๆ เน้นย้ำว่าวัฒนธรรมองค์กร แนวทางการจัดการ และการทำงานร่วมกันข้ามสายงานยังคงเป็นปัจจัยหลักในความสำเร็จของโครงการ

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

ด้านที่ LLMs แสดงให้เห็นถึงศักยภาพ:

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

องค์ประกอบของมนุษย์ยังคงอยู่

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

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

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

อ้างอิง: Writing Code Was Never The Bottleneck