ยุคทองครั้งที่ 3 ของวิศวกรรมซอฟต์แวร์ - Grady Booch
(youtube.com)The third golden age of software engineering – thanks to AI, with Grady Booch
วิดีโอนี้เป็นบทสนทนากับ Grady Booch ผู้บุกเบิกด้านวิศวกรรมซอฟต์แวร์ โดยโต้แย้งข้ออ้างที่ว่าการผงาดขึ้นของปัญญาประดิษฐ์ (AI) หมายถึงจุดจบของวิศวกรรมซอฟต์แวร์ และชี้ให้เห็นว่าแท้จริงแล้วเรากำลังก้าวเข้าสู่ 'ยุคทองครั้งที่ 3' ต่างหาก เนื้อหาตีความประวัติศาสตร์ของวิศวกรรมซอฟต์แวร์ใหม่ในฐานะกระบวนการยกระดับของ abstraction และเปรียบเทียบจุดเปลี่ยนทางเทคโนโลยีในอดีตกับการปฏิวัติ AI ในปัจจุบัน ผ่านมุมมองนี้จึงสื่อว่า AI ไม่ได้หยุดอยู่แค่การทำให้การเขียนโค้ดเป็นอัตโนมัติ แต่กำลังเร่งการเปลี่ยนผ่านไปสู่หัวใจของงานวิศวกรรม นั่นคือการคิดเชิงระบบและการจัดการความซับซ้อน
1. บทนำ (Introduction)
ตรงกันข้ามกับความกังวลที่ถูกหยิบยกขึ้นมาเป็นระยะเกี่ยวกับ "จุดจบของวิศวกรรมซอฟต์แวร์" Grady Booch เห็นว่าการเปลี่ยนแปลงในปัจจุบันไม่ใช่การล่มสลายของอุตสาหกรรม แต่เป็นวิวัฒนาการ วิศวกรรมซอฟต์แวร์ไม่ได้เป็นเพียงการเขียนโค้ด แต่คือการสร้างโซลูชันที่เหมาะสมที่สุดโดยรักษาสมดุลของแรงคงที่และแรงพลวัตต่าง ๆ เช่น กฎทางกายภาพ ความคุ้มค่าทางเศรษฐกิจ และจริยธรรม บทความนี้วิเคราะห์ประวัติศาสตร์ซอฟต์แวร์ตั้งแต่ทศวรรษ 1940 จนถึงปัจจุบัน โดยแบ่งเป็น 'ยุคทอง' 3 ช่วง และสำรวจแก่นแท้ของการเปลี่ยนแปลงที่ AI จะนำมา
2. วิวัฒนาการของวิศวกรรมซอฟต์แวร์ (The Evolution of Software Engineering)
2.1 ยุคทองครั้งที่ 1: Algorithmic Abstraction (The First Golden Age)
- ช่วงเวลา: ปลายทศวรรษ 1940 ~ ปลายทศวรรษ 1970
- ลักษณะเด่น: เป็นช่วงที่ฮาร์ดแวร์และซอฟต์แวร์เริ่มแยกออกจากกัน ในระยะแรก machine language กับฮาร์ดแวร์ยังเป็นสิ่งเดียวกัน แต่ต่อมาซอฟต์แวร์ค่อย ๆ ถูกมองว่าเป็นสิ่งที่มีมูลค่าเชิงอุตสาหกรรมอย่างเป็นอิสระ
- โจทย์สำคัญ: เป้าหมายหลักคือการคำนวณทางคณิตศาสตร์และการทำให้กระบวนการทางธุรกิจเป็นอัตโนมัติ ความซับซ้อนในยุคนั้นเรียบง่ายกว่าปัจจุบัน แต่การใช้ทรัพยากรฮาร์ดแวร์ที่จำกัดให้เกิดประสิทธิภาพสูงสุดคือโจทย์หลัก
- abstraction: 'Algorithmic Abstraction' เป็นแนวคิดหลัก มุมมองที่ครอบงำคือการมองโลกเป็นข้อมูลและกระบวนการ (ขั้นตอน) ที่ใช้จัดการข้อมูลเหล่านั้น
2.2 ยุคทองครั้งที่ 2: Object-Oriented และแพลตฟอร์ม (The Second Golden Age)
- ช่วงเวลา: ปลายทศวรรษ 1970 ~ ต้นทศวรรษ 2000
- ภูมิหลัง: เมื่อความต้องการซอฟต์แวร์เพิ่มขึ้นอย่างระเบิด คุณภาพและผลิตภาพกลับตามไม่ทัน จึงเกิด 'Software Crisis' ขึ้น
- การเปลี่ยนผ่านทางเทคนิค: เพื่อจัดการความซับซ้อน จึงเกิดกระบวนทัศน์ 'Object-Oriented' ที่รวมข้อมูลและกระบวนการไว้ในหน่วยเดียวกัน สิ่งนี้ทำให้เกิด abstraction ระดับที่สูงขึ้น และกลายเป็นฐานสำหรับการสร้างระบบขนาดใหญ่
- การขยายตัว: การแพร่หลายของคอมพิวเตอร์ส่วนบุคคล (PC) และการเกิดขึ้นของอินเทอร์เน็ต ได้ขยายบทบาทของซอฟต์แวร์จากเรื่องธุรกิจไปสู่การเป็นโครงสร้างพื้นฐานของอารยธรรม (interstitial spaces of civilization) นอกจากนี้ แนวคิดเรื่องโอเพนซอร์สและธุรกิจแพลตฟอร์ม (เช่น SaaS) ก็เริ่มก่อตัวขึ้นในช่วงนี้
2.3 ยุคทองครั้งที่ 3: ระบบและ AI (The Third Golden Age)
- ช่วงเวลา: ทศวรรษ 2000 ~ ปัจจุบัน
- สถานการณ์ปัจจุบัน: เรากำลังใช้ชีวิตอยู่ในยุคทองครั้งที่ 3 แล้ว จุดเด่นของช่วงนี้คือประเด็นด้านระบบขนาดมหึมา ความมั่นคงปลอดภัย ความปลอดภัยเชิงระบบ และจริยธรรม ได้กลายมาเป็นโจทย์วิศวกรรมหลักที่ก้าวข้ามตัวโปรแกรมเดี่ยว ๆ
- บทบาทของ AI: เครื่องมือ AI (เช่น LLM และ coding agent) ไม่ได้มาแทนที่งานวิศวกรรม แต่ทำหน้าที่เป็นเครื่องมือที่ยกระดับ abstraction ขึ้นอีกขั้น โดยทำให้เราสามารถใช้ภาษาธรรมชาติได้คล้ายภาษาโปรแกรม
3. ผลกระทบของ AI ต่อวิศวกรรมซอฟต์แวร์ (The Impact of AI)
3.1 การเร่งอัตโนมัติและ abstraction
AI ช่วยทำให้การสร้างโค้ดในรูปแบบที่ซ้ำ ๆ และเป็นแพตเทิร์นทั่วไปเป็นอัตโนมัติ เช่นเดียวกับในอดีตที่ assembly language ถูกแทนที่ด้วยภาษาระดับสูง สิ่งนี้ช่วยให้วิศวกรหลุดพ้นจากรายละเอียดการติดตั้งใช้งานระดับล่าง และหันไปโฟกัสกับการแก้ปัญหาในระดับที่สูงขึ้นได้
3.2 การโต้แย้งคำทำนายของ Dario Amodei
ต่อคำทำนายของ Dario Amodei CEO ของ Anthropic ที่ว่า "ภายใน 12 เดือน วิศวกรรมซอฟต์แวร์จะถูกทำให้เป็นอัตโนมัติ" Booch โต้แย้งอย่างหนักแน่น
- เหตุผล 1: AI เก่งในการทำซ้ำแพตเทิร์นที่เคยเรียนรู้มาแล้ว แต่ไม่สามารถแก้โจทย์ที่เป็นแก่นแท้ของงานวิศวกรรมได้ นั่นคือ 'การตัดสินใจเชิงออกแบบ' และ 'การสร้างสมดุลระหว่างข้อจำกัดหลากหลายด้าน (ต้นทุน กฎทางกายภาพ จริยธรรม ฯลฯ)'
- เหตุผล 2: AI ในปัจจุบันมีอคติไปทางแพตเทิร์นที่มีศูนย์กลางอยู่บนเว็บ และยังขาดความสามารถในการออกแบบระบบฝังตัวที่ปฏิสัมพันธ์กับโลกกายภาพ หรือระบบ mission-critical ที่ซับซ้อนแบบองค์รวม
4. สมรรถนะหลักของวิศวกรในอนาคต (Future Competencies)
เมื่อกำแพงในการเข้าสู่การเขียนโค้ดลดลง สมรรถนะหลักที่วิศวกรต้องมีจะเปลี่ยนจาก 'การเขียนโค้ด' ไปสู่ 'การคิดเชิงระบบ (Systems Thinking)'
- Systems Theory: เพื่อทำความเข้าใจและออกแบบระบบที่ซับซ้อน การเข้าใจทฤษฎีพื้นฐาน เช่น ทฤษฎีระบบของ Herbert Simon ทฤษฎีความซับซ้อนของ Santa Fe Institute หรือ 'Society of Mind' ของ Marvin Minsky จะยิ่งสำคัญอย่างยิ่ง
- ความรับผิดชอบและวิจารณญาณ: ความสามารถในการตัดสินของมนุษย์จะยิ่งสำคัญมากขึ้น ทั้งในการตรวจสอบผลลัพธ์ที่ AI สร้างขึ้น และในการควบคุมระบบจากมุมมองด้านความมั่นคงปลอดภัยและจริยธรรม
5. บทสรุป (Conclusion)
วิศวกรรมซอฟต์แวร์ไม่ได้ตายไป ตรงกันข้าม มันกำลังก้าวเข้าสู่ช่วงขยายตัวใหม่ที่มีเพียงจินตนาการเท่านั้นที่เป็นข้อจำกัด AI ช่วยให้ผู้ที่ไม่ใช่ผู้เชี่ยวชาญสามารถสร้างซอฟต์แวร์ได้ จึงผลักดันการทำให้การสร้างสรรค์เป็นประชาธิปไตยมากขึ้น ขณะเดียวกันก็เป็นเครื่องมือทรงพลังที่ช่วยให้วิศวกรมืออาชีพแก้ปัญหาที่ใหญ่และซับซ้อนยิ่งกว่าเดิมได้ ในประวัติศาสตร์ ทุกครั้งที่เกิดการยกระดับ abstraction ทางเทคโนโลยี ผู้ที่ยอมรับเทคโนโลยีใหม่ไม่ได้ถูกคัดออก แต่กลับบินได้สูงยิ่งกว่าเดิม ดังนั้น เราควรมองการเปลี่ยนแปลงครั้งนี้ไม่ใช่วิกฤต แต่เป็นโอกาสในการขยายขอบเขตของงานวิศวกรรม
1 ความคิดเห็น
การถกเถียงทั้งหมดก่อนที่หลักฐานจะปรากฏออกมาคือการด่วนตัดสิน