frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

How I Estimate Work as a Staff Software Engineer

https://www.seangoedecke.com/how-i-estimate-work/
108•mattjhall•5h ago

Comments

shoknawe•1h ago
The old guys in the 80's and 90's would say kiddingly multiply your original estimate time pi (3.14).
heikkilevanto•47m ago
Several times, to be sure
wbkang•1h ago
This resonated with me a lot, thank you. It more or less matches what I have experienced, and it’s good to see someone write this down in a fairly balanced point of view.

My favourite parts:

> My job is to figure out the set of software approaches that match that estimate. […]

> Many engineers find this approach distasteful. […]

> If you refuse to estimate, you’re forcing someone less technical to estimate for you.

Even after many years, I still find it distasteful sometimes but I have to remind myself what everyone gets paid for at the end of the day.

RickJWagner•1h ago
When I started in the early 90s, a wise old programmer gave me two pieces of advice about estimation.

1. When you consider planning, testing, documentation, etc. it takes 4 hours to change a single line of code.

2. To make good estimates, study the problem carefully, allow for every possibility, and make the estimate in great detail. Then take that number and multiply by 2. Then double that number.

dcminter•43m ago
I used to (half) jokingly tell people to go to the next human unit.

A few days? At least a week.

A week? A month.

A month? A year.

A year? Uh... decade or never...

It's wildly pessimistic but not as inaccurate as I'd like.

zabzonk•27m ago
10 lines of working and tested code per day has always been considered the realistic maximum, in my experience. Anything else is pure optimism - which might of course work for the project in the short term.
ericyd•1h ago
The more I work in engineering, the more I agree with pieces like this which suggest that a large part of the job is managing politics in your workspace.
publicdebates•1h ago
> I ask myself "which approaches could be done in one week?".

This is exactly how all good art is done. There's an old French saying, une toile exige un mur.

mattacular•1h ago
Estimation is an art, not a science. It's always going to be a judgement call by the engineers tasked with giving them to management. Taking all of the factors from this article and beyond can and should go into making that judgement call.

I always tell my teams just skip the middlemen and think of estimates as time from the jump. It's just easier that way. As soon as an estimate leaves an engineer's mouth, it is eagerly translated into time by everyone else at the business. That is all anyone else cares about. Better said - that is all anyone else can understand. We humans all have a shared and unambiguous frame of reference for what 1 hour is, or what 1 day is. That isn't true of any other unit of software estimation. It doesn't matter that what one engineer can accomplish in 1 hour or 1 day is different from the next. The same is true no matter what you're measuring in. You can still use buffers with time. If you insist on not thinking of your labor in terms of hours spent, you can map time ranges to eg. points along the Fibonacci sequence. That is still a useful way to estimate because it is certainly true as software complexity goes up, the time spent on it will be growing non-linearly.

tuna74•33m ago
You can improve if you follow up the estimates. My team had several months when we were within +- 10% in the aggregate.
cube2222•1h ago
I think the main problem in estimating projects is unknown unknowns.

I find that the best approach to solving that is taking a “tracer-bullet” approach. You make an initial end-to-end PoC that explores all the tricky bits of your project.

Making estimates then becomes quite a bit more tractable (though still has its limits and uncertainty, of course). Conversations about where to cut scope will also be easier.

mariusor•50m ago
But how long it'll take you to make that PoC? Any idea? :P
danjl•54m ago
Bravo! Not a single mention of LLMs changing the calculus.
badgersnake•31m ago
In some situations it may be politically useful to pretend that an LLM makes things faster because that is what your boss wants to hear though.
bgribble•53m ago
One thing I think is missing is an understanding of why there is such a top-down push for timelines: because saying "we aren't sure when this feature will be delivered" makes sales people look like they don't know what they are talking about. Which.... well.

They would much rather confidently repeat a date that is totally unfounded rubbish which will have to be rolled back later, because then they can blame the engineering team for not delivering to their estimate.

