您如何知道何时停止添加功能?


16

前一段时间,我编写了一个非常小的python脚本,该脚本定期检查xml feed中是否有新条目,并在出现时提醒用户注意新条目。我为自己编写了此代码,因此它本质上是一个基于控制台的程序,任何熟悉控制台界面的人都可以使用。

过了一会儿,我认为它可能对其他人有用,并开始整理它,清理输入内容,消除错误。我想到,因为我写了脚本,所以我知道如何有效,准确地使用它,而其他人却没有,所以我开始添加GUI。它从一个简单的菜单开始,然后扩展到具有界面和选项菜单的更完整的GUI。然后,我添加了存储的用户首选项,还添加了以前搜索的xml feed的存储,以加快重复搜索的速度。

我添加了日志记录以帮助在出现问题时调试应用程序,将应用程序升级到适用于我选择的平台的最新可用稳定python代码库,并改进了对话框功能。

我已经对错误进行了错误修正和注释,但是我仍然认为我可以做一些事情来改进应用程序,然后再将其提供给Alpha测试人员。与我最初的20-30行脚本相去甚远。从概念验证到可接受的使用程序,我只花了一个或两个小时的时间就花了10到20倍。(我仍然是菜鸟,东西花了我很长时间,但仍然....)

您怎么知道什么时候停止添加/调整/修复东西,让您的宝宝在户外露面?

Answers:


8

当您达到截止日期时。

如果没有截止日期,这就是您的问题...

这是我的工作方式:

  1. 我在产品积压中添加了新功能/错误。
  2. 我对整个产品待办事项的业务价值进行优先级排序并进行估算(对于个人项目,最后一个是可选的)。
  3. 我给自己分配工作时间。发布日期是该时间的结束。
  4. 我从列表中的第一个开始。我一次从事某项功能。要完成,功能必须真正完整,包括文档(在功能末尾,我可能会交付产品)。
  5. 我继续下一个,直到分配的时间用完。
  6. 如果在构建要素时浪费了时间,那么我会暂时丢弃它。
  7. 当分配的时间用完后,我将使用最新的版本并进行发布。
  8. 我从第1点开始重复该过程。

嗯,我非常喜欢这里的工作流程。这是一个业余项目,我不确定是否会尝试将其货币化,它更可能是免费提供或开源的。
fearoffours 2010年

4
在上面的建议工作流程中,价值并不意味着金钱。您决定什么是价值。

好的,这太棒了。自从今天早些时候看到该帖子以来,我一直在应用此功能。我的截止日期是星期三下午3点,一切进展顺利!我对事情的进展以及我正在从事的工作更有信心。我已经优先考虑(在脚本顶部的注释中)在此版本之前需要完成的工作,以及可以保留到以后的工作。而且我正在写下我目前正在使用的功能,以确保我一次专注于一项任务。谢谢!
fearoffours 2010年

3. I allocate work time to myself. The release date is the end of that time.@Pierre 303,您说的time是按小时数表示,即每晚生成?还是像完整的冲刺一样的时间?
Kenan D

@LordCover:例如,我分配给我3个星期(每天8天,每周8天,每天5小时)进行产品工作。我会在3周后发货。

3

进行SRS,然后根据要求进行编码。当您达到SRS中提到的所有目标时,就该停止并测试您的产品了。


嗯好点。目前我还没有写下任何关于其目的的信息。
fearoffours 2010年

SRS很好,但对于单人团队进行个人项目来说有点过大。文档很好,但是对于这种类型的项目,我认为目前还不需要所有SRS。
克里斯,2010年

@Chris-SRS总是一件好事。今天是免费发布的个人项目,仍然是由数十个人编写的免费软件。一个很好的例子说明了文档为什么如此重要的原因,在Facebook的早期阶段编写文档并更新该文档要容易得多。如果您无法写下您的设计,请解释该设计,并说明该功能的工作原理,然后如何编码?
Ramhound

2

在短期内,当您拥有可靠运行且不会崩溃的东西时。即使它没有做的一切可能如果你无限期工作做就可以了。俗话说航运是一个特点。可靠性和受限制的功能集为您提供了机会,让现实世界中的实际人员对核心功能进行测试,他们会发现您从未想到过的东西会以您永远不会想到的方式破坏代码。此时,您所拥有的功能越少,解决这些早期问题就越容易。随着核心功能更可靠地工作,您可以在知道最重要的中央代码仍然可以正常工作的情况下开始实施其他“不错的东西”。

从长远来看:当您完成并记录了插件系统后,您的用户(当然您也可以)将在需要时快速,轻松地实现新功能。那应该是所有插件都需要添加的最后一个功能。


1

当您确定软件的稳定性时,可以发布一个发行版,尽管其中可能有待定的功能。稳定性比功能更重要。获取反馈,将其与现有功能结合起来,然后决定下一步以及何时交付什么!


1

您可以永远永远为一个项目提供护理。

一个很好的规则是,您永远不要添加未经批准的用例中的内容。这样可以确保您不会得到很多本来不错的东西,但是没人使用。批准可确保您之外的其他人同意在您的项目中需要这样做。


1

这取决于您为什么要添加功能。项目负责人在要求吗?用户?质量检查人员?程序员?

  • 添加您必须具备的功能。
  • 筛选重要的功能。
  • 忽略很好的功能。

关注程序的目的,并使其目的集中。扩展其用途的功能要求应在成为瑞士军刀之前受到全面质疑。


我喜欢保持产品重点的想法。我正在努力做到这一点,并且仍然想办法占据自己的位置!
fearoffours 2010年

2
@fearoffours,您总是可以找到方法改善自己的工作。关键是要从用户那里找出如何使其对他们更好的工作。解决真正的障碍。平滑真实的粗糙斑点。
Huperniketes

该评论中的好建议,谢谢(+1)!
fearoffours

0

我不再停止添加功能。我只是尝试尽快将应用程序移出那里,并在需要时编写txt文件。然后我可以决定何时停止以及何时进行其他操作

这也有助于我喜欢尽可能地完成某件事(无需诉诸黑客)。


0

我建议您对它进行时间限制。给自己一个发言权的一周。创建一份工作清单以在该周内完成,并确保如果您有一项无法完成的功能,则可以将其退出。

在一周结束时将其释放。提前发布,经常发布。


但是当某些功能相互依赖时该怎么办?
Kenan D

0

当您获得可靠且有用的东西时,请释放。您不必停止添加功能,但是如果有人在使用您那里提供的功能,则可以更好地了解所需功能。目前,您正在猜测。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.