网友A问:大神,咨询一下,怎么计算项目成本?公司在外面谈一个软件开发项目,要评估做起来亏不亏,赚的话,能赚多少?需要细一点的方法,可落地的方法。那种按人日的计算,太粗略,不准确。
网友B答:基于我多年SaaS软件开发项目实践,可以这么算:
1.确定需求多少功能,需求分析阶段,投入需求(产品)人天--- 费用A2.研发进行开会,关于需求开发周期---费用B3.项目做出原型给客户演示,关于原型投入---费用C4.项目进行POC演示阶段,投入---费用D5.项目和客户签订产品合同---费用E6.产品进行产品服务发票7.产品进行立项8.产品进行启动9.研发根据需求进行开发---研发费用F10.测试根据需求进行测试---测试费用G11.产品进行实施对接调试---实施费用(实施、出差等)H12.产品进行免费n月的免费运维---运维费用I13.产品签订关于运维维护合同---拿到合同J14.产品进行服务费用发票15.产品关于运维人员的费用---费用K

整个阶段能赚多少钱呢?
可以这么算:收益=费用E+费用J -其他费用和增值税费用
上面这个案例中,网友B的估算方法是否科学合理,我不做评价。
但是,我们可以很容易看出他的成本估算涵盖了软件开发项目的Pre-sales到运维的全生命周期。
这种估算方法,需要项目经理对项目的可行性分析、需求分析、设计开发、测试验证、运维管控等阶段的各项活动及相关费用都非常熟悉,这考验项目经理的能力,因此需要项目经理掌握软件开发项目成本估算的相关知识和技能。
一 软件开发项目成本估算的重要性
在软件开发项目实施前,就需要对各个项目活动及整个项目的成本进行分析和估算,进而编制出为完成项目所必需的成本的预算。
成本预算,是项目成本计划的最终表现形式,如同网络图计划或逻辑横道图计划是项目进度计划的最终表现形式。软件开发项目成本估算的重要性,有如下6个方面。
1)管理决策。提供有关项目成本的信息,供管理者在决策时使用。2)资源分配。根据成本估算确定资源的分配情况,以最优地使用资源。3)预算控制。通过成本估算预测项目成本,以确保项目在预算范围内完成。4)评估项目可行性。通过对项目成本的评估,判断项目是否可行,从而决定是否继续进行。5)提高效率。通过成本估算提高项目效率,确保项目按时完成。6)确保项目质量。通过对项目成本的评估,确保项目质量达到预期。
图1 成本估算的重要性
因此,软件开发项目成本估算是项目管理的重要环节,有助于确保项目顺利完成,提高项目效率和质量。
二 软件开发项目成本估算方法
想要准确估算软件开发项目的成本,除了依靠项目经理和团队的个人经验,掌握科学的方法也很重要。
《项目管理知识体系指南(PMBOK指南)》(第6版)提到的专家判断法、类比估算法和参数估算法等方法都比较粗,不适合软件开发项目,很难满足精细化管理的要求。数字化管理时代,我们需要更加有效的方法,比如下面这5种方法:1)数据驱动方法。基于先前的项目数据,如历史成本数据、项目投入和产出比率,以及人力资源数据。2)基准估算方法。基于先前项目的经验数据和专家评估,对项目的范围、时间、成本进行估算。3)设计到实施方法。也叫全生命周期法,项目团队依次完成项目的设计、开发、测试、部署等阶段,并在每个阶段完成成本评估。4)项目网络图方法。通过创建项目的活动网络图,识别项目中的活动、任务和成本,从而编制成本计划。5)项目管理软件方法:使用专门的项目管理软件,如MS project,通过图形界面和模板快速生成成本计划。
图2 成本估算的5大方法
这些方法,可以根据不同软件开发项目的特点和需求进行结合,以编制最适合项目的成本计划。
三 软件开发项目成本估算的主要步骤编制成本预算,既要按项目阶段来编制,估计每个阶段(周、月、季或年)需要多少钱,又要按项目的分项工作来编制,估计每个组成部分需要多少钱,当然还要得到整个项目的总预算。
3.1 按照项目阶段来估算售前阶段
需求分析:分析客户对软件的需求,并确定项目的范围、目标和要求。技术评估:评估项目所需的技术和工具,并估算技术难度。成本估算:根据需求分析和技术评估,估算项目的开发成本。开发阶段
更新需求:根据项目的进展,不断更新需求。实施计划:编制项目实施计划,包括人员分配、进度安排、风险评估等。成本控制:通过实施计划,对项目的成本进行控制和监测。验收阶段
验收评估:评估项目的质量,确保软件符合需求。成本报告:汇总项目的成本数据,并编制成本报告。运维阶段:
技术支持:提供软件的技术支持,包括修复bug、更新版本等。成本评估:评估软件的运维成本,包括人力、设备等。通过这些步骤,可以详细地评估软件开发各阶段的成本,并进行汇总,得到整个项目的总预算。
3.2 按照项目分项工作来估算步骤1:需求分析,明确项目的需求和目标,以确定项目的范围和成本组成部分。步骤2:技术评估,评估项目的技术要求和难度,以确定项目的技术成本。步骤3:资源评估,评估项目所需的人力、设备和其他资源,以确定项目的资源成本。步骤4:时间评估,评估项目的预计时间,以确定项目的时间成本。步骤5:风险评估,评估项目可能存在的风险和不确定性,以确定项目的风险成本。步骤6:成本估算,根据上述步骤,综合估算项目的总成本。步骤7:合同签订,根据成本估算,签订合同,并确定项目的预算。步骤8:项目执行,按照预算和合同,执行项目,并实时监测成本。步骤9:项目结项:评估项目的最终成本,并将其与预算进行对比,以确定成本的变化。步骤10:运维估算,根据项目的运维需求,评估运维成本,并实施运维措施。
四 软件开发项目成本估算质量的评价查阅相关文献,并结合个人经验,我认为,对软件开发项目成本估算质量的评价,可以有5个维度,分别是:
1)准确性:检查成本估算是否准确,是否符合项目的范围、时间和要求。2)可靠性:评估成本估算是否具有足够的证据和数据支持,以及是否考虑到了可能的风险和不确定性。3)可行性:评估成本估算是否符合项目的资源和预算限制,是否可以实现。4)完整性:检查成本估算是否包含了项目的所有成本组成部分,如人力、设备、材料等。5)合理性:与先前项目的成本估算进行比较,以评估成本估算的合理性。
图3 成本估算质量评价的5个维度
评价成本估算质量的关键在于确保成本估算是基于合理的方法和数据,并考虑到项目的所有因素。
只有这样,成本估算才能具有足够的可靠性,从而有助于项目管理团队在项目执行过程中做出明智的决策。
进行项目成本估算,就是要进行成本预测。由于不可能立即就把预测结果与实际情况进行比较,所以就应该尽量以多种方式进行预测,以便多种预测结果之间能够交叉验证。
如果各种预测结果之间差别很大,就必须认真分析导致差别的原因,以便提高预测的准确性。
五、总结
BANI时代,软件开发项目成本越来越呈现非线性变化,因此对成本的估算也越来越难,因此对于项目经理来说,就需要基于组织过程资产中的历史数据,并利用数字化工具(比如甲骨文的crystalball软件)进行数据分析和模拟。
另外一方面,对于软件开发项目的领导者(包括发起人和项目经理)来说,掌握基本的项目成本估算方法、步骤,以及评价估算质量的方法,也是很有必要的。
作者介绍:张永彬,PMP/PMI-ACP,项目管理专业硕士,15+年消费电子和IT软件两大行业工程实践者,现代项目管理方法的积极践行者和推广者。
近期热文:
运用六西格玛如何度量软件项目缺陷,并提升改进项目质量实例张永彬原创:浅论项目的成功标准张永彬原创:项目式学习法(PBL)如何让你快速成为行业专家张永彬原创:一文掌握需求评审常见难题及改进策略(“九大法则”)张永彬原创:“质量三角”管理模型项目质量管理全部精华看这篇就够了