Live data from Hacker News

The work is never just “the work” (2022)

davestewart.co.uk

51–60 of 77 posts

Re: The work is never just “the work” (2022)

#51
post #38

Why is estimating hard? 1. You haven't done it before. Not exactly the same thing. You think you've done it before, but you haven't. If you had actually done it before, you would probably be faster this time, not slower. 2. Other things besides you have changed, or will change. Coworkers, company, customers, tools, economic realities, the weather. Either it's already changed, or it's going to change. That has an impa…

I have a story about the boss: years ago the boss walks over to me and describes a straightforward change with priority that it should start right away. I said it was a two or three day job and that considering testing and other internal process could be confidently delivered in two weeks. "That's too long, never mind". I then overhear him asking a coworker about the same project. He says: "Easy, that is a two or thr…

Had a boss that did this, but always picked the overconfident, unreliable, under-bidder. He was incapable of bidding anything in increments of days/weeks. Everything was "an hour" to "an afternoon".

So I'd say "2 weeks to complete end to end".

The other guy would say "I'll crank it out this afternoon". Other guy would deliver code that wouldn't run, and then require 3 weeks from me, QA, and him to actually massage into something that works the right way.

So instead of 2 person-weeks, it would take like ~5-6 person-weeks all in. Great stuff.

Re: The work is never just “the work” (2022)

#52

I’ve come to the recent conclusion that estimating is not so much hard, but uneconomical. The amount of time/effort required to create a reliable estimate would probably double the cost of the completed project (ie, even after taking into account the overshoot on the informal estimate). The number of failed projects as a percentage of all projects would fall, but less projects would even start. We conflate “can’t est…

Without a pretty good understanding of what a project or activity has to deliver cannot provide a good estimate, regardless of time spent.

Also, if you don't know WHO will build it, and their capabilities, any accuracy is impossible. When people approach the limit of their abilities, time spent on tasks goes up exponentially.

However, if someone has a very good understanding of what they're supposed to build, the team that will build it, reasonble estimates can often be produced quite quickly. Obviously, there can be risk factors, such as customers or managers with unreasonable expectations, but those can typically be managed by experienced teams.

