所以,我有一个计划,我是在2011年和整个2012年的工作,但最后一次发布是在2011年12月。我一直在积极地研究它,但是特性爬行诱惑了它丑陋的脑袋,现在它充满了无数未完成的特性。
最糟糕的是,当我实现一个特性时,一个新的特性悄然出现。我能做些什么来避免未来的特性爬行,这样我才能在一年多的时间内发布一个新版本?
该项目以iOS为基础,过去每更新一次iOS版本都会发布版本,但最后一次更新的版本是5.1 (2011)。我希望能够得到稳定的发布周期,但事实证明太难了。
发布于 2013-02-04 17:17:47
根据我的经验,如果您可以进行开发并发布不妨碍您想要完成的工作的韵律,那么这是最简单的。我就是这样做的:
这样,如果你想的话,你可以在每个功能之后推出一个版本.或者等待提供您希望发行版具有的值的汇总。
注意:
发布于 2013-02-04 17:09:11
答案是陈腐的,而且往往是不可能的:拒绝添加额外的功能。
在更深的层次上,真正的答案在于是什么使一个新特性落入了特性蠕变的垃圾桶?如果我们假设这种爬行特性是那些添加到项目中的特性,尽管它们的功能仅仅与项目的预期用途有密切关系,而且爬行特性是有用的,而不是多余的,那么解决方法就是将它们移到单独的,而是相关的工具上。使用Unix原理构建正交工具并将它们粘合在一起。
从项目管理的角度来看,答案是可比的。决定你愿意为下一个版本投入多少时间,并设定一个最后期限。估计功能,并削减足够的截止日期。如果有利害关系人参与,而不是你自己,让他们选择什么对他们最重要。
关于调度的一个很好的概述可以在上找到:
http://www.joelonsoftware.com/articles/fog0000000245.html
发布于 2013-02-04 18:02:48
发展中最重要的教训之一是知道何时该停止。
通常情况下,开发人员会添加一个特性。这反过来又激发了更多的想法。这样就增加了更多的功能。这就是,正如你所说的,一个项目变成蒸汽工具的方式之一。开发人员从未将该项目视为“已完成”,因此从未发布。
你想要养成的习惯是停止把发布/版本看作是一个“完成”的项目。相反,把发展看作是一个长期的过程。把发布看作是通往你有朝一日所希望的项目的里程碑。因此,发行版/版本只是对您在长期过程中所处位置的快照。一张快照经过了很好的完善和测试。
从实际的角度来看,你能做的就是坐下来,把你的下一个版本说明出来。不一定要非常彻底。写下你认为对下一个版本至关重要的3-5个新的主要功能。(功能的实际数量可能会因应用程序的类型而有所不同,不包括bug修复或gui的小变化)。如果你想出别的主意,没关系.只需在下面的版本中记录并实现它们。当你完成这3到5个项目时,你的发行版就准备好了。
当我启动一个新的应用程序时,我通常会考虑应用程序的最终“愿景”。对我来说,这就是我想要的应用程序的第3版。有了这个基准,我知道什么将使坚实的版本1-只是基础。
每个版本都不一定是项目的最终“愿景”。这只是实现这一愿景的一个里程碑。
https://softwareengineering.stackexchange.com/questions/185855
复制相似问题