2
สร้างหนึ่งเพื่อทิ้งไปกับเอฟเฟกต์ระบบที่สอง
ในอีกด้านหนึ่งมีคำแนะนำที่บอกว่า "สร้างหนึ่งทิ้ง" หลังจากเสร็จสิ้นระบบซอฟต์แวร์และการเห็นผลิตภัณฑ์สุดท้ายเรารู้ว่ามีอะไรผิดพลาดในขั้นตอนการออกแบบและเข้าใจว่าเราควรทำอย่างไร ในทางกลับกันมี "เอฟเฟ็กต์ระบบที่สอง" ซึ่งบอกว่าระบบที่สองในรูปแบบเดียวกันที่ออกแบบมามักจะแย่กว่าระบบแรก มีคุณสมบัติหลายอย่างที่ไม่เหมาะสมในโครงการแรกและถูกผลักเข้าไปในรุ่นที่สองซึ่งมักจะนำไปสู่ความซับซ้อนและการออกแบบมากเกินไป นี่ขัดแย้งกับหลักการเหล่านี้หรือไม่? อะไรคือมุมมองที่ถูกต้องเกี่ยวกับปัญหาและพรมแดนระหว่างสองสิ่งนี้อยู่ที่ไหน ฉันเชื่อว่า "แนวทางปฏิบัติที่ดี" เหล่านี้ได้รับการส่งเสริมเป็นครั้งแรกในหนังสือน้ำเชื้อThe Mythical Man-Monthโดย Fred Brooks ฉันรู้ว่าปัญหาเหล่านี้บางอย่างได้รับการแก้ไขโดยวิธีการ Agile แต่ลึกลงไปปัญหายังคงเป็นหลักการที่ยังคงอยู่ ตัวอย่างเช่นเราจะไม่เปลี่ยนแปลงการออกแบบที่สำคัญ 3 sprint ก่อนที่จะเผยแพร่