ฉันเพิ่งเริ่มมีความสนใจในการปฏิบัติที่คล่องตัวในการพัฒนาซอฟต์แวร์และฉันได้เห็นบทความจำนวนมากชี้ให้เห็นว่าการปฏิบัติเหล่านี้ช่วยลดต้นทุนโดยรวม
ตรรกะเบื้องหลังที่มักจะเป็นเช่นนี้: หากความต้องการของคุณเปลี่ยนแปลงคุณสามารถสะท้อนการเปลี่ยนแปลงนี้ได้ในงานเร่งด่วนถัดไปและสิ่งนี้จะนำไปสู่การลดค่าใช้จ่ายเนื่องจากการออกแบบคุณลักษณะใหม่และการใช้งาน ค่าใช้จ่ายลดลงตามกฎที่มีชื่อเสียงว่าในภายหลังคุณจำเป็นต้องเปลี่ยนแปลงความต้องการของคุณยิ่งมีราคาแพงมากขึ้นก็จะเป็นไปตามข้อกำหนดนั้น
แต่โครงการซอฟต์แวร์ระดับกลางถึงใหญ่นั้นซับซ้อน การเปลี่ยนแปลงข้อกำหนดแบบฉับพลันไม่ได้หมายความว่าคุณจะไม่ต้องสัมผัสส่วนอื่น ๆ ของระบบเพื่อตอบสนองความต้องการนั้น ในหลายกรณีสถาปัตยกรรมจะต้องมีการปรับเปลี่ยนอย่างมากซึ่งหมายความว่าคุณจะต้องใช้คุณลักษณะทั้งหมดที่อาศัยสถาปัตยกรรมเก่าอีกครั้ง ดังนั้นจุดโดยรวมของค่าใช้จ่ายลดลงเลยหายไปที่นี่ แน่นอนถ้าความต้องการใหม่เรียกร้องให้มีส่วนที่เป็นอิสระใหม่ของระบบนั่นไม่ใช่ปัญหาสถาปัตยกรรมเก่าเพิ่งเติบโตขึ้นมันไม่จำเป็นต้องคิดใหม่และนำไปใช้ใหม่
และตรงกันข้าม หากคุณกำลังใช้น้ำตกและคุณรู้ทันทีว่ามีข้อกำหนดใหม่ที่จะต้องนำเสนอคุณสามารถไปและเปลี่ยนการออกแบบของคุณ ถ้าต้องการสถาปัตยกรรมที่มีการเปลี่ยนแปลงคุณต้องออกแบบใหม่ ถ้ามันไม่ได้ยุ่งกับมันจริงๆ แต่เพิ่งจะแนะนำส่วนใหม่ของระบบคุณก็ไปทำทุกอย่างได้อย่างไม่มีปัญหา
จากที่กล่าวมาดูเหมือนว่าฉันชอบความได้เปรียบเพียงอย่างเดียวของการพัฒนาแบบว่องไวคือคุณลักษณะการทำงานที่สมบูรณ์สร้างขึ้นระหว่าง sprints และสำหรับผู้คนจำนวนมากและ prjects สิ่งนี้ไม่สำคัญ นอกจากนี้ความคล่องตัวดูเหมือนว่าจะส่งผลให้สถาปัตยกรรมซอฟต์แวร์โดยรวมไม่ดีเนื่องจากฟีเจอร์จะได้รับการตบอย่างใดอย่างหนึ่งทีมเปรียวเพียงดูแลว่าคุณสมบัติการทำงานไม่ใช่วิธีการทำงาน ดูเหมือนว่าเมื่อระบบเติบโตอย่างซับซ้อนตามกาลเวลาการพัฒนาแบบว่องไวจะเพิ่มความสับสนวุ่นวายในสถาปัตยกรรมผลิตภัณฑ์โดยรวมดังนั้นในที่สุดก็ส่งผลให้มีค่าใช้จ่ายสูงขึ้นเนื่องจากจะเป็นการยากที่จะแนะนำการเปลี่ยนแปลงมากขึ้น ก่อนที่คุณจะปล่อยอะไร
ใครช่วยชี้ให้ฉันดูว่าฉันไปผิดตรงไหนเพราะเห็นได้ชัดว่าผู้คนจำนวนมากใช้ความคล่องตัวในสภาพแวดล้อมการผลิตดังนั้นฉันต้องผิดที่อื่น