Anyway, raw estimates should never be seen as budgets. Budgets should be much larger, especially if they can be kept hidden from the developers, since budgets need to take all sorts of risks into account. But most team if they know what the budget is (and it's big enough), may tend to relax a bit too much early on in a project.

Most software projects go a bit (or sometimes quite a lot) over estimates. Which is often fine. The estimate may still have been a useful exercise, in that it forced someone to think about most details of the deliverable early on, and also provided something to track progress against.

Re: The work is never just “the work” (2022)

#53

Earlier quoted context omitted.

It's like running a marathon and you keep falling on your face because your shoes are untied, but you "don't have time" to stop and tie them, so instead you just keep tripping over and over and over while your competition recedes into the distance. Bonk.

In the limit, you reach the level of that joke I remember hearing as a kid (and I think it dates to post-WWII rebuilding / soviet era). One possible retelling: An outside inspection comes to a busy construction site. As they watch the workers running with wheelbarrows, back and forth between material storage and active construction, they notice that all the wheelbarrows are empty. They flag a foreman, and ask him, "w…

Also heared the story in my childhood. The reason they are keep doing that is that the loader guy is missing and they are not going to be paid unless a reward from some work.

Re: The work is never just “the work” (2022)

#54

This is actually a really good summary of how projects should be estimated. A lot of people I know just focus on the core task or the minimum viable product, ignoring everything around it. I especially find it frustrating that many PMs think that the instant a system goes into production, the project is finished and everyone should be putting tools down and walking away. In reality, the post-go-live support can take…

> In reality, the post-go-live support can take a surprising amount of time, but is rarely accounted for. Really the most frustrating part of PM. I have never had a PM that understood "we could implement features faster if we took a little time to go back and tighten up the code". Instead it's just a constant stream of one feature after the next with whatever got written down the first time by a fresh college grad be…

Sounds like Xtreme Go Horse Methodology. It is the fastest and therefore best. https://github.com/Brunomachadob/xgh

Re: The work is never just “the work” (2022)

#55

I’ve come to the recent conclusion that estimating is not so much hard, but uneconomical. The amount of time/effort required to create a reliable estimate would probably double the cost of the completed project (ie, even after taking into account the overshoot on the informal estimate). The number of failed projects as a percentage of all projects would fall, but less projects would even start. We conflate “can’t est…

> The amount of time/effort required to create a reliable estimate would probably double the cost of the completed project (ie, even after taking into account the overshoot on the informal estimate). The number of failed projects as a percentage of all projects would fall, but less projects would even start.

Another way of looking at it is that for most projects, the uncertainty in the estimate only reaches zero at the end of the project (when you know, hopefully, how much was actually spent). If a project is lucky, the initial uncertainty is low and reduces monotonically over time as the project progresses, so that the estimates gradually converge on the real cost.

Re: The work is never just “the work” (2022)

#56
post #46

I’ve come to the recent conclusion that estimating is not so much hard, but uneconomical. The amount of time/effort required to create a reliable estimate would probably double the cost of the completed project (ie, even after taking into account the overshoot on the informal estimate). The number of failed projects as a percentage of all projects would fall, but less projects would even start. We conflate “can’t est…

A few years ago, our management summoned some contractors to enlighten us on how to properly estimate a project. They taught us The Way (TM), and proudly stated that they were renowned for their respect of the deadline. I wasn't snarky enough to remind them that shipping is extremely easy when you take no responsibility for maintenance, but I expressed my curiosity about how much time would be devoted to the preparat…

> I appreciated their honesty when they replied that, for a typical 1000-hour project, 250 would be devoted to the estimation.

I did not expect that plot twist to your story. Sounds about reasonable. Proper project management takes alot of time and need to engage the actual implementors.

Re: The work is never just “the work” (2022)

#58

I’ve come to the recent conclusion that estimating is not so much hard, but uneconomical. The amount of time/effort required to create a reliable estimate would probably double the cost of the completed project (ie, even after taking into account the overshoot on the informal estimate). The number of failed projects as a percentage of all projects would fall, but less projects would even start. We conflate “can’t est…

> The amount of time/effort required to create a reliable estimate would probably double the cost of the completed project (ie, even after taking into account the overshoot on the informal estimate).

I've seen it done, and it's more than double. You have to have most of the work done before you deliver the estimate. The thing is, you have to deliver an estimate that is at least as long as the time you spent producing the estimate, but you're already mostly done, so towards the end of a project there's a lot of gold plating and general screwing around. It's a silly way to work.

And everybody knows what's going on, because people talk. You can't keep it secret. You can only do it as long as upper management thinks it benefits the company. The customer-facing side of the business (sales, customer success) makes a very strong case that faster delivery means happier customers, and more optimistic timelines mean more sales. As much as accurate estimation is an eternal management dream, there's not much benefit to it other than a little bit of dubiously valuable trust and credibility with customers. The idea that "if only we could estimate accurately, we could execute grand strategic visions" is mostly bullshit. You're slowing yourself down, and the only thing you get out of it is that engineering management gets to pat themselves on the back for hitting estimates.

Re: The work is never just “the work” (2022)

#59
I have some thoughts on the vast differences between working on a team delivering firmware that is indefinitely the lifeblood of the hardware, vs working on a team writing hardware test tools that get used by people for one cycle (1-2 years) and nobody bats an eye when they're broken/unusable or difficult to extend to the next generation of hardware...

Clean, readable, beautiful C with well thought out descriptive names for everything, comments that get anyone up to speed on the code section. Self-descriptive, pleasant to work with.

VS

MVP Python repo that has a super wide directory structure with poorly thought out grouping that takes 5x as long to memorize. When trying to understand a code section, told: "Just hit tab complete on the command line". Okay, that tells me the relationships between objects, classes, methods, containers, etc... But how does it work? Obfuscated not just from the users but the devs themselves.

Yeah.

Re: The work is never just “the work” (2022)

#60
Great article!

Microsoft Press' "Software Estimation: Demystifying the Black Art" is a good deep dive into the subject.

Found it via a talk by Jakob Persson at Drupalcon many years ago, he recommended a template-based spreadsheet approach where you estimate a project by splitting it into components and giving each a "confidence" level from 1-5, then adding fixed padding for various items like project management (20%), deployment (5%), buffer for unforeseen problems (20%) etc that essentially came down to "2-3x the initial estimate" but with some calculations to back it up, and made estimations systematically easy.

His slides are here: https://www.slideshare.net/jakobpersson/the-science-of-guess...

The sheet template is here: https://docs.google.com/spreadsheets/d/13MGHIxFOtbJ2Qxygc_Gx... - have used variations of it with great success for many years beyond when I shifted away from Drupal work.

Noting that his more recent blog articles now recommend a value-based pricing approach for the consulting model (which I agree with and also shifted to in my freelance days).

Good to see more writing on estimation for engineers, Agile's story points model is nice for teams doing the work, but in many kinds of work when you're running a team there's someone above you who signs the checks that wants to know what something's going to (approximately) cost before they sign off on it.

Post reply on HN