如何确定未来功能的优先级(企业Web开发)

时间:2008-11-14 06:16:28

标签: project-management enterprise

假设您是拥有2000个用户和7个开发人员的内部企业Web应用程序的产品经理。您有350个未来功能的列表,每个功能从5到150个开发人员日工作。

如何选择要使用的功能,以及如何运行发布过程?

这就是我的想法:(如果无聊则跳过)

  • 发布流程。一次处理多个功能,在准备就绪时单独发布。另一个选项(我们到目前为止所做的)是选择一组特定的功能,将它们指定为“发布”,然后立即发布(通过大量电子邮件发布)。

    更短发布流程的优势在于我们可以在完成开发后立即发布功能。更大的流程的优势在于它更容易组织。

  • 功能优先级。将所有未来功能放在电子表格中,其中包含功能,说明,评论,估算,优惠,(您的)估算,(您)的优势。复印给2位高级工程师,另一位高级项目经理和你自己。

    工程师估计所有功能(精确度如何?互相咨询?)。为了确定收益,每个人在未来的功能中分配积分(总数= 10 * [未来功能的数量])(没有互相咨询?),比较得分和平均值(?)。

    这里的另一个潜在策略是将每个特征排在绝对(比方说)1-100的范围内。绝对排名是很好的,因为它使我们的功能列表更改变得更容易(我们不希望每次有人提出新功能时都必须重新分配点)。

你的策略是什么?是否有任何书籍/网站在这个详细程度上解决问题?

5 个答案:

答案 0 :(得分:3)

有一本很棒的书有助于涵盖Mike Cohn所谓的敏捷估算和计划这个主题。它有一些很好的方法来估计和计划发布。包括一个名为计划扑克的计划游戏,其中工程团队与卡片结合在一起以便用户故事进行评估。每个工程师面朝下播放1,2,3,5,8,13张牌。高低卡解释,你再次这样做。经过1或2次重复后,通常会在同一估计值上收敛。

Luke Hohmann还有超越软件架构:创建和维持获奖解决方案,它可能有助于解决与产品管理相关的一些问题以及用于确定优先级的原因。我还没读过这本书,但是我去了Luke Hohmann的演讲,在那里他讲述了他的书的主题,我迫不及待地想读它。

另外,我建议您阅读有关各种敏捷开发流程的书籍,例如Scrum,Crystal Clear和XP。 Ken Schwaber的敏捷项目管理与Scrum 和Alistair Cockburn的 Crystal Clear:人力资源的小团队方法。还有极限编程解释:由Kent Beck和Cynthia Andres接受变化(第2版)

至于功能优先级,通常由利益相关者完成。您需要处理满足利益相关者需求的功能,正如Luke Hohmann所指出的那样,包括系统架构。

然而,最重要的事情之一是确保您与团队就软件开发过程达成一致。如果你强迫一个进程并且团队不相信,那么它将无法工作。

答案 1 :(得分:0)

当然,您没有350个独立功能,有些功能必须依赖于其他功能。 把它们全部放到一些任务管理软件中,它允许你定义哪些任务取决于哪些任务,你很快就会发现你有一个更容易的决策过程......

答案 2 :(得分:0)

关于发布过程,您可以在功能准备就绪时介绍这些功能,并通过公司博客通知用户,只要新功能完成就会更新。然后,这样的博客条目应简要概述该功能,在哪里找到它,如何使用它等 这不仅可以让您的用户感到好奇并且回归,还为潜在客户提供了一种检查产品进度的绝佳方式。

至于未来实施的优先顺序:如何让客户参与其中?查看uservoice(用于跟踪此站点的请求/错误)。它提供了一种很好的方式,让用户可以对最需要的东西进行投票,并显示正在进行的工作和计划​​内容。

答案 3 :(得分:0)

“将每个特征排在绝对(比方说)1-100比例”

按顺序构建它们。

当你获得(a)重要价值或(b)临界质量小的东西时释放它们。

始终按优先顺序工作。首先构建最重要的东西。尽可能快地提供尽可能多的价值。

答案 4 :(得分:0)

这里的一些人已经说过了 - 让最终用户参与进入和等待的决策过程。毕竟,它不是关于什么对你有用,但对你的最终用户有用。

说,我不会让它开放给'所有用户决定';应该有与您一起工作的用户组的代表(即高级用户角色)。

即便如此,你还没说“你想要什么功能?”对于用户,您问他们希望看到下一个到达的功能。之所以你把它放到那个方面,而不是让他们挑选出一个单独的功能的大量电子表格,有两个原因:1)他们不知道依赖性,2)你想要收集一组功能的逻辑发布

因此,用户代表可能会说“我们需要让照片库继续工作”。他们可能不知道照片画廊几乎与文件上传模块相同(它只接受不同的文件类型)。

所以,在下一个发行版中,你将照片库和文件上传打包在一起 - 为什么不考虑你,考虑到文件上传是因为进入照片库模块的工作完成了75%?

我不相信你必须首先处理最难的功能,用户需要的功能以及你聚集在一起制作'逻辑包'的其他功能。

在某种程度上,您也想要清除功能日志。例如,您可以拥有以下功能和估计时间:

  1. 报名表 - 3小时
  2. 照片库 - 8小时(< - 客户说他们下次要这个)
  3. 文件上传 - 2小时
  4. 投票/投票模块 - 7小时
  5. 股票代码 - 5小时
  6. 出于这些人为的特征,我不会。 2(因为客户要求它),然后我会采取不。 1和3.没有。 3因为它实际上是在完成图库代码时完成的,而没有。 1纯粹因为它是其余功能中最小的估计。没有任何东西可以让你或你的编码人员对你的项目有进步的感觉,比如严重击败功能列表(虽然它可能会重新填充)。

    就让人们了解新版本及其中的内容,我会通过电子邮件(而不是博客或程序本身)来实现。我会尽可能简短地说明一点,这样的事情:

    ===

    Blue Widgets 1.1版刚刚推出,现在供您使用。

    添加了以下内容:

    • 照相馆

    • 文件上传

    • 报名表

    系统中的用户手册包含有关这些功能如何工作的更多信息。

    ===

    砰 - 完成,让人们尽可能轻松。

    • LM