genghisjahn•52m ago
Anyone from a sales roll care to speak to this?
carefulfungi•15m ago
Sales gets fired (or not paid) for missing their estimates (quotas, forecasts) and often have little empathy for engineering being unable to estimate accurately.
pocketarc•41m ago
I'm a dev, not a salesperson, but let's be realistic. A company tells you "yeah we're interested in signing at $1M/yr, but we really need this feature, when will you have it by?", to which saying "eh we don't know - it'll be done when it's done" will lead to the company saying "ok well reach out when you have it, we can talk again then" (or just "eh ok then not a good fit sorry bye"), and in the meantime they'll go shopping around and may end up signing with someone else.

Having a promised date lets you keep the opportunity going and in some cases can even let you sign them there and then - you sign them under the condition that feature X will be in the app by date Y. That's waaaay better for business, even if it's tougher for engineers.

devsda•23m ago
Unless its the first time they are hearing about it, when a customer asks about a feature, sales should've done their homework and checked with the team doing the work to get a rough estimate instead of pulling a number out of their behinds.
ravloony•11m ago
Just to consider the opposite viewpoint, I sometimes wonder if it's not better that they do churn in that case. Assuming the sales team is doing their job properly, there are other prospects who may not need that feature, and not ramming the feature in under time constraints will lead to a much better product. Eventually, their feature will be built, and it will have taken the time that it needed, so they'll probably churn back anyway, because the product from the vendor they did get to ram their feature in is probably not very good.
iamflimflam1•23m ago
If you hired someone to do some work on your house, and they refused to give an estimate, would you be happy?

If you had a deadline - say thanksgiving or something - and you asked “will the work be done by then” and the answer was “I’m not going to tell you” would you hire the person?

The no estimates movement has been incredibly damaging for Software Engineering.

geetee•10m ago
Most businesses like to pretend change orders don't apply to software.
tuna74•5m ago
Then you need a new estimate. That is not hard to comprehend.
narmiouh•8m ago
Painting a wall has no “if then else”. You dont need to test to see if the wall has been painted.
xyzzy123•23m ago
The top down push for timelines is because:

In Australia, an SDE + overhead costs say $1500 / work day, so 4 engineers for a month is about $100k. The money has to be allocated from budgets and planned for etc. Dev effort affects the financial viability and competitiveness of projects.

I feel like many employees have a kind of blind spot around this? Like for most other situations, money is a thing to be thought about and carefully accounted for, BUT in the specific case where it's their own days of effort, those don't feel like money.

Also, the software itself presumably has some impact or outcome and quite often dates can matter for that. Especially if there are external commitments.

pluralmonad•15m ago
Doesn't this ignore the glaring difference between a plumbing task and a software task? That is, level of uncertainty and specification. I'm sure there are some, but I can't think of any ambiguous plumbing requirements on the level of what is typical from the median software shop.
tuna74•4m ago
How much plumbing knowledge do you have?
mactavish88•4m ago
The only approach that genuinely works for software development is to treat it as a "bet". There are never any guarantees in software development.

1. Think about what product/system you want built.

2. Think about how much you're willing to invest to get it (time and money).

3. Cap your time and money spend based on (2).

4. Let the team start building and demo progress regularly to get a sense of whether they'll actually be able to deliver a good enough version of (1) within time/budget.

If it's not going well, kill the project (there needs to be some provision in the contract/agreement/etc. for this). If it's going well, keep it going.

the_af•23m ago
I think this is unfair to sales.

I've made your argument before, but realistically, much of the word revolves around timelines and it's unreasonable to expect otherwise.

When will you recover from your injury so you can play the world cup?

When will this product arrive that I need for my child's birthday?

When will my car be repaired, that I need for a trip?

How soon before our competitors can we deliver this feature?

"It'll be done when it's done" is very unsatisfying in a lot or situations, if not downright unacceptable.

