0

我花了一些时间,但我终于设法写下所有需要进入我正在开发的软件产品 1.0 版的任务。

该列表有近 1000 项。

我们是一个 3 人的团队,不知怎的,我们在代码中使用 MindMeister、Google Docs、@todos 等实现了这一目标。现在,我将所有内容都按功能整齐地分组,但我如何确定所有这些的优先级并转向它成一个时间表?

任何建议都将不胜感激-我不是在寻找软件建议,但是-我正在寻求有关如何处理这一庞大任务的建议-从错误修复到应用程序模块-并找出我应该按什么顺序做他们。

4

3 回答 3

3

无情地优先考虑。1000 个行动项目很多,而且很有可能你会修改一些,扔掉其他的,然后添加新的。您的列表将无法保留您通过实际构建软件所学到的东西,如果您不先做最重要的事情,您最终会一团糟。

对于每个项目或功能,您必须回答一个问题:如果没有这个,产品是否完全可用或有用?如果是,它可以等待;其他所有内容都排在队列的首位。

之后,我喜欢按焦点对里程碑进行分组:我将做一个功能里程碑(如果有自然的小功能集群,我将做多个里程碑),一个 UI 里程碑,我将专注于 AJAX/富客户端交互性,一个性能里程碑我在那里进行分析并进行数据库和服务器调整等。或者以其他方式将它们分解-但绝对要分解它们。以较小的方式工作,每次迭代都有特定的重点,并在继续之前确保每次迭代都是可靠的。

于 2008-11-25T02:50:02.503 回答
1

我推荐的方法将基于敏捷方法最佳实践...

因此,您已经定义了敏捷术语中所谓的“积压”——这很棒——并且是重要的第一步。

通常使用的一个好的敏捷节奏是 2-3 周的迭代长度……最后你有一组可发布的特性。这将建立您开发过程的“心跳”。接下来,您将决定如何将功能组织和分组到故事和任务中。

您将希望扩展底层架构,并让它根据您从积压工作中选择的故事和任务的顺序自然出现。

尽早降低风险很重要——因此您需要及早选择那些可能构成最大风险的性能或实现未知的项目——并可能导致最大的返工影响。例如 - 建立消息传递基础结构 - 如果您选择需要传递持久消息以完成工作单元的故事,则可能包含早期的架构功能。

您能否将这组功能分为功能类别,这些功能类别可能会自然演变为将 1.0 版本描述为系统的系统?例如,管理功能、用户配置文件管理、报告、外部集成层、数据库访问对象等。

您可以编写的最简单的故事/用例是什么 - 将映射到您定义的大约 1,000 个功能/要求中的一些?选择一组故事(或故事中的单个任务 - 如果故事本身太大而无法在单个交互中实施)。这将需要一些额外的努力 - 但将您的需求重新组合成一组故事/任务很重要。

你会发现你将在后续的交互中进行重构——但你稳定的 2 周心跳迭代计划将继续提供真正的功能。

在不同的点上,您可能希望安排架构迭代只是为了专注于一些清理/重构 - 这也可以。

于 2008-11-25T02:42:41.550 回答
0

由于您指出所有这些项目都是必需的,因此我假设将项目从列表中删除的可能性不大(至少目前如此)。鉴于此,您手头有 2 个大任务 - 决定何时做项目,并确定做这些项目需要多长时间。

由于您已经按功能方便地对项目进行了分组,我将从优先考虑功能开始。希望这将显着减少您的工作集,并让您在合理的时间内真正完成它。

我会根据风险对每个功能进行优先级排序。有些事情很容易实现,有些事情却很难。由于它们都是必需的,因此当您的日程安排更灵活以应对任何未预料到的问题时,首先执行风险最高的功能。等到你的周期结束,墨菲定律会让你失望。

鉴于您的小团队,我只会发送功能列表并要求每个人标记它,如果他们认为这是一个有风险或难以实施的功能。将所有分数加起来,您就有了“风险评估”,得分最高的项目首先被分配。

或者,如果您可以轻松访问您的客户,请他们对与每个功能相关的“风险”进行评分(在这种情况下,风险是指没有该功能的最坏情况 - 如果没有某些东西会很烦人,它没有风险。如果没有该功能会导致他们不使用您的产品,这是高风险的)。

现在您有了一个优先级队列,是时候进行估算了。对于初始估计,我会简单地对每个特征进行一个数量级的估计。由于听起来好像您已经分解了功能,您应该能够对某件事是否需要花费数小时、数天或数周时间有一个不错的感觉。从它的声音来看,你仍处于开发的早期阶段,所以我认为尝试对再过一个月左右不会实施的事情进行准确估计没有多大意义。

当您从队列中取出项目时,让您的团队通过确定不应该超过几个小时的细化任务来提供更准确的估计。如果您想改进您的数量级估算,您可以根据您对系统的最新知识逐步提供剩余任务的快速估算。

这应该为您提供一个相当准确的短期时间表,以及一个更模糊的长期时​​间表,它将逐渐变得更加准确。

最后,如果你面临一个漫长的开发周期,我建议你确定一些目标或日期,当你达到这些目标时,坐下来重复整个过程。如果不重新审视这些事情,我永远不会超过 2 周。新项目将被添加,其他项目将被超越并过时,随着您更好地理解问题,其他项目将变得更高风险。所有这些都必须考虑在内。

于 2008-11-25T04:13:40.650 回答