Hofstadter 在「哥德爾、艾舍爾、巴赫書:集異璧之大成」這本書中,提到了一條 Hofstadter's Law:做事所花費的時間總是比你預期的要長,即使你的預期中考慮了侯世達定律。
在工作規劃時,總是需要做評估,在軟體工程中,評估卻是最困難的問題,永遠都會估算失準,即使開發過程中,沒有特殊的技術問題,或只是修改已經做過的事情,但還是有可能會有其他人為因素,改變了原本的時程。
這時候就變成另一種做法,在原本樂觀的估算結果後,乘上一定程度的風險值,這些增加出來的時間,就成為 buffer。但這也可能會發生另一種問題,時程只要經過一個人的加總與估算,就會多膨脹一點點,誤差也會變得更大。
如果單純只考慮開發的時程,或許還能接受,時程不準確的問題,但專案總是會有 stakeholders,也有預算成本的問題,牽涉到金錢跟最後交付的時程,還有專案誠品的成熟度,在管理階層、業務單位、客戶之間,這些問題就會不斷地放大,近一步影響到所有人。
即使大家都知道「花費的時間總是比你預期的要長」,身處不同的角色,就有不同的應對方式,也會用各種不同的手段想要達到預期的結果,但最終還是只能讓最底層的開發人員,花上足夠的時間,去完成該做的事情。
References
GitHub - nusr/hacker-laws-zh: 💻📖对开发人员有用的定律、理论、原则和模式。(Laws, Theories, Principles and Patterns that developers will find useful.)
沒有留言:
張貼留言