ก่อนอื่นนักพัฒนาน่าจะคุ้นเคยกับการจัดการเรื่องของ configuration ค่าต่าง ๆ ในระบบ
ยกตัวอย่างเช่น
- ข้อมูลสำหรับ database
- ข้อมูลสำหรับ URL ของ service ต่าง ๆ
- username และ password
สิ่งที่น่ากลัวคือ เรามักเจอว่า code เหล่านี้มันขึ้นไปยัง environment ต่าง ๆ รวมทั้ง production server ด้วยเหตุผลง่าย ๆ สั้น ๆ ว่า ลืม !!
จากนั้นเริ่มแก้ไขปัญหาด้วยการแยกออกมาใส่ไฟล์ (Configuration file)
เป็นที่มาของ configuration file นั่นเอง เรามักจะเจอไฟล์ประเภทนี้ในหลากหลายรูปแบบและลีลา ทั้งแยกไฟล์ตามแต่ละ environment ทั้งไฟล์เดียวแต่มีการตรวจสอบค่า profile เช่น dev, test, prod เป็นต้น ทั้งเป็น application file ของระบบหรือ frameworkแต่ปัญหาคำว่า ลืม ก็ยังตามมาหลอกหลอนอยู่ดี เพราะว่า ไฟล์เหล่านี้ยังอยู่ใน Source Control อยู่ดี และจัดการด้วยคน !!ดังนั้นเราจึงแก้ไขปัญหาด้วยการห้าม commit/push/checkin ไฟล์เหล่านี้ขึ้นไป หรือทำการ ignore นั่นเอง เพื่อลดข้อผิดพลาดของนักพัฒนา หรือ กันลืม นั่นเอง แต่ปัญหามันก็ถูกส่งต่อไปให้คนที่ดูแลเรื่องการ deploy และ release อีก !!