การพัฒนาซอฟต์แวร์เปลี่ยนไป แต่หลักวิศวกรรมที่ดีไม่เคยเปลี่ยน

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

สภาพแวดล้อมอาจเปลี่ยนไป แต่หลักการพื้นฐานทางวิศวกรรมยังคงเดิม โค้ดต้องอ่านง่าย ปลอดภัย และเชื่อถือได้

ในฐานะวิศวกร อะไรคือสิ่งที่เปลี่ยนไปสำหรับคุณ?

โค้ดที่ดี ยังคงมีความหมายเหมือนเดิม Codebase ควรจะคาดเดาได้และเปลี่ยนแปลงได้ง่าย มันไม่ควรจะดูแลรักษายากขึ้นทุกครั้งที่คุณเพิ่มฟีเจอร์ใหม่ AI ได้เพิ่มมิติใหม่เข้ามาตรงนี้ โดย AI สามารถสร้างโค้ดที่มีการตรวจสอบและครอบคลุมกรณีขอบเขต (edge cases) ต่างๆ ได้มากมาย ซึ่งบางครั้งก็ช่วยได้มาก แต่ในบางครั้ง มันก็ทำให้โค้ดซับซ้อนเกินไป คุณจึงต้องตรวจสอบโค้ดที่ AI สร้างขึ้นเพื่อให้แน่ใจว่ามันยังคงความเรียบง่ายและสอดคล้องกับสถาปัตยกรรม (architecture) ของคุณ

ระยะเวลาในการนำผลิตภัณฑ์ออกสู่ตลาด (Time-to-market) สั้นลงมาก เมื่อสิบปีก่อน การเปิดตัวผลิตภัณฑ์อาจใช้เวลาหลายเดือน แต่ในปัจจุบัน คุณสามารถสร้างเวอร์ชันทดสอบได้ภายในไม่กี่วัน AI, บริการ Cloud และ APIs ช่วยเร่งกระบวนการนี้ให้เร็วขึ้น แต่การส่งมอบที่เร็วขึ้นก็นำมาซึ่งความเสี่ยงที่มากขึ้นด้วย คุณจึงต้องเฝ้าระวังเรื่องความเสถียร (stability), ความปลอดภัย (security) และความสามารถในการขยายตัว (scalability) อย่างใกล้ชิดมากขึ้นหลังจากเปิดตัว

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

  • Scalability
  • Integrations
  • Data management
  • Cloud infrastructure
  • AI implementation
  • Security
  • System stability

ฟีเจอร์หนึ่งอย่างไม่ได้เป็นเพียงแค่โค้ดอีกต่อไป แต่มันขึ้นอยู่กับต้นทุน Cloud, การไหลของข้อมูล (data flows) และบริการจากบุคคลที่สาม (third-party services)

การเลือกเทคโนโลยีต้องเป็นไปตามความต้องการ ไม่ใช่ตามกระแส เมื่อก่อน ทีมมักจะเลือกใช้เครื่องมือที่พวกเขาคุ้นเคย แต่ตอนนี้ คุณยังต้องพิจารณาเรื่องความเร็ว, ความพร้อมในการรองรับ AI และการสนับสนุนด้าน Cloud ด้วย เฟรมเวิร์ก (frameworks) ใหม่ๆ เคลื่อนที่ไปอย่างรวดเร็วเพราะ AI สามารถอ่านเอกสารประกอบ (documentation) ได้อย่างง่ายดาย อย่างไรก็ตาม เครื่องมือเหล่านี้มักจะยังขาดส่วนประกอบที่สมบูรณ์ (mature components) หรือความปลอดภัยที่ได้รับการพิสูจน์แล้ว

AI จัดการเรื่องโค้ด แต่คนจัดการเรื่องสถาปัตยกรรม AI คือการเปลี่ยนแปลงครั้งใหญ่ แต่สถาปัตยกรรม (architecture) จำเป็นต้องอาศัยความเข้าใจเรื่องการแลกเปลี่ยน (trade-offs), ความเสี่ยงในระยะยาว และวิธีการเติบโตของผลิตภัณฑ์ วิศวกรและสถาปนิกที่มีประสบการณ์ยังคงเป็นส่วนที่สำคัญที่สุดของกระบวนการนี้

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

ความเร็วเป็นสิ่งสำคัญ แต่ความเร็วเพียงอย่างเดียวไม่เพียงพอ

Source: https://dev.to/techbarsw/software-development-changed-good-engineering-didnt-2g7

Optional learning community: https://t.me/GyaanSetuAi