ripped_britches•40m ago
I don’t do a ton of estimation but an interesting new thing is asking a cli agent to estimate for you.

First impressions with this is they give really long estimates.

Also, due to coding agents, you can have them completely implement several different approaches and find a lot of unknown unknowns up front.

I was building a mobile app and couldn’t figure out whether I wanted to do two native apps or one RN/Expo app. I had two different agents do each one fully vibe coded and then tell me all the issues they hit (specific to my app, not general differences). Helped a ton.

cvwright•33m ago
I think Claude’s estimates are biased towards huge enterprise projects.

I asked it to estimate a timeline for a feature in my hobby project and it confidently replied, “4.5 weeks to code completion”.

Less than 4 hours later, the feature was done. I asked it to compare this against its initial estimate and it replied, “Right on schedule!”

I have completely given up on using it to estimate anything that actually matters.

jawns•40m ago
Here's my (somewhat tongue-in-cheek) rubric:

- If it's an internal project (like migrating from one vendor to another, with no user impact) then it takes as long as I can convince my boss it is reasonable to take.

- If it's a project with user impact (like adding a new feature) then it takes as long as the estimated ROI remains positive.

- If it's a project that requires coordination with external parties (like a client or a partner), then the sales team gets to pick the delivery date, and the engineering team gets to lie about what constitutes an MVP to fit that date.

tuna74•36m ago
Slightly OT, but anyway.

The only reasonable way to estimate something is in work hours. Everything else is severely misguided.

Also, if you don't follow up any estimate is meaningless.

Falimonda•23m ago
Work hours is the only way I've learned to think about it productively.

It's also important to gather consensus among the team and understand if/why work hour estimates differ between individuals on the same body of work or tasks. I'd go so far as to say that a majority of project planning, scoping, and derisking can be figured out during an honest discussion about work hour estimates.

Story points are too open to interpretation and have no meaningful grounding besides the latent work hours that need to go into them.

Glyptodon•32m ago
I agree with most of things on this article with and additional caveat: estimates are also a function of who is going to do the work. If I have a team of 5 offshore devs who need hand holding, 2 seniors who are very skilled, and two mid level or juniors, how long something will take, what directions will be given, and even the best approach to choose can vary wildly depending on which subset of the team is going to be working on it. On top of all the other problems with estimates. This variance has degrees, but particularly when there are high-skilled on shore engineers and low skilled offshore ones, it leads to problems, and companies will begin to make it worse as they get more cost sensitive without understanding that the different groups of engineers aren't perfectly fungible.
coffeebeqn•5m ago
And how many other parallel work streams are going. So many times I’ve estimated something to be “5” and it’s gone into my queue. Then people are wondering why it’s not done after “5” estimation units and I’ve got “10” worth of more high priority tasks and fires at every moment of my career
tuna74•2m ago
Excellent example why anything else than work hours is pointless to estimate in.
dasil003•24m ago
This is a great insight and something every engineer should reflect on in the context of their own orgs:

> estimates are not by or for engineering teams.

It's surprising the nuance and variety of how management decisions are made in different orgs, a lot depends on personalities, power dynamics and business conditions that the average engineer has almost no exposure to.

When you're asked for an estimate, you've got to understand who's asking and why. It got to the point in an org I worked for once that the VP had to explicitly put a moratorium on engineers giving estimates because those estimates were being taken by non-technical stakeholders of various stripes and put into decks where they were remixed and rehashed and used as fodder for resourcing tradeoff discussions at the VP and executive level in such a way as to be completely nonsensical and useless. Of course these tradeoff discussions were important, but the way to have them was not to go to some hapless engineer, pull an overly precise estimate based on a bunch of tacit assumptions that would never bear out in reality, and then hoist that information up 4 levels of management to be shown to leadership with a completely different set of assumptions and context. Garbage in, garbage out.

