สำหรับฉันฉันชอบวิธีที่ Kent Beck ส่งต่อใน XP (ไม่แน่ใจว่าเป็นความคิด "ของเขา" หรือคนอื่น แต่นั่นคือสิ่งที่ฉันได้ยินครั้งแรก):
มันยากพอที่จะแก้ปัญหาของวันนี้โดยไม่ต้องพยายามหาว่าปัญหาของวันพรุ่งนี้คืออะไรและแก้ไขด้วยเช่นกัน
นักพัฒนาสามารถใช้เวลามากในการแก้ปัญหาสำหรับความต้องการที่ไม่มีตัวตนกรณีขอบซึ่งจะไม่เกิดขึ้นหรือแม้กระทั่งปัญหาของแท้ที่ผลกระทบของปัญหาอย่างมีนัยสำคัญน้อยกว่าค่าใช้จ่ายในการป้องกัน
นี่คือเวลาที่สามารถนำไปใช้กับสิ่งที่ผู้ใช้ต้องการและใช้จริง ๆ สิ่งที่จะให้ประโยชน์แก่พวกเขาอย่างมากจะมีค่ามากกว่าความไม่สะดวกที่จะเกิดขึ้นในเหตุการณ์ที่ไม่น่าเป็นไปได้ที่สิ่งเหล่านี้เกิดขึ้นจริง
นอกเหนือจากผลลัพธ์ที่ไม่เหมาะสมสำหรับผู้ใช้แล้วผลกระทบต่อผู้พัฒนา over engineering ด้วยวิธีนี้มีแนวโน้มที่จะมีรหัสที่ซับซ้อนซึ่งยากต่อการสนับสนุนและปรับปรุงให้ดีขึ้น
ดังนั้นสำหรับฉันถ้าคุณรู้หรือค่อนข้างมั่นใจว่าบางสิ่งบางอย่างเป็นข้อกำหนดหรือกำลังจะทำให้เกิดปัญหาจากนั้นก็จัดการกับมันถ้าไม่เช่นนั้น
คุณอาจต้องกลับมาทำงานใหม่อีกครั้งเมื่อปรากฎว่ามีข้อกำหนดที่กว้างกว่าที่คุณนำมาใช้ แต่โดยทั่วไปความพยายามทั้งหมดที่คุณใส่เข้าไปในโครงการจะยังคงต่ำกว่าเพราะในกรณีส่วนใหญ่ที่จะไม่เกิดขึ้น