首页 » 99链接平台 » 如何评估软件开发工作量(开发人员能量工作量预算评估)

如何评估软件开发工作量(开发人员能量工作量预算评估)

乖囧猫 2024-10-23 09:27:56 0

扫一扫用手机浏览

文章目录 [+]

估计——敏捷挂毯上的一根松线。
有大量材料描述了什么不起作用,但尽管我们作为一个行业尽了最大努力,但迄今为止似乎没有一个解决方案起作用。
传统上,对于软件评估的目的一直缺乏共识。
我们到底在测量什么,从而估计什么? 是完成任务所需的时间、我们可以发货的日期还是开发工作的成本? 答案通常取决于你问的对象。

商店之旅

考虑去杂货店购物,为聚会做准备。
您有一个项目清单和预算。
请注意我们没有考虑的内容:交易数量、购物车的大小或购物者的数量。
为什么? 我们的限制因素是我们的预算,我们的目标是购买清单上的所有东西。
添加更多购物者或使用更大的购物车不会改变该预算。

一旦确定了限制因素,您就可以采用预测性或适应性方法来计划您的购物之旅。

如何评估软件开发工作量(开发人员能量工作量预算评估) 99链接平台
(图片来自网络侵删)

预测方法是尝试猜测清单上的所有商品的售价。
假设您无法在线查找价格,您将不得不利用之前购物旅行的知识(也许是一些旧的杂货收据)以及对最近价格变化的了解来做出最佳猜测。

适应性方法是写下您想要购买的物品清单,并确定您的旅行预算。
该预算通常由外部因素决定,而不是由清单上的项目决定。
您可能还会优先考虑您的购物清单,因此,如果您发现预算不足以涵盖所有内容,您可以轻松决定跳过哪些内容。

通常,您会采取某种结合了这两种技术的混合方法。
了解之前的购物行程和市场价格可以帮助您编写一份切合实际的购物清单,然后您可以在到达商店后迭代此清单。

哪种方法对您的购物之旅更有意义? 这取决于实际情况。
无论如何,如果您不知道自己的预算,这些技术都不起作用!

我们衡量什么?

在软件估算中,我们也处理有限的资源,例如财务预算和时间限制。
然而,从这些开始我们的思考是危险的,因为两者都与我们可以完成的软件开发目标列表中的多少项目直接相关。

软件开发的真正限制因素是开发人员的精力。
人类每天和每周的认知能量是有限的,一旦耗尽,他们的工作质量就会显着下降。
(这就是“绝不在周五发货”这句格言存在的主要原因;在工作周结束时更容易出现错误。
)人们无法通过简单地要求加班或支付额外费用来克服这一限制。

这并不是说时间和金钱不能用来增加开发人员的精力。
您可以消除不必要的会议以释放开发人员的时间,或者增加额外的人员数量(同时考虑布鲁克斯定律)。
这些只是扩大“能源预算”的方法,但开发人员的能源仍然是限制因素。
一旦开发人员“没油了”,你就无法从他们身上得到更多的工作,直到他们以任何需要的方式充电。

一旦我们确定了限制因素“开发人员能量”,我们就可以开始软件评估的任务。
与传统的故事指向不同,量化任务方法实际上提供了一种可重复测量、跟踪和估计开发人员能源预算的技术。

我们如何衡量

传统敏捷故事点的问题在于它们只能间接衡量所需的开发人员能量。
这有点像去商店没有明确的预算,但隐约感觉冰淇淋的价格会是凉拌卷心菜的两倍。
更糟糕的是,由于故事点所代表的工作量因团队和项目而异,因此在规划全新项目的工作量时,您没有参考框架。
就好像每家杂货店都以自己的原始货币列出价格。

相比之下,量化任务中的能量点是开发人员工作的客观、可重复单位。
能量点不是将任意评估转化为(例如)斐波那契数,而是根据三个客观的 1-5 分数计算:

距离:如果你了解任务的一切,就需要付出原始努力,

摩擦:通知任务的可用资源或缺乏资源,以及

相对性:任务中存在多少不确定性。

任何两个开发人员可能对任务的“大”或“难”程度有不同的看法,具体取决于他们的经验水平和其他因素,但每个人都很容易就这三个指标的分数达成一致。

能量点通过公式(距离 + 摩擦力) 相对论计算。
因此,这个估计是站得住脚的,因为这三个因素都是客观的,并且具有团队共识的权威。
不仅如此,因为它基于三个预定义的固定指标,所以能量点估算可以直接与使用量化任务的任何其他项目或团队的任何其他任务进行比较。

因此,能量点代表完成任务需要多少开发者能量。

预算开发商能源

鉴于每项任务的能量点估算,我们现在只缺少一条信息:我们有多少开发者能量? 我们的预算是多少?

每个开发人员都是一个独特的个体。
他们将有不同的优点、缺点和经验。
因此,对于刚接触量化任务的开发人员来说,很难猜测他们在一次冲刺中可以完成多少能量点。
然而,仅仅经过一两次冲刺,每个开发人员就会开始了解他们在这种情况下可以完成多少工作。

例如,作为 Python 的首席软件工程师,我发现每次冲刺我平均可以完成 25 个能量点。
无论项目是什么,只要它是基于 Python 的堆栈,这个估计都是正确的。
如果我不精通语言,我可以在冲刺中完成大约 10-15 个能量点。
因此,我能够在冲刺计划期间为自己选择工作,并且几乎总是在冲刺结束时完成该工作。
(估计就是——估计。

此外,开发人员可以使用距离、摩擦力和相对论来选择适合其经验水平的工作。
刚接触某种语言的人可能应该避免承担高摩擦的任务,而该语言更资深的人应该尝试将一些更容易的工作留给团队中经验不足的成员。
尽管具有相同能量点估计的两项任务需要大致相同的能量,但不同的开发人员可以处理不同的工作方式和节奏。

当开发人员开始跟踪他们的个人速度(每个冲刺完成的平均能量点)时,为冲刺和发布设定现实的目标将变得更容易。

衡量开发人员的生产力

能量点不仅可以让您估计工作量,还可以作为完成工作量的可靠指标。
只要团队正确应用量化任务方法,并且随着了解更多信息而更新分数,个人和团队速度就可以很好地代表开发人员的生产力。

然而,有一些事情需要注意,包括:

每个开发人员都有一个独特的、固定的能源预算。
这可能会受到外部因素的进一步损害。
使用速度作为触发进一步询问的指标,而不是要实现的目标。

比较不同开发人员的个人速度时要小心。
没有两个人是完全相同的,即使他们具有相同的资历和经验水平。

标签:

相关文章