4 ms·
OP means this in the sense of "good estimates for software are impossible", but I submit that the alternate reading also obtains: that estimates for GOOD softwa
by didgeoridoo 10y ago
OP means this in the sense of "good estimates for software are impossible", but I submit that the alternate reading also obtains: that estimates for GOOD software are impossible. This is because, pace Brooks, the process of creation is also the process of eliciting the requirements that demand that creation in the first place. "Good" software, software that solves a real problem in a feasible way, is rarely so well-defined at the outset that your only risk factors are difficulties in finding the right library or algorithm. Frequently it is only possible for requirements to be understood once an early version of a solution actually exists.
- wvenable 10y agoPerfectly well-defined software is completed software. The act of defining the requirements completely and absolutely is writing the code. This is what distinguishes software development from other disciplines. If you want to build a bridge, you create the plans and derive your estimate from the plan. But software development is the creation of a plan. Do engineers know exactly how long that planning process takes? Probably not. It's insignificant compared to actual construction. But for software development, that is everything.
- learc83 10y agoExactly. I think we really should be comparing software development creating processes instead of creating objects. Look at something like a consultancy that develops safety procedures for organizations or a company that handles building logistics operations. Software doesn't have the same physical constraints that bridge building does. Anytime you have fewer constraints, you have more possible solutions which take more time to sort through.