Live data from Hacker News

Yes, Estimate Software Projects

blog.pragmaticengineer.com

1–10 of 96 posts

Re: Yes, Estimate Software Projects

#2
This is such an important topic and missing skill in the tech workplace.

It's impossible to prioritize work without estimating the cost & value of projects, and teams that don't prioritize are always overworked, playing catchup and are unhappy.

What the author says about 'we shipped different functionality to what we planned' is really important too -- beginning managers aren't willing to have this conversation but scope de-creep is the only way to deliver quality work on-time.

It's not enough to play planning poker, you need to have ICs in the room for spec design and make time to identify & resolve unknowns before committing to features / timelines.

Re: Yes, Estimate Software Projects

#3
> Have you noticed how Apple ships most of their big bang projects at WWDC, a date they commit to far ahead?

Is this why so many Apple products have been increasingly low-quality? Instead of committing to quality, they commit to arbitrary dates because some bean counter decides quarterly profits needed to be higher.

I don’t disagree that we should estimate, but I think we should be realistic about just how difficult estimating software projects is, especially now that we’re “agile”, which really means “there aren’t any explicit requirements but there are requirements, we just don’t know what they are and also they change every sprint so good luck”.

If we want to estimate software, we need to have more predictability. I can estimate that it takes three days to fix a bug, but what happens when I pull those covers back and see an unholy Eldritch abomination? I could redo my estimate, but what if I run into an arbitrary quarterly profit-driven date? “Well, just get it done.” Then we nail some more legs to the dog and the cycle continues.

Re: Yes, Estimate Software Projects

#5
I hate deadlines simply because organizations I have worked in tend to assign them indiscriminately without any reference to reality. Upper management wants to set a deadline for a big project? Then they need to be prepared to commit and compromise. While developers continuously deliver, product owners and stakeholders need to continuously review, reevaluate, and adapt.

In Thinking Fast and Slow, Daniel Kahneman offers my favorite object lesson on the topic:

http://txti.es/kahneman-outside-view

He sums up:

This embarrassing episode remains one of the most instructive experiences of my professional life. I eventually learned three lessons from it. The first was immediately apparent: I had stumbled onto a distinction between two profoundly different approaches to forecasting, which Amos and I later labeled the inside view and the outside view. The second lesson was that our initial forecasts of about two years for the completion of the project exhibited a planning fallacy. Our estimates were closer to a best-case scenario than to a realistic assessment. I was slower to accept the third lesson, which I call irrational perseverance: the folly we displayed that day in failing to abandon the project. Facing a choice, we gave up rationality rather than give up the enterprise.

The suggestion that the enterprise should have been abandoned all together can be misinterpreted as fatalistic, even nihilistic. I take it to mean that you've got to do your research (the outside view), rigorously define your MVP, and then work from there. If your deadline is fixed, be ready to scale back.

His distinction between the inside and outside view is the key. For a project to have any hope of realistic timelines, it needs to be understood and the outside view needs to be applied.

Re: Yes, Estimate Software Projects

#7
Being pretty young and just getting used to making estimates, this was a wonderful read!

Having to guess how long a project will take is still very scary for me. Is there any way to get over the fear of others disagreing? I always feel like I'm about to embarrass myself by either estimating to high or to low...

Re: Yes, Estimate Software Projects

#8
I think it's good to write down your guess for your own future reference in improving your own guesses, and at some point you'll be good enough to do this and not get burned (as a contractor, I'm assuming).

I have been doing this a while and am not good enough to avoid getting burned without building in a 3-4x buffer. Sometimes I end up finishing a project in 10% of the expected time, but at least it's not over 100%?

I don't think that's very healthy for anyone involved though, it's better if for projects I can't estimate well we just do hourly so that I'm incentiviced to spend lots of time making it great and they're incentivized to give me more work in updating the spec without needing to renegotiate anything.

But yeah, I'd say yes estimate and do it in writing but keep it to yourself until you're actually good at it. It takes practice, but honest logs of your past projects will elucidate over time. Like how whenever my biologist coworkers would plan an 8 hour project, 11 hours in I'm just like... how did you not plan for cleanup and prep?

Some things are just not obvious right away, but can become clear in retrospectives that inform future estimates.

Re: Yes, Estimate Software Projects

#9

Being pretty young and just getting used to making estimates, this was a wonderful read! Having to guess how long a project will take is still very scary for me. Is there any way to get over the fear of others disagreing? I always feel like I'm about to embarrass myself by either estimating to high or to low...

Use your best judgment and make sure that every line item in your estimate is defensible. "I used the best information that I had access to, happy to add your information if it's better" is a good response to a challenge.

Surface uncertainty rather than hiding it, and fight for the time to resolve uncertainty before committing to a timeline. Fight to shrink the assignment if it seems too large.

Re: Yes, Estimate Software Projects

#10

Being pretty young and just getting used to making estimates, this was a wonderful read! Having to guess how long a project will take is still very scary for me. Is there any way to get over the fear of others disagreing? I always feel like I'm about to embarrass myself by either estimating to high or to low...

It sounds to me like what you really should be learning isn't how to estimate, but rather how to change your mindset on disagreement. Disagreement is a good thing, not a bad thing. Learning how to change your own mind is a very useful skill that requires disagreement. When organizational disagreement stops, so does organizational growth. Be friendly and kind to people who you disagree with, and ask lots of questions to better understand their thinking.
Post reply on HN