对项目的评估通常需要在项目需求不明确时开始。我不知道你是否有这样的经验,客户给你一个简单的需求,或者给你一个非常粗略的文档,要求你给一个价格来看看这个东西可能需要多少钱和时间完成。当我以前做一个网站时,我遇到了很多这样的问题。在软件开发过程中,我总是面临一个估计(Estimation)问题。这个项目需要多长时间?
你完成这个模块需要多长时间?制作它要花多少钱?软件开发的成本主要通过每月计算。当然,也有人/小时、人/天。在数学方面,计算时间的前提是知道速度和距离。软件开发的速度是多少?如何估计开发需要完成的距离?假设天可以作为我们需要找到的速度(Velocity)单位是一个人每天8小时能做的工作量,或者他的发展能力。对于大量需要发展的需求,需要考虑更多的因素来计算整个团队的总工作量和单位发展能力。
首先考虑需求的总量。让我们举一个例子,列出你认识的满足以下条件的人:人,男人,20岁的男人,20岁的头发有些染黄的男人,20岁的头发有些染黄吸烟的男人。从这组单词中,我们可以看到从左到右的描述越来越具体,你可以列出的越来越少。另一方面,单词的延伸更大,但你可以想到越来越多。
同样,对于需求的描述,描述越详细,你就越能准确地估计它的工作量。登录系统,这样的需求很难说需要多长时间。用户名密码登录,支持密码功能的登录系统稍好一些。如果你能画出界面原型图,那就更清楚了。对于这样的需求,我们可以使用理想的天堂来评估它。我们说,某一需求的成本是2 Ideal Days。也就是说,一个人可以在理想的2天内完成这项工作。说到开发人员的理想天堂,你不能离开团队独立看。团队包括项目经理、需求分析师、测试人员和其他角色。他们的工作并不直接反映代码的数量。如果只考虑一个项目开发人员的代码开发成本,毫无疑问,它将会损失。此外,团队成员的水平参差不齐,不同的任务和程序员花费不同的时间来完成。因此,单独添加每个成员的天堂是毫无意义的。我们必须考虑一个团队的整体天堂。
那么如何衡量一个团队的总天堂呢?如果一个团队已经磨合了很长时间,它可以从以前的数据中获得它们的开发量。如果一个新成立的团队没有磨合,它需要在开发后开始一段时间的实际开发3-4回顾过去几周的团队速度。一般来说,经过一段时间的磨合,一个团队的发展速度会慢慢提高。例如,需求估计为5个理想的日子,而团队实际发展了10天。那么团队的速度是5个理想的日子,团队的负载系数,即通常被其他事情干扰的比率是2。有了这个团队的速度,项目经理可以放心和大胆地说,我们的团队有10人,开发能力是n理想人每周,负载系数为2,因为有20n我们在大约40周内完成了总需求。因此,我们的报价是xx元。如果你有幸长期跟踪一个团队的发展速度,你会发现很多有趣的现象。一开始,团队速度很低,但增长缓慢。到达一定时期后,它将稳定在一个固定值附近。有时新成员加入团队,团队的发展速度会出人意料地降低一段时间,然后慢慢回升。成本、时间、范围和质量是项目管理中常见的四个要素,难以同时满足。如果你关心时间,不想付钱,不得不完成这么多功能,牺牲的才是真正的质量。常说一分钱一件货,在软件开发中体现得淋漓尽致。因此,为了确保任务按时、按质量完成,合格的项目经理必须能够估计合理的开发价格。这需要长期经验和实践的积累。但有时也有一些缺点
合理的问题。有人问:我是老板。如果我的开发团队合作编造估计,估计我的需求,估计他们的速度很低,工作量不饱和,我该怎么办?呃。。我只能说,除了开发方法之外,这必须使用奖金激励、绩效评估、引入外部咨询团队(如ThoughtWorks)等等。