These days I think of engineering level of effort as something that is encapsulated as primarily an internal discussion for engineering. Outwardly the discussion should primarily be about scope and deadlines. Of course deadlines have their own pitfalls and nuance, but there is no better reality check for every stakeholder—a deadline is an unambiguous constraint that is hard to misinterpret. Sometimes engineers complain about arbitrary deadlines, and there are legitimate complaints if they are passed down without any due diligence or at least a credible gut check from competent folks, but on balance I think a deadline helps engineering more than it hurts as it allows us to demand product decisions, designs, and other dependencies land in a timely fashion. It also prevents over-engineering and second system syndrome, which is just as dangerous a form of scope creep as anything product managers cook up when the time horizon is long and there is no sense of urgency to ship.

fallinditch•18m ago
I find that ballpark estimates are often more accurate than estimates based on work breakdowns ... and this concurs with OP's observation that estimates tend to miss due to the unknowns.
notjustanymike•18m ago
After owning a product, I've developed a lot of sympathy for the people outside of engineering who have to put up with us. Engineers love to push back on estimates, believing that "when it's done" is somehow acceptable for the rest of the business to function. In a functioning org, there are lot of professionals depending on correct estimation to do their job.

For us, an accurate delivery date on a 6 month project was mandatory. CX needed it so they could start onboarding high priority customers. Marketing needed it so they could plan advertising collateral and make promises at conventions. Product needed it to understand what the Q3 roadmap should contain. Sales needed it to close deals. I was fortunate to work in a business where I respected the heads of these departments, which believe it or not, should be the norm.

The challenge wasn't estimation - it's quite doable to break a large project down into a series of sprints (basically a sprint / waterfall hybrid). Delays usually came from unexpected sources, like reacting to a must have interruption or critical bugs. Those you cannot estimate for, but you can collaborate on a solution. Trim features, push date, bring in extra help, or crunch. Whatever the decision, making sure to work with the other departments as colaborators was always beneficial.

rawgabbit•14m ago
The most important part of the article is ”I gather as much political context as possible before I even look at the code.”
yojo•10m ago
The article resonates with me, but I think it misses some nuance when estimating in aggregate. My career has been primarily product engineering, let’s call it the top 2/3rds of the stack. I’ve been lead on multiple projects with the rough shape “we have this [conference/marketing event/partnership] on [date] and we want to ship [new feature].”

My job is to present an opinionated menu of functionality I believe we can have in place by that time. It should also include the potential scope cuts if things go wrong.

I agree that unknowns dominate the individual tasks, but when you bundle enough together the positive/negative surprises tend to balance out.

Without an idea of at least relative Eng costs of different features, it is impossible for leadership to correctly prioritize what we build and what we cut.

I cannot tell you with certainty that a given task will take N days, but I should be reasonably confident communicating what my team can accomplish in a quarter.

paulddraper•3m ago
You wouldn’t put up with this drama from any other professional, I don’t know why you’d take it from a SWE.

Timelines can be estimated approximately.

tossandthrow•3m ago
IMHO time estimation for software development is a legacy way of thinking. A result of industrial processes.

At my team we think in terms of deliverables and commitments: "I can commit til deliver this by that date under these circumstances".

This mitigated the diverse nature Og thinking.

Doing gigabit Ethernet over my British phone wires

https://thehftguy.com/2026/01/22/doing-gigabit-ethernet-over-my-british-phone-wires/
241•user5994461•5h ago•143 comments

How I Estimate Work as a Staff Software Engineer

https://www.seangoedecke.com/how-i-estimate-work/
113•mattjhall•5h ago•50 comments

MS confirms it will give the FBI your Windows PC data encryption key if asked

https://www.windowscentral.com/microsoft/windows-11/microsoft-bitlocker-encryption-keys-give-fbi-...
112•blacktulip•2h ago•81 comments

I Like GitLab

https://www.whileforloop.com/en/blog/2026/01/21/i-like-gitlab/
91•lukas346•5h ago•53 comments

Many Small Queries Are Efficient in SQLite

