ทำไมแพลตฟอร์ม CMS ส่วนใหญ่ถึงดูแลรักษาได้ยากขึ้นเรื่อยๆ
CMS ทุกตัวดูเหมือนจะใช้งานง่ายในวันแรก
คุณติดตั้งมัน เลือกธีม และเพิ่มปลั๊กอิน ทุกอย่างดูรวดเร็วและควบคุมได้ง่าย
แต่ปัญหาจะเริ่มตามมาในอีกหกเดือนข้างหน้า
เมื่อโปรเจกต์ของคุณเติบโตขึ้น คุณก็ต้องการฟีเจอร์ใหม่ๆ คุณเพิ่มการเชื่อมต่อ (integrations) มากขึ้น, เวิร์กโฟลว์ที่ปรับแต่งเอง (custom workflows) และเครื่องมือ SEO สุดท้ายคุณจะพบว่าตัวเองมีกองปลั๊กอินและโค้ดที่เขียนขึ้นเองซ้อนทับกันเป็นชั้นๆ
สิ่งที่เริ่มต้นจากการเป็นเครื่องมือที่เรียบง่าย กลับกลายเป็นระบบที่เปราะบาง
ปัญหาเรื่องความยืดหยุ่น
หลายระบบให้คำมั่นสัญญาเรื่องความยืดหยุ่น โดยอนุญาตให้คุณเพิ่มฟีเจอร์ผ่านปลั๊กอินและโมดูล ซึ่งดึงดูดทีมขนาดเล็กและผู้ใช้งานที่ไม่มีความรู้ด้านเทคนิค
แต่ความยืดหยุ่นมักจะทำลายความสามารถในการดูแลรักษา (maintainability)
ปลั๊กอินจากบุคคลที่สาม (third-party) ทุกตัวล้วนเพิ่มความเสี่ยง:
- คุณต้องคอยจัดการการอัปเดตความปลอดภัยอย่างต่อเนื่อง
- ปลั๊กอินสร้างเครือข่ายความเกี่ยวเนื่อง (dependencies) ที่ซับซ้อน
- การเปลี่ยนแปลงเล็กๆ น้อยๆ กลายเป็นเรื่องน่ากลัว เพราะคุณกังวลว่าจะทำให้เว็บไซต์พัง
หนี้ทางเทคนิค (Technical Debt) ที่เพิ่มขึ้นอย่างเงียบเชียบ
ทีมต่างๆ มักให้ความสำคัญกับความเร็วในช่วงเริ่มต้น คุณเลือกติดตั้งปลั๊กอินแทนที่จะสร้างฟีเจอร์ขึ้นมาเอง หรือเลือกใช้การแก้ปัญหาเฉพาะหน้า (quick fix) แทนที่จะแก้ไขที่โครงสร้างสถาปัตยกรรม (architecture)
วิธีนี้อาจใช้ได้ผลในช่วงสั้นๆ แต่หลังจากนั้น หนี้เหล่านั้นก็จะพอกพูนขึ้น
นักพัฒนาต้องใช้เวลาไปกับการแก้ปัญหาเก่าๆ มากกว่าการสร้างสิ่งใหม่ๆ จนในที่สุด ระบบก็กลายเป็นสิ่งที่คาดเดาไม่ได้เกินกว่าจะเปลี่ยนแปลงได้
ทีมยุคใหม่ต้องการเครื่องมือที่ดีกว่า
ทีมวิศวกรรมไม่ได้ทำงานเหมือนเมื่อสิบปีก่อนอีกต่อไป ในปัจจุบัน ทีมต่างๆ ใช้ Git และเวิร์กโฟลว์อัตโนมัติ (automated workflows) เพื่อรับประกันความน่าเชื่อถือของระบบ
แพลตฟอร์ม CMS แบบดั้งเดิมหลายแห่งไม่สอดคล้องกับเวิร์กโฟลว์เหล่านี้ นักพัฒนาต้องเสียเวลาไปกับการต่อสู้กับตัวแพลตฟอร์มแทนที่จะได้เขียนโค้ดที่สะอาด (clean code) ซึ่งสร้างอุปสรรคและทำให้ความคืบหน้าล่าช้า
การเปลี่ยนผ่านสู่การควบคุมที่มากขึ้น
หลายทีมกำลังเปลี่ยนไปใช้แพลตฟอร์มแบบ self-hosted หรือแพลตฟอร์มที่เน้นนักพัฒนาเป็นหลัก (developer-first) เพราะพวกเขาต้องการการควบคุมและความสามารถในการคาดเดาได้
ทีมต่างๆ ต้องการ:
- เป็นเจ้าของโครงสร้างพื้นฐาน (infrastructure) ของตนเอง
- ออกแบบสถาปัตยกรรมที่ตอบโจทย์ความต้องการเฉพาะด้าน
- เห็นการทำงานของระบบได้อย่างชัดเจน
สถาปัตยกรรม CMS แบบใหม่มุ่งเน้นไปที่การเป็นรากฐานที่แข็งแกร่ง โดยให้ความสำคัญกับการออกแบบ API ที่สะอาด แทนที่จะเน้นการมีปลั๊กอินนับร้อย เป้าหมายคือการสร้างสิ่งต่างๆ อย่างถูกต้อง มากกว่าแค่สร้างให้เสร็จอย่างรวดเร็ว
ทางเลือกที่แท้จริง
ไม่มีแนวทางใดที่สมบูรณ์แบบที่สุด
แพลตฟอร์ม CMS แบบดั้งเดิมนั้นยอดเยี่ยมสำหรับการเปิดตัวเว็บไซต์การตลาดแบบง่ายๆ อย่างรวดเร็ว
ระบบที่เน้นนักพัฒนาอาจต้องใช้เวลาในการตั้งค่ามากกว่า แต่ก็มีข้อดีคือ:
- การดูแลรักษาในระยะยาวที่ดีกว่า
- การขยายระบบ (scaling) ที่ง่ายกว่า
- หนี้ทางเทคนิคน้อยกว่า
เลิกมองว่า CMS เป็นเพียงเครื่องมือสำหรับเผยแพร่เนื้อหาเท่านั้น แต่จงมองว่ามันคือโครงสร้างพื้นฐานในระยะยาว ระบบที่ยั่งยืนคือระบบที่สร้างสมดุลระหว่างโครงสร้างและความยืดหยุ่น