การ deploy ช้าเป็นต้นเหตุให้เกิดการประชุม
- การออกแบบซอฟต์แวร์คือการฝึกฝนความสัมพันธ์ระหว่างคน และทักษะทางเทคนิคที่ใช้ในการพัฒนาซอฟต์แวร์ก็เป็นเช่นเดียวกัน
- ความไม่พอใจของวิศวกรที่ว่า “มีการประชุมมากเกินไปจนไม่สามารถ deploy โค้ดได้” อาจเกิดจากข้อจำกัดด้านขีดความสามารถในการ deploy
- Chuck Rossi สังเกตจาก Facebook ว่าจำนวนการเปลี่ยนแปลงที่สามารถจัดการได้ต่อการ deploy หนึ่งครั้งมีการกำหนดไว้แน่นอน และหากต้องการการเปลี่ยนแปลงมากขึ้นก็ต้องเพิ่มจำนวนการ deploy
- Facebook เพิ่มความเร็วในการ deploy จากรายสัปดาห์เป็นรายวันเป็นวันละสามครั้งในช่วงห้าปีที่ผ่านมา และรอบการ deploy ของแอปมือถือก็ลดจาก 6 สัปดาห์เป็น 4 สัปดาห์ และ 2 สัปดาห์
- “การเปลี่ยนแปลงต่อการ deploy” เป็นตัวชี้วัดที่ไม่ยืดหยุ่น มันสามารถปรับปรุงได้แต่ต้องใช้เวลา หากการเปลี่ยนแปลงเกินเพดานปัจจุบัน จะต้องลดจำนวนการเปลี่ยนแปลงลง
- เมื่อเพิ่มภาระงานทางองค์กร จะเกิดลูปตอบสนองเชิงบวก: ปริมาณงานลดลง -> ความกดดันเพิ่ม -> ความผิดพลาดเพิ่ม -> การเปลี่ยนแปลงต่อการ deploy ลดลง -> ภาระงานทางองค์กรเพิ่ม -> ปริมาณงานลดลง
- หากต้องการรองรับการเปลี่ยนแปลงมากขึ้น ต้องเพิ่มความจุการ deploy ทั้งนี้ได้โดยการลดรอบการ deploy หรือเพิ่มการเปลี่ยนแปลงต่อการ deploy
- การพยายามลดภาระงานทางองค์กรอาจส่งผลให้มีการประชุมมากขึ้น ซึ่งช่วยจำกัดการพยายาม deploy โค้ดเกินขีดจำกัด
Software Design: Tidy First?
- การออกแบบซอฟต์แวร์คือการฝึกฝนความสัมพันธ์ระหว่างคน การพัฒนาทักษะทางเทคนิคแบบอื่นๆ ก็เป็นแนวทางหนึ่งในการปรับความสัมพันธ์เหล่านี้
2 ความคิดเห็น
ความคิดเห็นนี้น่าสนใจมาก
ความคิดเห็น Hacker News
การลดความเสี่ยงในการปรับใช้ด้วยการปรับปรุงการทดสอบและลักษณะทางองค์กรเป็นสิ่งสำคัญ แต่ไม่ใช่วิธีเดียว
พยายามอธิบายแนวคิดที่เรียกว่า "software literacy"
เมื่อการทดสอบใช้เวลานานใน CI pipeline จึงตัดสินใจเน้นการฟื้นตัว
องค์กรอาจขัดขวางการปรับปรุงการปรับใช้ได้
การเพิ่มจำนวนการทดสอบเกิดจากความกลัวการเปลี่ยนแปลงขนาดใหญ่
คำถามว่า CloudFormation ทำไมจึงช้า
ไมโครเซอร์วิสทำให้สามารถขยายความถี่การปรับใช้แบบแนวนอนได้
ประสิทธิภาพซอฟต์แวร์ หรือที่เรียกว่าประสิทธิภาพของมนุษย์นั้นสำคัญ
การปรับใช้เร็วก่อให้เกิดการประชุมตอบสนองเหตุการณ์