是否有充分的理由对几个月后的功能进行时间​​估计?

发布于 2024-07-29 07:58:09 字数 1432 浏览 5 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

走野 2024-08-05 07:58:09

这实际上取决于估算的用途以及附加的期望。

如果在没有警告的情况下将估计值用于向管理层报告,那么这可能是一种危险的做法。 另一方面,如果它们被用来做一些高层规划或起草项目计划以供讨论,那么这些估计可能非常有用。

我们经常使用术语 WAG(疯狂猜测)来表示此类估计。 它们可能存在 +100%/-50% 的差异。 随着需求的充实,这一估计被转移到大致估计,其可能存在+50%/-50%的差异。

It really depends on what the estimates are going to be used for and what expectations are attached.

If the estimates are used to report to management without a caveat then this can be a dangerous practice. If on the other hand they are used to do some high level planning or draft a project plan for discussion, then these estimates can be extremely useful.

We often use the term WAG (wild arse guess) for these type of estimates. They come with a possible +100%/-50% variance. As the requirements get fleshed out this estimate is moved to a Ball Park Estimate which has a possible +50%/-50% variance.

拿命拼未来 2024-08-05 07:58:09

是的,我想说你没有抓住重点。

也许,类比是正确的......你正在做一些家庭装修,你来找我评估我的工作。 我问你你想做什么,你告诉我。 然后我回来引用。 我告诉你“好吧,我知道下周我会做什么,但从那时起它就会变得有点模糊......我真的不认为我具体有任何价值,但我确信几个月/几年/无论会完成什么,但只要你继续付钱给我,我相信我能弄清楚该怎么做。”

我能得到这份工作吗?

Yes, I would say you are missing the point.

Maybe and analogy is in order... You are doing some home rennovations, you come to me for an estimate of my work. I ask you what you want done, you tell me. Then I come back with a quote. I tell you "well, I know what I will get done next week, but from that point it is going to get a bit fuzzy... I really don't think there is any value in me being specific, but I am sure in a few months/years/whatever it will get done, but as long as you keep paying me, I am sure I can figure out what to do."

Would I get the job?

谁把谁当真 2024-08-05 07:58:09

在处理松散规格的需求以及处理几个月后的项目时,给出高级估计通常很有用。 高水平估计可以表示为一个较宽的范围(即 4 至 8 周)。 它们有助于让估计的接收者对大小有一个粗略的了解,从而使他们能够执行一些计划。 围绕高级的合同是,当您需要提供更准确的估计时,它会发生变化。 较低水平的估计值通常会变窄,并且在您最初提供的范围内。 此时您需要适当的规格,并更好地了解您的可用资源,而这很可能在实施前几个月不可用。

When dealing with loosely spec'd requirements, as well as when dealing with items that are months down the road, it is often useful to give High Level estimates. A High Level estimate could be represented as a wide range (ie 4 to 8 weeks). They are useful to provide the receiver of the estimate a rough understanding of the size, allowing them to perform some planning. The contract surrounding the High Level is that it will change when you are required to provide a more accurate estimate. The lower level estimates usually get narrower, and within the range you originally provided. You would need proper specs by this point, and a better understanding of your available resources, which is most likely not available months before implementation.

相对绾红妆 2024-08-05 07:58:09

讨论该功能需要花费多少时间是完全合理的。 这可以提高对哪些内容应该更仔细地考虑以及哪些内容应该立即丢弃的理解。 管理层需要它来更好地计划并减少产品延迟或不完整的机会。

然而,重要的是不要陷入这里的陷阱 - 你可以说“好吧,这可能需要 N 天”,然后三个月后,在该功能大幅膨胀后,管理层会告诉你“你承诺过这需要 N 天,现在你怎么敢增加估价并要求4N天?” 您需要证明这是一个非常扭曲的估计,因为您还不完全知道特征大小。

It's completely reasonable to discuss how much that feature could take. This improves understanding of what should be thought of more carefully and what should be discarded immediately. Management needs this to plan better and decrease the chances of the product being late or incomplete.

However it's important not to fall into the trap here - you could say "well, it could take N days" and then three months later after the feature has been inflated greatly the management will tell you "you promised that it would take N days, how dare you increase the estimate and demand 4N days now?" You need to document that this is a very distorted estimate since you don't know the feature size completely yet.

第七度阳光i 2024-08-05 07:58:09

我读过的关于管理软件开发过程的最好的书是 Steve McConnell 的快速开发。 这非常详细地涵盖了估算问题——如果您参与项目规划并且还没有读过这本书,我怀疑您是否真的知道自己在做什么(我不知道)。

The best book I have read on managing the software development process is Rapid Development by Steve McConnell. This covers the issue of estimation in great detail - if you are involved in project planning and you haven't read this book, I doubt you really know what you are doing (I didn't).

与酒说心事 2024-08-05 07:58:09

