3 ms·
That's exactly how software estimation works too. If you add something to the scope, it gets added to the budget. There's simply no room to do otherwise. There
by azanar 16y ago
That's exactly how software estimation works too. If you add something to the scope, it gets added to the budget. There's simply no room to do otherwise.
There's a difference between the two examples in your metaphor which is extremely important.
In the case of the sales guy in the kitchen shop, he already had a known set of things to arrange with a known set of prices and a known set of discounts that he could work against. This is a lot of knowns, and very little estimation.
Now imagine that instead of having a known set of things, he offered to have built for you a set of kitchen supplies to match what you thought you might be making in your kitchen in the foreseeable future. The supplies you need may or may not already exists in the market of kitchen supplies.
For the supplies that already exist, estimation is pretty easy and accurate. Look at the price tags, and sum them, possibly picking out subsets in the process.
For the supplies that don't yet exist, estimation is anywhere from difficult to impossible, depending on the accuracy demanded. There is the time and cost of building the finished product, but there is also the time spent researching what that finished product ought to be, while balancing between the cost of the finished product and its effectiveness.
Software development isn't a matter of taking a set of solutions and finding an optimal set of subset. Software development is determining what that initial set ought to contain; it might contain some already existing subsets, which makes that part of estimation easier. But other elements you will have to create, and estimating creation time of something that doesn't yet exist is often a case in futility. It often simply comes down to a gut feeling, or intuition, or whatever you want to call it.
This is why people get bullied. If someone's gut says something is a particular way, but they are feeling intense peer pressure to believe it isn't that way, they'll feel compelled to distrust their intuition. Imagine, if you will, someone who believes the universe is billions of years old in a community full of people who believe it is only 6000 years old, at a time when people were just starting to discover evidence for this longer period; he'll feel strongly compelled to keep his intuition to himself.
sigh Even this example isn't perfect, because there is still something tangible to it. It's hard to find metaphors that do the nebulous nature of software development justice. Maybe someone else has a better metaphor they've had success with?