ฉันเชื่อว่าจำนวนงานประจำในการพัฒนาซอฟต์แวร์คือ - และควรจะค่อนข้างเล็กถ้าไม่ได้เล็กน้อยและนี่เป็นปัญหาพื้นฐานของการประเมินซอฟต์แวร์
ให้ฉันอธิบายว่าฉันมาถึงข้อสรุปนี้และบอกฉันว่าการโต้แย้งมีข้อบกพร่องร้ายแรง:
สิ่งที่สามารถประมาณได้ด้วยความแม่นยำสูงคืองานประจำซึ่งหมายถึงสิ่งที่เคยทำมาก่อน งานประเภทอื่น ๆ ที่เกี่ยวข้องกับการวิจัยและความคิดสร้างสรรค์ไม่สามารถคาดการณ์ได้จริง ๆ อย่างน้อยก็ไม่มีความแม่นยำเท่ากับ +/- 20 เปอร์เซ็นต์
การพัฒนาซอฟต์แวร์นั้นเกี่ยวกับการหลีกเลี่ยงงานซ้ำ ๆ หนึ่งในหลักการพื้นฐานของมันคือแห้ง (อย่าทำซ้ำตัวเอง) เมื่อใดก็ตามที่โปรแกรมเมอร์พบว่าตัวเองกำลังทำสิ่งที่ซ้ำ ๆ กันก็ถึงเวลาที่จะหาสิ่งที่เป็นนามธรรมที่หลีกเลี่ยงการทำซ้ำนี้ abstractions เหล่านี้อาจเป็นเรื่องง่าย ๆ เช่นการแยกรหัสซ้ำลงในฟังก์ชันหรือวางไว้ในลูป พวกเขายังมีความซับซ้อนมากขึ้นเช่นการสร้างภาษาเฉพาะโดเมน ในกรณีใด ๆ การใช้พวกเขาจะเกี่ยวข้องกับการวิจัย (เคยทำมาก่อนหรือไม่) หรือความคิดสร้างสรรค์
จากจุดทั้งสองนี้ฉันได้ข้อสรุปข้างต้น
จริงๆแล้วฉันสงสัยมาระยะหนึ่งแล้วว่าทำไมความสัมพันธ์นี้ถึงไม่ได้กล่าวถึงในการอภิปรายการโพสต์บล็อกหรือบทความเกี่ยวกับการประมาณค่าซอฟต์แวร์ ในทางทฤษฎีมันเกินไปหรือไม่ สมมติฐานของฉันผิดหรือเปล่า? หรือเล็กเกินไป - แต่แล้วทำไมนักพัฒนาส่วนใหญ่ถึงรู้ว่าเชื่อว่าพวกเขาสามารถทำการประเมินด้วยความแม่นยำ +/- 20 เปอร์เซ็นต์หรือดีกว่า