วัฒนธรรมการทำงานและองค์กร |
- ทีมจัดตั้งตามแพลตฟอร์ม/เทคโนโลยี
- มีการกำหนดกระบวนการทำงานชัดเจนและเป็นลายลักษณ์อักษร
|
- ทีมมีหนึ่ง product backlog
- มีการนำกระบวนการทำงานแบบ agile ไปใช้
- ไม่มีการแบ่งความรับผิดชอบระหว่างทีม
|
- มีการประสานงานกันระหว่างทีม
- ไม่มีการแบ่งความรับผิดชอบระหว่าง dev และ ops
- ใช้กระบวนการจัดการเหมือนกันสำหรับทุกความเปลี่ยนแปลง
|
- มีกระบวนการปรับปรุงอย่างต่อเนื่องกันทั่วทุกทีม
- ทีมรับผิดชอบทุกอย่างในการนำของขึ้นสู่ production
|
- ทีมสามารถทำงานข้ามฟังก์ชั่นกันได้
|
การ build และ deploy |
- ใช้ version control แบบ centralized
- ใช้สคริปท์ในการ build แบบอัตโนมัติ
- ไม่มีการจัดการของที่ถูก build
- deploy แบบ manual
- เตรียม environment ต่าง ๆ แบบ manual
|
- ใช้วิธีการ poll ในการเริ่ม build บน CI
- Build ต่าง ๆ สามารถสร้างขึ้นใหม่ได้จาก source control
- มีการจัดการของที่ถูก build
- ใช้สคริปท์ในการ deploy แบบอัตโนมัติ
- สร้าง environment ต่าง ๆ แบบอัตโนมัติ
|
- ใช้ commit hook ในการเริ่ม build บน CI
- Build จะล้มเหลวถ้าตรวจสอบคุณภาพไม่ผ่าน เช่น การวิเคราะห์โค้ด การตรวจสอบประสิทธิภาพ เป็นต้น
- มีปุ่มให้กดเพื่อทำการ deploy และ release ของที่ build แล้วไปยัง environment ใด ๆ
- มีวิธีการ deploy เป็นมาตรฐานเดียวกันกับทุก ๆ environment
|
- ทีมให้ความสำคัญกับการทำให้โค้ดสามารถ deploy ได้มากกว่าไปเริ่มงานอื่น
- Build จะต้องไม่ถูกปล่อยให้พัง
- มีการ deploy แบบหลายเครื่อง หลาย environment พร้อม ๆ กัน
- มีการ deploy โดยการใช้ Blue/Green deployment
|
- ทุก commit ถูก build และ deploy ไปยัง production โดยอัตโนมัติ
|
การ release |
- Release ไม่บ่อย และบางครั้งไม่สำเร็จ
- Release แบบ manual
|
- Release ไม่บ่อย แต่สำเร็จอย่างยากลำบาก
|
- Release ไม่บ่อย แต่ทำได้อย่างอัตโนมัติ และสำเร็จทุกครั้งในทุก ๆ environment
|
- Release บ่อย ด้วยวิธีอัตโนมัติ
- การ deploy กับ release แยกออกจากกัน
- Release ด้วยวิธี canary release
|
- ไม่มีการ rollback ใช้ roll forward เสมอ
|
การจัดการข้อมูล |
- การย้ายข้อมูลใช้วิธี manual ไม่มีการใช้ script
|
- การย้ายข้อมูลใช้ script ที่มีการควบคุม version แต่รันแบบ manual
|
- มีการควบคุมเวอร์ชั่นของการเปลี่ยนแปลงข้อมูลใด ๆ แบบอัตโนมัติ
|
- การเปลี่ยนแปลงของข้อมูลทำไปอย่างอัตโนมัติพร้อมกับการ deploy
|
- การเปลี่ยนแปลงของข้อมูล รวมถึงการ rollback มีการทดสอบอย่างอัตโนมัติด้วยในทุก ๆ การ deploy
|
การทดสอบและการยืนยัน |
- รัน unit test แบบอัตโนมัติ
- มีการแยก test environment ออกมา
|
- มีการทดสอบแบบ integration แบบอัตโนมัติ
- มีการทำ static code analysis
- มีการทำ test coverage analysis
|
- มีการทำ functional test แบบอัตโนมัติ
- มีการทำ performance test และ security test แบบ manual
|
- มีการทำ acceptance test แบบอัตโนมัติเต็มรูปแบบ
- มีการทำ performance test และ security test แบบอัตโนมัติ
- มีการทำ exploratory test โดยอิงจากการวิเคราะห์จากความเสี่ยง
|
- มีการยืนยัน business value ที่คาดหวัง
- ปัญหาที่พบถูกแก้ไขทันที (roll forward)
|
ข้อมูลและการรายงานผล |
- มีการกำหนดตัวชี้วัดกระบวนการทำงาน
- รายงานต่าง ๆ ถูกสร้างแบบ manual
- คนทำรายงานจะต้องเข้าถึงรายงานได้
|
- มีการวัดผลกระบวนการ
- รายงานต่าง ๆ ถูกสร้างอย่างอัตโนมัติ
- ทีมจะต้องสามารถเข้าถึงรายงานได้
|
- Release note ถูกสร้างอย่างอัตโนมัติ
- Pipeline จะต้องสามารถถูกตรวจสอบการทำงานได้
- สามารถดูรายงานย้อนหลังได้
- ทีมอื่น ๆ สามารถเข้าถึงรายงานได้
|
- มีรายงานการวิเคราะห์แนวโน้มต่าง ๆ
- แสดงกราฟของตัวชี้วัดต่าง ๆ ใน pipeline ของการ deploy
|
- มีข้อมูลให้เลือกดูได้เอง
- สามารถปรับแต่ง dashboard ได้
- มีการอ้างอิงถึงข้อมูลจากหน่วยงานอื่น ๆ ในองค์กร
|