2

您主要考虑实施它的原因,还是不实施它的原因?各有什么优势?

4

9 回答 9

3

这篇精美的 Joel Spolsky 帖子基本上说:

  1. 列出可能的特征。
  2. 投票过滤掉最差的功能。
  3. 为每个功能分配成本。
  4. 为每个参与者分配有限的功能预算。
  5. 在分配预算时找出哪些功能很受欢迎。
于 2008-11-10T09:39:59.787 回答
2

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

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

基于这两个反射的首要元素,我可以开始知道我是否必须实施它。

我想在执行或不执行它的原因之间没有明确的界限。

于 2008-10-25T02:32:25.223 回答
2

我通常会进行成本效益分析。实施这将花费多少(金钱或时间)以及收益价值多少(再次金钱或时间)。

如果收益远远超过成本,那么它就完成了。

衡量标准通常是有偿工作的钱,个人物品的时间,尽管有时会有交叉。不管桌上有多少钱,我都不会牺牲太多与孩子们在一起的美好时光。

于 2008-10-25T02:32:46.843 回答
1

很多时候,我们被要求加入某个功能。我的部分工作是能够在认为他们一直知道要包含什么内容的用户的上下文中解释这一点。当然,他们知道自己想要什么,但你可以打赌其他人想要一些稍微不同的东西。在我的世界里,重要的是我们可以提前一步思考并交付更多。我们的报酬是思考业务如何运作并为他们提供服务。

因此,我想出了添加一些更强大的东西的策略,然后也提供用户想要的东西。因此,当其他人要求某物时,它已经在那里了。这可以节省大量昂贵的交付周期。

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

于 2008-10-25T06:34:19.183 回答
1

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

根据提出新功能的产品类型,该分析的前景可能会发生很大变化。我的很多工作都是在大型复杂应用程序上,这些应用程序随着时间的推移而发展,是我客户业务的核心。

因此,对新特性的大量分析都集中在为什么不实现一个特性上;我将主要关注风险:

  • 引入新功能的区域的架构如何?
  • 已经实施的单元测试水平如何?
  • 新功能是否在应用程序的核心实现?
  • 如果我们遗漏了某些东西并且错误出现在野外会发生什么,它是否会导致系统崩溃(无论是从字面上还是通过有效地使系统不适合其目的)

归根结底,是否开发新功能由客户决定。作为专业的软件开发人员,我们有责任告知他们可能的成本,这些成本可能对他们来说是不可见的,超出了赤裸的金钱和时间。

令人高兴的另一面是,我们也有责任提出他们可能认为甚至不可能的新功能!

于 2008-10-25T02:46:00.703 回答
0

应该是客户/客户/利益相关者/消费者应该推动需要的功能。客户可以是现实世界的用户(您正在交付的单个公司或个人),也可以不是(您正在为其制造产品的市场)。但无论哪种方式,它都必须来自最终用户。

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

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

于 2008-10-25T06:37:13.607 回答
0

幻想决策问题:是否feature提高product了做它特别适合做的事情的能力?如果是,执行feature,否则不执行。

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

于 2008-10-25T03:24:41.890 回答
0

客户可以决定功能。如果我想到什么,我就由客户来管理它。我们一起找出如何让客户最重要的功能尽快实施。

于 2008-10-25T02:34:56.310 回答
0

如果某项功能可以帮助用户更快地完成某项任务或通过更多知识完成某项任务,则实施该功能。如果它会帮助用户,请实施它,如果它使您的应用程序看起来更好但并不能真正帮助用户使用应用程序(只是看起来不错),那么不要实施它。

于 2009-12-06T23:11:29.233 回答