Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

"Joe Newbie says he can do it, why can't you?"

"Other people's inability to do basic project estimation has no bearing on the issue at hand."

Why is software the only field where people allow themselves to be bullied into ignoring basic arithmetic? I was in a kitchen shop the other day, and the sales guy had no problem rearranging things to modify the final price, but there was a list of components in front of us at all times, broken down by price. Pick and choose what you want.

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.



When you're in a restaurant setting the quality will suffer if you want more ingredients than the budget will normally allow. The end-result of that is McDonalds. In a software setting it is also the quality that suffers, the end result of that is visible all around you.

Software is rarely sold on quality, most of the time it is on features.

In the end, if quality software is your goal you'll have to open your own restaurant...


When you're in a restaurant setting the quality will suffer if you want more ingredients than the budget will normally allow. The end-result of that is McDonalds. In a software setting it is also the quality that suffers, the end result of that is visible all around you.

McDonald food is poor quality?


For some values of quality.


You seriously don't consider McDonald burgers to be of very poor quality?


Of all the burgers in town (Winder, GA), their toppings are often some of the best. I think they actually use fresh lettuce and tomatoes.

Still very unhealthy, but the ingredients are good.


I guess it might be a regional thing.

Over here McDonald's burgers are so foul I feel like crap after eating them.


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?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: