在决定某项功能时,您会怎么做?

时间:2008-10-25 02:24:08

标签: process software-design

您是否主要考虑实施它的原因,或者不实施它的原因?每个有什么好处?

9 个答案:

答案 0 :(得分:3)

fine Joel Spolsky post基本上说:

  1. 列出可能的功能。
  2. 投票过滤掉最糟糕的功能。
  3. 为每个功能分配费用。
  4. 为每位参与者分配有限的功能预算。
  5. 找出分配预算时受欢迎的功能。

答案 1 :(得分:2)

我首先考虑利益相关者(客户) 该功能会帮助吗?这确实是一个带来价值的功能性特征吗?

然后我考虑技术含义和由此产生的复杂性,以评估实施成本与不具备该功能之间的权衡。

基于这两个反思的第一个元素,我可以开始知道我是否必须实现它。

我想没有明确的原因可以实现或不实现它。

答案 2 :(得分:2)

我通常会进行成本效益分析。实施(金钱或时间)需要多少费用以及价值多少(再次是金钱或时间)。

如果收益超过成本,则可以完成。

这项措施通常是付费工作的钱,个人资料的时间,尽管有时会有交叉。无论桌子上有多少钱,我都不会为孩子们牺牲太多的质量时间。

答案 3 :(得分:1)

我认为考虑利弊是很重要的,最终结果是成本效益分析。

该分析的前景可能会发生很大变化,具体取决于新功能的产品种类。我的很多工作都是针对随着时间的推移而发展的大型复杂应用程序,并且是我客户业务的核心。

因此,对新功能的大量分析着重于为什么不实现功能;我将主要关注风险:

  • 构建新功能的区域的架构有多好?
  • 已实施的单元测试级别是什么?
  • 新功能是否正确应用于应用程序的核心?
  • 如果我们错过了某些内容并且有一些错误进入了野外会发生什么,它是否会导致系统崩溃(无论是字面上还是通过有效地使系统不适合其目的)

在一天结束时,客户决定是否开发新功能。作为专业软件开发人员,我们有责任告知他们可能的成本,除了美元和时间之外,他们可能无法看到这些成本。

幸福的另一面是,我们也有责任提出他们可能没有想过的新功能!

答案 4 :(得分:1)

很多时候我们被要求放入某个功能。我的部分工作是能够在认为他们知道要包含所有内容的用户的上下文中解释这一点。当然,他们知道他们想要什么,但你可以打赌别人想要的东西略有不同。在我的世界中,我们可以认为领先一步,提供更多。我们付出的代价是思考业务如何运作并为其提供支持。

因此,我提出了添加更强大功能的策略,然后也提供了用户想要的功能。因此,当别人要求某事时,它已经存在。这可以节省大量昂贵的交货周期。

不幸的是,这并不总是可行或实用,但如果可能的话,我喜欢这样做。我喜欢以编码应该主动而不是被动为座右铭。

答案 5 :(得分:0)

客户可以决定功能。如果我想到某些东西,我会由客户运行它。我们一起弄清楚如何最快地实现客户最重要的功能。

答案 6 :(得分:0)

幻想决策问题:feature是否会提高product做出特别适合做的事情的能力?如果是,请实施feature,否则不要。

现实决策问题:我们是否有足够的资金来证明实施feature的合理性?没有?垃圾。

答案 7 :(得分:0)

应该是客户/客户/利益相关者/消费者应该推动需要的功能。客户可以是真实世界的用户(您正在交付的单个公司或个人)或不是(您正在为其制作产品的市场)。但不管怎样,它必须来自最终用户。

我们将所有新功能称为“用户故事”。

您当然需要做的是了解为什么用户想要该功能 - 用户尝试解决的问题是什么,或者想要获得哪些优势。在得到“如何”之前,您需要从用户那里获得“为什么”部分。

答案 8 :(得分:0)

实施一项功能,如果它可以帮助用户更快地完成某项功能,或者通过更多知识完成某项功能。如果它会帮助用户实现它,如果它使你的应用程序看起来更好但是并没有真正帮助用户围绕应用程序(只是看起来不错),那么就不要实现它。