https://www.sqlite.org/np1queryprob.html
72•tosh•4h ago•58 comments

When employees feel slighted, they work less

https://penntoday.upenn.edu/news/penn-wharton-when-employees-feel-slighted-they-work-less
105•consumer451•4d ago•78 comments

Internet Archive's Storage

https://blog.dshr.org/2026/01/internet-archives-storage.html
219•zdw•3d ago•60 comments

Unrolling the Codex agent loop

https://openai.com/index/unrolling-the-codex-agent-loop/
392•tosh•19h ago•185 comments

Proof of Corn

https://proofofcorn.com/
430•rocauc•21h ago•283 comments

Claude Code's new hidden feature: Swarms

https://twitter.com/NicerInPerson/status/2014989679796347375
22•AffableSpatula•1h ago•19 comments

80386 Multiplication and Division

https://nand2mario.github.io/posts/2026/80386_multiplication_and_division/
73•nand2mario•9h ago•21 comments

Extracting verified C++ from the Rocq theorem prover at Bloomberg

https://bloomberg.github.io/crane/
88•clarus•4d ago•8 comments

Management Time: Who's Got the Monkey? [pdf]

https://www.med.unc.edu/uncaims/wp-content/uploads/sites/764/2014/03/Oncken-_-Wass-Who_s-Got-the-...
27•rintrah•4d ago•5 comments

“Let people help” – Advice that made a big difference to a grieving widow

https://www.npr.org/2026/01/20/nx-s1-5683170/let-them-the-small-bit-of-advice-that-made-a-big-dif...
108•NaOH•12h ago•19 comments

6 Years Building Video Players. 9B Requests. Starting Over

https://www.mux.com/blog/6-years-building-video-players-9-billion-requests-starting-over
7•bolp•4d ago•0 comments

JVIC: New web-based Commodore VIC 20 emulator

https://vic20.games/#/basic/24k
11•lance_ewing•3h ago•2 comments

Modetc: Move your dotfiles from kernel space

https://maxwell.eurofusion.eu/git/rnhmjoj/modetc
34•todsacerdoti•7h ago•19 comments

Some C habits I employ for the modern day

https://www.unix.dog/~yosh/blog/c-habits-for-me.html
193•signa11•5d ago•116 comments

Gas Town's agent patterns, design bottlenecks, and vibecoding at scale

https://maggieappleton.com/gastown
360•pavel_lishin•23h ago•379 comments

Traintrackr – Live LED Maps

https://www.traintrackr.co.uk/
75•recursion•5d ago•24 comments

Banned C++ features in Chromium

https://chromium.googlesource.com/chromium/src/+/main/styleguide/c++/c++-features.md
210•szmarczak•19h ago•191 comments

Show HN: Coi – A language that compiles to WASM, beats React/Vue

130•io_eric•3d ago•51 comments

Telli (YC F24) is hiring eng, design, growth [on-site, Berlin]

https://careers.telli.com/
1•sebselassie•8h ago

Ask HN: May an Agent accepts a license to produce a build?

13•athrowaway3z•1h ago•13 comments

Ask HN: What's the current best local/open speech-to-speech setup?

200•dsrtslnd23•1d ago•51 comments

Microsoft gave FBI set of BitLocker encryption keys to unlock suspects' laptops

https://techcrunch.com/2026/01/23/microsoft-gave-fbi-a-set-of-bitlocker-encryption-keys-to-unlock...
944•bookofjoe•21h ago•593 comments

Booting from a vinyl record (2020)

https://boginjr.com/it/sw/dev/vinyl-boot/
332•yesturi•1d ago•110 comments

New YC homepage

https://www.ycombinator.com/
276•sarreph•21h ago•151 comments

Comma openpilot – Open source driver-assistance

https://comma.ai
315•JumpCrisscross•14h ago•173 comments

Mental Models (2018)

https://fs.blog/mental-models/
115•hahahacorn•18h ago•19 comments