3 ms·
Someone who is building a new kitchen has likely built many before and there are a bounded number of things that can go wrong in the schedule of that. Even so,
by afarrell 8y ago
Someone who is building a new kitchen has likely built many before and there are a bounded number of things that can go wrong in the schedule of that. Even so, the Scott brothers still sometimes have cost overruns.
A better parallel would be building a tunnel or railway line -- something bespoke and which has to deal with lots of stakeholders and dependencies. A Londoner or a Bostonian can tell you that the schedules for those are not that reliable either.
-------
But that is kinda beside the point. The ability of someone else in another profession to produce estimates doesn't actually provide any indication about the path a software engineer can walk to learn to produce estimates.
- gadders 8y agoIt's not whether the estimates are reliable or not, it's unwillingness to give any estimate at all. Nobody should be held to an estimate if unforeseen things happen - the equivalent of the builder finding an unexploded a WW2 bomb but the inability to give any figure at all is incompetence. Something like "if it all goes smoothly, two weeks, but library x is bleeding edge and could double that if it doesn't work as advertised." or "give me three days to build a prototype and try some edge cases and then I'll be able to give you a firmer figure." is acceptable and at least gives someone idea if a featurev is worth the cost of building it.
- afarrell 8y ago> but the inability to give any figure at all is incompetence. Right, but it is incompetence that we don't know as an industry how to cure. Can you point me to a class on how to do software engineering estimates? Can you point me to someone who is able to do 1-on-1 tutoring on the subject? What is the path for a junior engineer out of uni to become competent at giving estimates? Claiming to be competent (by giving a number you just pulled out of your ass) is worse communication than owning up to your own incompetence.
- gadders 8y agoIt depends on the task and what you're doing, but you can normally give some idea, or break the task down into stages. I agree it would be great if there was some way of teaching estimation, but what it mostly comes down to is experience.
- afarrell 8y ago> you can normally give some idea, or break the task down into stages That requires the skill to actually do that. If you don't have the skill to do a thing, then claiming you've done it isn't professional. In thinking about this, it suddenly occurs to me that in other domains, the professional thing to do would be to call in someone who does. A medical doctor doesn't know how to properly operate imaging equipment and so she calls in a radiologist. A general contractor isn't really skilled at building a septic system and so sub-contracts to someone who does know how to do that. > mostly comes down to is experience. I think the answer to "What should I do when asked for an estimate when I don't know how to make one?" might actually be to call in the help of a more senior engineer to talk through the project with you and guide you to producing the estimate. This still requires you to have the backbone to say "I don't know." and "I need help." Then, you can gain the experience of producing a reliable estimate and seeing what questions need to be asked when doing so.