估算软件项目:分解任务

在一个管理小组中,有人询问有关教学计划的资源。我分享了这个估算系列的链接,但很快他们就回来告诉我缺少了一些东西。本系列的前几部分假定你已经有了一份明确的任务清单,但这位经理所教的人还没有做到这一点。他们需要更早的帮助:将项目 "分解 "为一系列明确的任务。

我以前没有写过关于如何分解任务清单的文章,因为对我来说,这在很大程度上是一种直觉。在写下面的内容之前,我想我会这样描述我的过程:"思考项目,然后写下任务清单"。但这是一个令人极不满意的答案,"只要画出猫头鹰的其余部分就可以了"。

因此,在这里我将填补这一空白,并深入探讨当我把一个项目分解为构成任务时会发生什么。首先,我会举一个例子,向你展示如何做,然后再回过头来解释我所采取的步骤。但如果你想跳过风景路线,可以跳到最后,我在这里总结了整个过程。

分解任务--举例说明

我正在创建一个个人连胜追踪器,追踪我进行某种户外活动的天数。我想做一个类似于 Streaks 应用程序的东西,只不过户外活动(跑步、骑自行车、滑雪等)有不同的选项,我还想把 Duolingo 的 "连胜冻结 "功能结合进来。

迭代 1

我经常从草图开始。有一个我要制作的可视化模型是一个很好的起点。最终的结果很少是这样的,但这是一个很好的方法,能以简单易懂的格式表达出我想要的所有功能。

这样 "细分 "够吗?如果只是我一个人,如果只是一个个人项目--可能是的!对于这样的个人项目,我现在就坐下来开始写代码。但这基本上只是一个一步到位的任务:"构建这张图片"。如果我想把其中一些工作委托出去,或者我需要估算一下需要多长时间,我就需要更细化的任务。所以我要继续。

迭代 2

下一步是将我的单步任务 "构建这个 "扩展为各个组成部分。我将思考并计划完成这项任务所需的步骤。我会尽量考虑依赖关系--哪些任务需要在其他任务之前完成--但我现在还不担心步骤的规模或范围,只想列出一个粗略的清单。这是我的第一次尝试:

  1. 数据建模
  2. 日历视图,显示当前一周的天数
  3. 交互式日历:点击图标可记录活动,并将当天标记为 "已完成",以便进行连续跟踪。
  4. 计算并显示当前连胜的长度
  5. 实现连胜冻结

好吧,这样是否足够 "细分"?就某些目的而言,也许是的:我或许可以对每个步骤的时间做出足够准确的估算,如果我与一个足够团结和自主的团队一起工作,那么这里的细节或许足以让我委派任务。但仍有很多不确定因素。我不清楚冻结资金将如何累积和跟踪,因此第 5 步有点模糊。我也不知道过去的历史、添加/删除活动类型和其他潜在的兔子洞。这些都会使估算变得不确定,也意味着如果我委派一项任务,可能不会得到我预想的结果。因此,我将继续进一步细分,并增加更多细节。

迭代 3

我将继续同样的过程,从 "大 "的方面入手,将其分解成多个部分,并在此过程中添加更多细节: