TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: How to Estimate the Development Effort for a Feature? Seeking Advice

3 点作者 alexliu51810 个月前
Hi everyone! I&#x27;m a web developer looking to get better at estimating the development effort for new features. When we receive a request for a new feature, accurately estimating the time and effort required can be challenging.<p>I&#x27;m curious to know how you all approach this task. What methods or tools do you use to ensure your estimates are as accurate as possible? Also, how do you avoid underestimating or overestimating the effort involved?<p>I&#x27;d love to hear about your strategies and any advice you have to share. Thanks in advance for your help!

5 条评论

tra310 个月前
Have a look at &quot;Software Estimation: Demystifying the Black Art&quot; by Steve McConnell [0]<p>I really found this quote illuminating:<p>&gt; When executives ask for an “estimate,” they’re often asking for a commitment or for a plan to meet a target. The distinctions between estimates, targets, and commitments are critical to understanding what an estimate is, what an estimate is not, and how to make your estimates better.<p>It&#x27;s a pretty deep book that discusses everything around estimating:<p>- how to estimate and what things get missed during estimation<p>- why estimates gets missed<p>Really recommended.<p>[0]: <a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Software-Estimation-Demystifying-Developer-Practices&#x2F;dp&#x2F;0735605351&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Software-Estimation-Demystifying-Deve...</a>
solardev10 个月前
I like to try to build tiny MVPs (or micro prototypes) during the planning process itself. If someone hands me a big project, I&#x27;ll take a few days to break it down into bite size pieces and try to make a super simple prototype for each piece.<p>For example, what are the user flows required (login, checkout, change settings, blah blah). How many screens does each one take? How long does it take me to build 2 screens and the connection between them? I&#x27;ll try it, time myself, and then multiply that out.<p>For the API, what endpoints are required? What&#x27;s the most difficult one, like auth? Try to implement a simple version of that. Do the same for another easier endpoint. Average them out. Buffer for shared infrastructure config time (all the CI&#x2F;CD stuff, IAM, dozen Docker and yaml files...). But still try to build a couple small ones and then extrapolate from that.<p>Add in multipliers for adding tests, project management (especially if there&#x27;s Agile bullshit and lots of Jira), QA, UI polish, accessibility, security testing, etc.<p>Whatever you end up with, add 20% on top it at least.<p>It&#x27;s always a negotiation. If you come in with a too high number, it sets more realistic expectations and might get you additional resources. If you come in low, you&#x27;ll just end up cutting corners and disappointing everyone in the end.<p>Document the hell out of everything and present it as a retrospective of the process itself, and use it to better improve the estimation and development process going forward (this IMHO is the real value, more than any one single estimation in and of itself). It lets you identify bottlenecks and &quot;what I didn&#x27;t know I didn&#x27;t know&quot; pain points that are different for every dev, ie what they ended up missing the estimates on by a lot.<p>Mostly the thing to keep in mind that the software estimation process is itself an algorithm that can be debugged, refactored, and improved over time.
alxmng10 个月前
I find it helpful to first assess uncertainty.<p>1 = I’ve done this before<p>2 = Someone else in the organization has done this before<p>3 = Someone outside the organization has done this before.<p>4 = Nobody has done this before<p>1 and 2 can be quickly estimated by referring to past work.<p>3 and 4 must be broken down into small tasks that are estimated.<p>And when breaking things down into tasks to estimate, keep in mind coding is only around 1&#x2F;4 of the work to produce software. There’s tests, documentation, revisions, planning, and communication.
评论 #40915310 未加载
Leftium10 个月前
EBS: Evidence Based Scheduling [1]<p>I&#x27;ve never used EBS myself; only read about it...<p>A client required project estimates, but only gave vague requirements which constantly ended up changing anyways. And they always asked me to work on stuff outside the scope of the contract. (Help debug this; add that feature, etc)<p>Also they balked if I ever estimated anything over two weeks.<p>So what we ended up doing:<p>1. I give my best over-all estimate, but only contracted for two weeks at a time.<p>2. After two weeks, we&#x27;d re-evaluate the situation and repeat.<p>This worked pretty well for us.<p>---<p>[1]: <a href="https:&#x2F;&#x2F;www.joelonsoftware.com&#x2F;2007&#x2F;10&#x2F;26&#x2F;evidence-based-scheduling&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.joelonsoftware.com&#x2F;2007&#x2F;10&#x2F;26&#x2F;evidence-based-sch...</a>
评论 #40911397 未加载
genezeta10 个月前
Mostly experience.<p>And unfortunately it&#x27;s mostly an ad-hoc experience. That is, my particular experience won&#x27;t generally be applicable to your particular situation. You have a different team, different preparation, skill level... You&#x27;re using different tools, workflows, methods. Your projects and features can be different to mine. You get the point.<p>But fortunately it&#x27;s an experience that can be fairly easily acquired and organized if you make the effort. You only have to measure and follow through on your estimations and their accuracy. You start making mostly <i>educated guesses</i>. Then you go ahead and do the work and compare the estimates with the time you actually took. You correct for the next estimate.<p>Loop through this several times and you generally end up with better estimates through each iteration. If you do it in an organized and consistent way, obviously.<p>Some of the keys for making this work are in no particular order:<p>- Break down larger tasks into smaller ones and estimate the small ones. It&#x27;s easier to correctly estimate a smaller task. Also, the errors should generally be smaller.<p>- Following the previous point: Make sure you account for &quot;hidden tasks&quot;. That is, you need to consider those parts of the work you just assume tacitly and make them explicit. Setup, infrastructure, bureaucracy, etc. You need to write down all tasks when you break down large tasks into smaller ones. You can, to some extent, account for this through an added safety margin, like multiplying by 1.2 or whatever. If you do that, I&#x27;d say start by multiplying by a larger factor (1.5 even 2) and in time, with the added experience and better ability to spot hidden tasks, reduce that factor accordingly.<p>- Involve the people doing the actual work in the estimation. Don&#x27;t try one person doing the estimate and a different one doing the work. Also, don&#x27;t let deadlines become estimates. I mean, you may not avoid a deadline but do a proper estimation anyway. If not for anything else, at least for the consistency of the estimation process.<p>- Give and use actual estimations. An estimation is not a single number, but a <i>pair of numbers</i> -sometimes even 3 or 4-. You may organize your estimations as a &quot;duration + confidence level&quot; (e.g. 3 days with a confidence of 80%), as a &quot;lower and upper bound&quot; (e.g. at least 3 days at most 5), or as &quot;durations at various levels of performance&quot; (e.g. if all goes very well 3 days, normally 4 days, if X thing happens then 6 days). Different styles work better for different people and circumstances. I like the last one because it helps bring up potential hidden tasks. But whatever you do, try to stick to the idea that a single number estimation is just useless.