ความแตกแยกในวงการ Software Engineering: เหตุใดการเขียนโปรแกรมแบบ "Pure" กับ "Impure" จึงสร้างความตึงเครียดในอุตสาหกรรม

ทีมชุมชน BigGo
ความแตกแยกในวงการ Software Engineering: เหตุใดการเขียนโปรแกรมแบบ "Pure" กับ "Impure" จึงสร้างความตึงเครียดในอุตสาหกรรม

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

ความแตกแยกครั้งใหญ่ในวงการ Engineering

โลกของการเขียนโปรแกรมได้พัฒนาไปสู่สองสาขาที่แตกต่างกันและมักจะขัดแย้งกัน Pure engineers ที่มักพบในโครงการ open-source และการพัฒนาเกม มุ่งแสวงหาความเป็นเลิศทางเทคนิคเหนือสิ่งอื่นใด พวกเขาสร้างสรรค์โซลูชันที่สวยงาม ปรับปรุงประสิทธิภาพอย่างไม่หยุดหย่อน และมองงานของตนเป็นศิลปะหรืองานวิจัย ในขณะที่ impure engineers ครองตำแหน่งเด่นในสภาพแวดล้อมขององค์กร ที่การส่งมอบฟีเจอร์ตรงเวลามีความสำคัญมากกว่าสถาปัตยกรรมโค้ดที่สมบูรณ์แบบ

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

ลักษณะของวิศวกรรมแบบบริสุทธิ์เทียบกับแบบไม่บริสุทธิ์

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

เมื่อความสมบูรณ์แบบพบกับความเป็นจริง

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

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

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

ความแตกแยกในเครื่องมือพัฒนา AI

ความแตกแยกทางวิศวกรรมนี้ยังอธิบายได้ว่าทำไมผู้ช่วยเขียนโค้ดปัญญาประดิษฐ์จึงได้รับปฏิกิริยาที่หลากหลาย Pure engineers มักดูถูกเครื่องมือ AI ว่าผลิตโค้ดที่ด้อยกว่า ในขณะที่นักพัฒนาในองค์กรยอมรับเครื่องมือเหล่านี้เพื่อเพิ่มผลิตภาพอย่างมีนัยสำคัญ ความแตกต่างอยู่ที่บริบทการทำงานของพวกเขา pure engineers ทำงานในขีดจำกัดของความเชี่ยวชาญทางเทคนิคกับปัญหาใหม่ ๆ ในขณะที่ impure engineers มักจัดการกับความท้าทายที่เข้าใจแล้วภายใต้กำหนดเวลาที่เข้มงวด

รูปแบบการใช้เครื่องมือ AI

  • วิศวกรแท้: มักจะไม่ให้ความสำคัญกับผู้ช่วยเขียนโค้ด AI

    • ทำงานกับปัญหาใหม่ล่าสุดที่ล้ำสมัย
    • ปฏิบัติงานในขอบเขตของความเชี่ยวชาญทางเทคนิค
    • AI ให้คุณค่าที่จำกัดสำหรับงานเฉพาะทาง
  • วิศวกรไม่แท้: ยอมรับ AI เพื่อเพิ่มประสิทธิภาพการทำงาน

    • จัดการกับปัญหาที่เข้าใจดีแต่ไม่คุ้นเคย
    • ทำงานภายใต้กำหนดเวลาที่จำกัด
    • รายงานการปรับปรุงประสิทธิภาพประมาณ 30% ด้วยเครื่องมือ AI

กองทุนตลาดปรับโครงสร้างลำดับความสำคัญของ Engineering

สภาพเศรษฐกิจปัจจุบันได้เปลี่ยนลำดับความสำคัญของอุตสาหกรรมให้ห่างจากโครงการ pure engineering ในช่วงการเฟื่องฟูของเทคโนโลยีในทศวรรษ 2010 บริษัทต่าง ๆ ให้ทุนสนับสนุนโครงการ open-source ที่ซับซ้อนและการย้ายถิ่นสถาปัตยกรรมที่ซับซ้อน บางส่วนเพื่อการตลาดนักพัฒนา ง예산ที่เข้มงวดกว่าในปัจจุบันได้ลดการลงทุนดังกล่าว บังคับให้ pure engineers หลายคนต้องปรับตัวเข้ากับบทบาทที่ปฏิบัติได้มากขึ้น

อย่างไรก็ตาม สมาชิกในชุมชนบางคนโต้แย้งว่าการเปลี่ยนแปลงนี้ไม่ใช่เรื่องถาวร วงจรความคลั่งไคล้ AI ปัจจุบันอาจสร้างสภาวะที่คล้ายกับทศวรรษที่แล้ว เพียงแต่เน้นพื้นที่ที่แตกต่างกัน เช่น โครงสร้างพื้นฐาน machine learning และ protocols

การหาสมดุลในแนวทาง Engineering

Engineers ที่ประสบความสำเร็จมากที่สุดมักพัฒนาทักษะในทั้งสองพื้นที่ โดยเข้าใจว่าเมื่อใดควรให้ความสำคัญกับความเป็นเลิศทางเทคนิคเทียบกับการส่งมอบที่ปฏิบัติได้ การพัฒนาเกมเป็นตัวอย่างของสมดุลนี้ ต้องการทั้ง pure engineering สำหรับระบบที่ต้องการประสิทธิภาพสูง และ impure engineering เพื่อตอบสนองความต้องการทางศิลปะและกำหนดเวลาการส่งมอบ

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

อ้างอิง: Pure and impure software engineering