这就像预测六个月后某一天的天气:你不知道会是什么样子,但你可以说出会是什么样子。 基于这些假设,我们可以预测未来并粗略估计暖气或空调费用、规划衣柜、预订假期并邀请朋友过来。

从某种意义上说,预测软件开发与预测天气有些不同,作为程序员,我们对构建软件的影响比天气更大、更直接:我们可以添加和削减功能、确定优先级,有时甚至可以灵活调整资源。

通过制定一个较为现实的目标,团队希望在三到六个月内实现目标,从而可以倒退并找出实现目标所需要做的所有事情。 然后评估任务并专注于削减功能、设定优先级和转移资源。 有时,在三个月内制定明确的目标会如何影响明天或立即需要完成的任务和优先事项,这可能非常具有启发性和令人惊讶。

我们需要寻找更多客户吗? 或者现在就开始寻找更多人? 我们应该削减功能还是应该在计划中变得更加雄心勃勃? 如果我们现在考虑引入一名额外的开发人员,作为约翰休假后的替补,约翰可以在两个月后享受两周年假吗?

开发人员讨厌频繁的任务切换和最后一刻的项目,通过制定清晰的路线图并分配一些资源,您将帮助开发人员感到更安全并为未来的项目做好准备。

It’s like predicting weather on an exact day six months from now: you don’t know what it’s going to be but you will be able to say what is going to be like. And based on the assumptions it’s possible to look ahead and roughly estimate the heating or air-con bill, plan the wardrobe, book holidays and invite friends over.

Now predicting software development is somewhat different from predicting weather in a sense, that as programmers we have much more and direct influence on building software than weather: we can add and cut features, prioritise and sometimes even flex resources.

By having a somewhat realistic goal the team is aiming to achieve in three or six month time its possible to work backwards and figure out all the things that have to be done to get there. And then estimate the tasks and indulge in cutting features, setting priorities and moving resources around. At times it can be very revealing and surprising how having a clear goal in three months time affects tasks and priorities of what needs to be done tomorrow or straight away.

Do we need to find more customers? Or start looking for more people right now? Should we be cutting features or should we become more ambitious in our plans? Can John take two weeks annual leave in two months time should we be looking at introducing an extra developer now, as a cover for John once he is off holiday?

Developers hate frequent task switching and last minute projects, by having a clear roadmap with some resource assigned you’ll help developers feel more secure and prepare for future projects.

沐歌 2024-08-05 07:58:09

我认为您误解了为什么要求您提供这些估计。

假设您有功能 A、B、C、D 和 E,您希望按该顺序实现。 您估计每个任务大约需要一周时间。
您的管理层不想知道一个月后您是否需要一周的时间来实施功能 E。
他们想知道您的项目是否能按时完成。 如果出现延误,他们希望尽早知道,以便采取行动使项目重回正轨。 因此,他们会询问您的估算,这不仅给了他们一个结束日期(无论可能有多么不确定),还提供了功能 A、B、C 和 D 的里程碑。现在,他们可以轻松地了解项目是否延迟检查您是否达到了里程碑

这就是他们想要它的原因。

话虽这么说,乔尔在他的一篇文章中说,详细的时间表会让你认为提前了解模块的设计,从而更好地思考软件的架构。

这就是为什么你也应该想要它。


编辑:好吧,也许我误解了你的问题;-)如果你没有明确的功能规范,你就无法估计,你只能猜测< /em>. 其价值相当低。 我的建议是在下次会议上从这些猜测转向更清晰的功能规范。 尝试让他们参与有关功能的更具体细节的对话。

不要指望他们会提出详细的功能规格。 如果他们没有这些,那么您的工作就是提供它们(并在此基础上给出一些时间估计)。

I think you misunderstand why you are asked for those estimates.

Lets say you have features A, B, C, D and E, which you want to implement in that order. You estimate each of them to take about one week.
Your management does not want to know if you will need one week to implement feature E one month from now.
They want to know if your project will be finished on time. If there are delays, they want to know as early as possible, so that they can take action to bring the project back on track. So they ask for your estimates, which not only gives them an end date (however uncertain it might be), but also the milestones for Feature A, B, C and D. Now they can see easily if the project is delayed or not by checking if you met the milestones

That's why they want it.

That being said, Joel said in one of his articles that a detailed schedule makes you think about the design of the modules in advance, leading to a better thought through architecture of the software.

That's why you should want it, too.


Edit: Well, maybe I misunderstood your question ;-) If you have no clear specification of the features, you can't estimate, you can only guesstimate. The value of which is rather low. My advise would be to steer the next meeting from those guesstimations to a clearer specification of the features. Try to engage them in a conversation about the more specific details of the functionality.

Don't expect them to come up with detailed feature specifications. If they don't have those, it is your job to provide them (and on that base, give some time estimates).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文