วิศวกรค้นพบการคิดเชิงระบบ: ทำไมการปรับแต่งโค้ดให้ดีขึ้นเพียงอย่างเดียวไม่พอ

ทีมชุมชน BigGo
วิศวกรค้นพบการคิดเชิงระบบ: ทำไมการปรับแต่งโค้ดให้ดีขึ้นเพียงอย่างเดียวไม่พอ

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

กับดักของการปรับแต่งพารามิเตอร์

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

หลายครั้งที่ฉันเห็นวิศวกรปรับแต่งและเพิ่มประสิทธิภาพโค้ดของระบบที่มีอยู่ โดยไม่เคยตั้งคำถามกับกระบวนการนั้นเอง หรือแม้แต่กระบวนทัศน์

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

เหนือกว่าโค้ด: การคิดเชิงระบบในทางปฏิบัติ

การอภิปรายขยายออกไปเกินกว่าประสบการณ์ด้านวิศวกรรมส่วนบุคคล ไปสู่หลักการที่กว้างขึ้นของการออกแบบระบบ สมาชิกในชุมชนกำลังแบ่งปันกฎง่ายๆ จากสาขาวิชาอื่นๆ ที่สามารถนำมาใช้กับระบบเทคโนโลยีได้อย่างดีเยี่ยม จากหนังสือ Seeing Like a State ของ James C. Scott มีคำแนะนำเช่น เลือกสิ่งที่ย้อนกลับได้ และ ก้าวเล็กๆ ถอยหลังกลับ สังเกตการณ์ก่อนทำเพิ่มเติม หลักการเหล่านี้สอดคล้องกับแนวปฏิบัติ DevOps สมัยใหม่และวิธีการพัฒนาซอฟต์แวร์แบบ Agile ที่เน้นการปรับปรุงแบบค่อยเป็นค่อยไปและความสามารถในการเปลี่ยนทิศทางเมื่อจำเป็น

ผู้แสดงความคิดเห็นคนอื่นๆ ได้เพิ่มเติมภูมิปัญญาจากนักคิดเชิงระบบ: กระทำการเสมอเพื่อเพิ่มทางเลือก จาก von Foerster และ กระทำการเสมอเพื่อเพิ่มความเป็นไปได้ จาก Nora Bateson แนวทางเชิงปรัชญาเหล่านี้สามารถแปลตรงไปสู่การตัดสินใจทางเทคนิคเกี่ยวกับสถาปัตยกรรมระบบ ซึ่งการออกแบบเพื่อความยืดหยุ่นและความต้องการในอนาคตที่ยังไม่รู้ มักจะพิสูจน์แล้วว่ามีค่ามากกว่าการปรับแต่งสำหรับข้อจำกัดที่รู้จักในปัจจุบัน

หลักการคิดเชิงระบบที่สำคัญจากการอภิปรายของชุมชน:

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

การเปลี่ยนกระบวนทัศน์ในเทคโนโลยี

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

ชุมชนตระหนักว่าจุดคานงัดระดับสูงที่สุด—การเปลี่ยนเป้าหมายของระบบและกระบวนทัศน์—ก็เป็นจุดที่ยากที่สุดที่จะจัดการเช่นกัน แต่มันก็เป็นจุดที่มีผลกระทบมากที่สุดเช่นกัน การเปลี่ยนจาก mindset ของ เคลื่อนที่เร็วและทำลายสิ่งต่างๆ ไปสู่การออกแบบระบบที่ยั่งยืนและรอบคอบ เป็นตัวแทนของการเปลี่ยนแปลงกระบวนทัศน์ชนิดที่ Meadows ระบุว่ามีพลังที่สุดอย่างแท้จริง

12 จุดคานงัดของ Donella Meadows (เรียงจากมีประสิทธิผลมากที่สุดไปน้อยที่สุด):

  1. กรอบความคิดหรือกระบวนทัศน์
  2. เป้าหมายของระบบ
  3. พลังในการจัดระเบียบตนเอง
  4. กฎเกณฑ์ของระบบ
  5. โครงสร้างของการไหลเวียนข้อมูล
  6. อัตราขยายรอบวงป้อนกลับเชิงบวก
  7. ความแข็งแกร่งของวงป้อนกลับเชิงลบ
  8. ระยะเวลาของความล่าช้า
  9. โครงสร้างของสต็อกและการไหลเวียนของวัสดุ
  10. ขนาดของบัฟเฟอร์
  11. ค่าคงที่ พารามิเตอร์ ตัวเลข

สรุป: จากปรับแต่งสู่การเปลี่ยนแปลง

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

อ้างอิง: Leverage Points: Places to Intervene in a System