ในการทำงานร่วมกันนั้นมีโค้ดที่ทำจากหลายๆ คนสร้างขึ้นมาและนำมารวมกัน แต่ปัญหามักจะเกิดขึ้นคือ
- รวมโค้ดเข้าด้วยกันได้ยากและใช้เวลานานขึ้นเมื่อทิ้งไว้โค้ดที่เราทำไว้นาน
- ทำให้การทำงานของซอฟต์แวร์ผิดเพี้ยนไปหรือที่เรียกว่า “บั๊ก” อันเนื่องมาจากการรวมโค้ด
- เมื่อเกิดบั๊กทำให้สูญเสียเวลาในการแก้ไขและ debug นาน
- สูญเสียเวลาทั้งที่ควรเอาไปพัฒนาฟีเจอร์ของซอฟต์แวร์
เมื่อมีปัญหาเช่นนั้นจึงเกิดแนวคิดที่เรียกว่า “Continuous Integration” ขึ้นมาโดย
- รวมโค้ดเข้าด้วยกันบ่อยๆ ยิ่งบ่อยเท่าไหร่ยิ่งดี (ทุก commit ของโค้ดที่เราสร้าง)
- มีชุดทดสอบเพื่อสามารถทดสอบย้อนหลังได้รวดเร็ว เพื่อตรวจหาปัญหาอันเนื่องมาจากการรวมโค้ดเข้าได้กัน
- โดยแนวคิดนี้เราสามารถนำไปใช้งานได้ง่ายๆ โดยผู้พัฒนา check-in โค้ดมาทำการทดสอบอย่างต่อเนื่อง บ่อยๆ ทุกคน และดูว่ามีปัญหามั้ยอย่างไรไงล่ะ
แต่ปัญหาที่ตามมาคือเมื่อทีม และโค้ดของเราใหญ่ขึ้นการจะมาทำแบบนั้นคงเป็นไปได้ลำบาก คำถามคือมีเครื่องมืออะไรที่มาช่วยเราได้บ้างหรือไม่? คำตอบคือ “นำเครื่องมือมาใช้งานซะสิ” ซึ่งเราจะนำเครื่องมือที่มีชื่อว่า “Jenkins” มาติดตั้งและใช้งานกัน