จากการแนะนำเรื่องของ Continuous Integration และ Continuos Delivery นั้น
มีการพูดคุยถึงคุณสมบัติที่ดีของระบบเหล่านี้
ว่าควรจะมีอะไรบ้าง
เพื่อให้เราไม่หลงทางในการนำมาใช้งาน

ข้อที่ 1 ทำงานได้อย่างรวดเร็ว

ในขั้นตอนการทำงานของ CI/CD หรือ pipeline นั้น
จะต้องทำงานได้อย่างรวดเร็ว ตั้งแต่การ build, test และ deploy
เพื่อช่วยทำให้เราได้รับ feedback ต่าง ๆ จากการเปลี่ยนแปลงได้รวดเร็ว

ถ้าทำงานช้ามาก ๆ
ก็ต้องรอนาน หรือไม่อยากใช้งานไปในที่สุด
อย่าลืมเป้าหมายหลังของ CI/CD

ข้อที่ 2 มีความน่าเชื่อถือ

ความเร็วอย่างเดียวยังไม่เพียงพอ แต่ต้องมีความน่าเชื่อถือหรือเสถียรด้วย
ไม่ใช่ทำงานผ่านบ้าง ไม่ผ่านบ้าง โดยที่ไม่แก้ไขอะไรเลย
มันทำให้ขาดความน่าเชื่อถือ
รวมทั้งยังรองรับการ scale และรองรับ use case ต่าง ๆ มากขึ้นด้วย

ข้อที่ 3 environment ต่าง ๆ ควรมีรูปแบบเดียวกัน

ปัญหาอย่างหนึ่งของ environment คือ ความแตกต่างกันมาก
สิ่งหนึ่งที่ควรจะเป็นคือ environment ต่าง ๆ ควรเหมือนหรือคล้ายกันมากที่สุด
เพื่อให้การทำงานมีความน่าเชื่อถือ
ไม่ใช่ไปเจอแต่บน production environment อย่างเดียว
ส่วน environment อื่น ๆ กลับไม่เจอ
ถ้าเป็นแบบนี้ แสดงว่าน่ากลัวมาก ๆ

ข้อที่ 4 ควรอธิบายให้ทีมและส่วนงานที่เกี่ยวข้องเกี่ยวกับ CI/CD

ปัญหาที่เจอบ่อย ๆ คือ ความไม่เข้าใจของการนำ CI/CD มาใช้งาน
ว่านำมาใช้งานเพื่ออะไร
ว่านำมาใช้งานเพื่อแก้ไขปัญหาอะไร
จากนั้นตองทำอะไรบ้าง
สุดท้ายจึงช่วยกันหาวิธีการว่าต้องทำอย่างไร
น่าจะทำให้ผลที่ออกมาดีสำหรับทุก ๆ ฝ่าย