在软件公司做销售工作,几乎天天都在接触客户。几乎每个客户在问完“这个软件要多少钱”之后都会马上接着问“做这个软件需要多久”?
其实在报价的同时,研发团队肯定已经完成了工作量评估(不然无法准确报价)。但工作量并不等同于工期,因为大多数软件项目不会只由一个人来完成。软件团队里存在多人并发工作的情况,工期天数就会少于工作量人天数。
那是不是可以简单用“工作量人天数/团队人数”就可以得出“工期天数”呢?其实也不行,因为不同的软件开发阶段会由不同数量、不同岗位、不同专业的工程技术人员参与,每个阶段的工作量不会线性平均,因此无法用数学平均的方式简单计算。越大、越复杂的软件项目偏差越大。
正确评估项目工期的方法是结合工作量评估编制项目进度计划,其步骤主要包括:
(1)项目分解与活动界定。主要使用WBS技术将一个总体项目分解为若干工作或活动,直到足够具体和明确为止。在此基础上进行工作描述(需求细化和定义)和工作责任分配(组织资源,明确各部门或个人在项目中的责任)。
(2)工作排序。梳理一个项目中的若干工作和活动在时间上的先后顺序与依赖逻辑关系。依赖逻辑关系包括不变的逻辑关系和可变的逻辑关系。例如“必须先完成软件开发才能进行软件功能测试”是不变的逻辑关系;“必须从其他项目借调或重新招聘入职测试工程师才能进行软件功能测试”是可变的逻辑关系。
(3)工作量计算和工作持续时间估计。除了工作内容,还要考虑开展工作的前提条件、所需的资源,持续开展工作过程中所需要的必要的停歇时间(例如即使加班也只能每天最多工作16小时而不是24小时,周末与法定节假日的影响,等等)。工作持续时间的估计要求客观正确,不应受到工作的重要性及项目完成期限的限制,要考虑各种资源供应、技术、工艺、现场条件、工作量、工作效率、劳动定额等因素,将工作置于独立的正常状态下进行估计。
(4)绘制网络图并计算关键路径。用前导图或箭线图表达项目工作中各项活动的依赖逻辑关系和持续时间,在此基础上找出项目关键路径(CP)。CPM方法有两个规则,1是某项活动的最早开始时间必须相同或晚于直接指向这项活动的最早结束时间中的最晚时间。2是某项活动的最迟结束时间必须相同或早于该活动指向的所有活动的最迟开始时间中的最早时间。
根据上述规则,通过正向计算推算出网络图中每项工作的最早完工时间,通过反向计算推算出网络图中每项工作的最晚完工时间。最早开始时间和最晚开始时间相等的活动成为关键活动。由关键活动串联起来的路径成为关键路径。关键路径是项目时间最长的活动顺序,决定着可能的项目最短工期。
(5)设置项目缓冲。在关键路径的基础上,为应对资源限制和项目的不确定性,考虑资源分配、资源优化、资源平衡和活动历时不确定性对关键路径的影响,引入缓冲和缓冲管理的概念,称为关键链法。通常在关键路径的末端设置“项目缓冲”,在非关键链与关键链的结合部设置“接驳缓冲”,从而在项目管理过程中重点管理剩余的缓冲持续时间与剩余的活动链持续时间之间的匹配关系。
通常,加上项目缓冲之后的关键路径工期就是“做这个软件需要多久”问题的答案了。但在报给甲方爸爸之前,有经验的、规范管理的软件公司还应当进行计划评审(PERT)。
PERT又称三点估算法,即评估每个活动完成时间的三种不同情况:乐观时间(a)、最可能时间(m)、悲观时间(b),假设三个估计服从贝塔分布,计算出每个活动的期望t=(a+4m+b)/6,以及持续时间方差德尔塔2=(b-a)2/36。根据正态分布规律,厉害的软件项目经理,甚至可以通过查询正态分布表估算出客户要求X天内完成项目能成功的百分比概率。例如,某项目工期的数学期望为t=51天,标准差为4.3天,那么项目在46.7-55.3天之间完成的概率为68.3%,项目在42.4-59.6天之间完成的概率为95.5%,项目在38.1-63.9天之间完成的概率为99.7%,等等。
专业的人干专业的事,如果你想定制开发一个软件系统但不知道需要多少费用、多长时间,马上联系:微/电 13602777898 梁先生,或扫描下方二维码: