อุตสาหกรรมเทคโนโลยีกำลังเผชิญกับการถกเถียงอย่างรุนแรงเกี่ยวกับแนวทางการเขียนโปรแกรม โดยนักพัฒนาแบ่งแยกออกเป็นสองค่ายที่แตกต่างกันอย่างชัดเจน การอภิปรายล่าสุดได้เน้นย้ำถึงความแตกแยกพื้นฐานระหว่าง 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