Project management 什么时候考虑功能;完成;?
作为软件开发者,我们创造了很多。。。好。。。代码。我们生成的大部分代码都可以用于新功能或现有功能的增强。在这种情况下,我们如何知道此功能何时完成 在功能的上下文中,“完成”意味着什么?例如,对A公司来说,这可能意味着许多不同的事情,比如Project management 什么时候考虑功能;完成;?,project-management,Project Management,作为软件开发者,我们创造了很多。。。好。。。代码。我们生成的大部分代码都可以用于新功能或现有功能的增强。在这种情况下,我们如何知道此功能何时完成 在功能的上下文中,“完成”意味着什么?例如,对A公司来说,这可能意味着许多不同的事情,比如 满足客户要求(这本身就很棘手) 没有已知的错误 文件是书面的 等等 等等 为了更好地帮助理解“完成”对不同的开发人员和团队意味着什么,请列出最多五项(但不超过10项)。此列表是您作为开发人员或您的团队可能要查看的内容,一旦所有项目都被选中,该功能将被视为已完成
这些都是很好的答案。我正试图找出如何确定最好的一个,因为我猜这个问题有点主观。我想我仍然在寻找更完整的图片。当用户满意时。当客户/用户在测试后在UAT(用户验收测试)上签字时。这是我们官方的测量标准 当然,这并不意味着什么,因为几周后总会有一个2.0版的功能被要求,但这比我们的更重要 编辑-如果您想详细了解它,下面是我们的做法:
当它发货时。当它没有任何东西可以带走时。当它解决了预想的问题时。这带来了足够的测试、文档、可用性等负担——不算太多,但足以满足需要。当有叉子时
- 代码符合书面规范
- 代码通过代码审查
- 代码具有并通过了单元和集成测试
- 代码通过QA
- 包含代码的包由所有涉众签署
-Adam当所有与功能相关的测试都通过时,您的功能就完成了。当需求发生变化时,添加更多的测试和代码,直到它们也通过。我认为这取决于人们对它的看法。开发人员自然希望将代码提升到第n个级别,而客户将对此有一个愿景 所以
- 客户,当他们停止要求更改时
- 开发人员,从不:)
- 一个特性通过了我们在版本开始时编写的所有单元测试和手动测试。在没有QA的情况下,这由QA或开发人员确定
- 对功能执行未完成的更改请求/错误修复所提供的价值低于完成这些请求所需的资源(时间)。这由产品所有者决定李>
简单回答:当它满足客户(或您为其实施功能的人员)的要求时
答案并非如此简单:当它满足人们/客户期望的所有内在要求时:隐藏的质量要求、可扩展性、文档、稳定性、易用性等。令人厌恶的、政治上不正确但实用的答案:在一项功能的发展过程中,(至少)有一个关键点- 在此之前释放该功能,您将失败,因为客户将不接受该功能。修复它的成本——时间、材料、声誉——将比“完成”它的成本更高
- 在这一点之后释放该功能,您将因为机会成本而失败。如果你把注意力集中在别的事情上,你会获益更多
功能在达到这个临界点时完成。每个项目都分为冲刺。冲刺可能有一个或多个功能。冲刺或功能在冲刺的这些阶段完成时完成
1.美国->用户故事->用户界面->开发->开发->质量保证->用户验收测试已经完成。关于“完成”的含义,似乎仍然存在差异。对许多人(大多数?)来说,如Mayank Gupta at,完成意味着产品或功能可能可以由产品所有者自行决定发货
对于其他人,如上面的MattC(以及我自己的组织),“完成”意味着产品或功能已经发货。当按照团队定义的完成定义完成时。“完成”的定义应该是一个由scrum团队同意的可见文档,每当被问到“完成了吗?”时,都会引用该文档 在scrumalliance.org网站上有一篇很好的文章对done的定义进行了详细的分析
完美——如果你制造回飞棒。注意:我不“喜欢”这个答案,但这是经营企业的方式。术语“利润”和“成本”包括无形资产和货币金额。我认为,从长远来看,努力实现“利润”最大化和“成本”最小化的公司才是赢家。你的回答肯定是最完整、最深思熟虑的。仔细想想,这个问题有点主观,因此很难“正确”回答。不过,你最符合我的想法。
- 如果你的意思是“我们再也不用碰它了”,那么唯一的答案是:当系统过时时;-)
如果您的意思是“当它准备好交付时”,那么假设所有商定的单元测试都通过,当然假设采用TDD/XP/Agile方法。对于我们来说,一个特性已经完成,这意味着我们可以在满足两个标准时交付它: