尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

软件项目概算指南:四类费用、功能点估算与人月成本全解析

软件项目概算指南:四类费用、功能点估算与人月成本全解析 简介《软件开发项目概算指南》是由广东软件行业协会发布的行业指导文件面向软件开发项目经理、成本估算人员及预算管控相关岗位系统解决软件项目从启动到维护阶段“费用怎么算、依据怎么取”的核心问题。指南将项目划分为开发、测试、实施、维护等类别并围绕咨询费、建设费、服务费、附加费等取费依据展开同时给出项目阶段划分、各阶段费用构成、工作量估算及人月成本估算方法为编制预算和成本控制提供直接参考。资源为1份PDF文档整体大小仅193KB内容结构完整涵盖项目费用概算、需求变更估算、开发与实施及维护阶段工作量估算、人月成本估算等章节适合在项目立项或预算评审时随查随用。已有290人学习下载对从事软件成本评估或承接软件外包的团队而言是一份高性价比的案头参考资料。1. 概算先行软件项目定价为何要拆成四类费用同一套业务需求给五家供应商报价结果从 80 万到 400 万都有这是招标评审时最常遇到的尴尬。价格差异不是开发人员技术水平造成的根源在于大家没有统一口径需求分析、编码测试、安装实施、运行维护各阶段各花多少人力按什么单价计取行业里缺少可参照的框架。软件行业协会发布的《软件开发项目概算指南》要解决的就是这个问题。它把软件开发项目拆成咨询、建设、服务、附加四类费用再通过功能点估算出工作量用“人月成本”给工作定出单价最终推算出可评审的项目概算。这份指南最适合甲方信息化部门做预算评审、项目经理编制投标报价、售前人员核对成本结构。2. 立项、建设、完成三阶段如何决定费用口径2.1 项目阶段划分是概算的起点指南把软件开发项目全过程分成立项、建设、完成三个阶段这个划分直接决定了费用该怎么算。立项阶段做可行性分析、需求分析和系统设计对应的是咨询费建设阶段由开发商完成编码、测试、实施、维护对应建设费和服务费完成阶段若需求变化大需要按实际工作量核算这就引出需求变更费。软件开发流程中的每一类角色和活动最终都要落回这三个阶段里对号入座。值得留意的是指南强调“总体规划、分段实施”原则理由是需求不确定阶段硬要一次性锁定价格成本风险会转嫁到报价里。所以立项阶段先做详细需求分析再进入招标不是流程冗余而是为概算提供输入。项目分类上也做了四类区分新开发、二次开发、软件移植和产品集成。其中只有新开发项目完全覆盖需求分析到运行维护的全过程指南的概算方法也主要针对这一类二次开发和移植类项目因为复用程度高工作量估算口径要做裁剪。2.2 咨询费的取费表与差额定率累进法咨询费包括技术咨询、可行性分析、需求分析、系统设计、估价和招标代理。指南给了三类收费口径按项目预投入费即后续建设费的百分比、按人日单价10001500 元/人日、以及双方协商价。招标活动中涉及的公证费则按标的额分档递减。收费项目收费基数≤100万101-300万301-500万501-1000万1001-3000万3000万需求分析、可行性分析、系统设计预投入费8.3%7.8%7.3%6.7%5.4%4.5%估价预投入费3.6%3.0%2.5%2.2%1.8%1.5%招标代理中标金额1.0%0.8%0.7%0.55%0.35%0.3%这里有个容易踩坑的点招标代理费与公证服务费按差额定率累进法计算不是拿总金额直接乘费率。指南举了一个例子中标金额 600 万元的招标代理费是 4.55 万元100 万按 1.0% 计 1 万元200 万按 0.8% 计 1.6 万元200 万按 0.7% 计 1.4 万元最后 100 万按 0.55% 计 0.55 万元累加得到 4.55 万元。但表 1 中需求分析与估价这几档费率指南没有明确是否同样采用差额定率累进实践中一般由双方在合同中约定有的直接按区间内全额费率一口价。做概算时要先确认这一点否则 900 万项目按全额 6.7% 算和按累进口径算结果能差出好几个百分点。2.3 验收测试费按建设费和测试项费率双重计取验收测试费不是一笔固定费用。指南把软件质量特性拆成可挑选的测试项每类有费率下限最终公式为验收测试费 建设费D × 各测试项费率之和 × 调节系数t功能性是最核心的计费项功能点不大于 100 时费率下限 2.8%超过 100 时为 3%。可靠性三项合计下限 0.5%易用性三项合计下限 0.2%文档三项合计下限 0.25%。测试项选得越多费率越高。调节系数 t 按建设费分档递减200 万以下为 1200~500 万为 0.98500~1000 万为 0.96建设费越高折扣越大。这样做是为了防止小项目被固定成本压垮大项目则通过费率递减体现规模效应。另外有最低收费门槛不含负载压力测试最低 8000 元含负载压力测试最低 2 万元实际计费不足门槛时按门槛收取。2.4 工程监理费的三系数公式与协商口径监理费公式为监理费 建设费D × 基本费率a × 地域调整系数d × 工期调整系数e三个系数分别处理规模、地域和工期。基本费率 a 随建设费增大而降低200 万以内大于 12%200~500 万大于 9%500~1000 万大于 7%。地域调整系数 d 从集中实施的 1 递增到全省范围 1.2~1.5、全国范围 1.5~2。工期调整系数 e 约定一年内大于 0.9、1~2 年大于 1.1、两年以上大于 1.4。三者相乘时要注意量级一个全省范围、工期一年半的项目光 d 和 e 的乘积就可能到 1.44监理费率会比集中实施短工期项目高出 40% 以上。容易忽略的是监理附加报酬条款非监理原因造成的工程延期监理方可按监理费 × 附加工作月数 / 合同规定月数获得附加报酬。这意味着概算中的监理费还要预留延期风险。项目结束后的维护期监理指南明确由双方协商不套用建设期的取费标准。3. 从功能点到人月工作量估算的两种方法与系数取值3.1 功能点估算法FP、成本系数与工时换算开发工作量是整个概算的基数实施和维护工作量都由它推导。指南提供了两种估算方法第一种是功能点估算法适用于需求分析比较详细的项目或者用于项目完成阶段的最终工作量核算。公式为开发工作量 D人月 项目功能点FP × 开发成本系数k / H / WH 是国家规定的一天工作时数W 是一个月工作天数。换算逻辑是功能点乘以开发成本系数得到完成全部功能点需要的总人工时再除以每天工时得到人日最后除以每月工作天数换算成人月。k 的单位是“人工时/FP”本质上是一个经验比值。开发成本系数 k 按功能点规模分了三档FP≤3000 取 3.5~4.0 人工时/FP3000FP≤8000 取 4.0~4.58000 取 4.5~5.0。系数主要体现非技术难度比如开发周期压力、跨团队协调难度、业务复杂度、需求不确定性。个别项目要驻场开发或遇到前所未有的业务要求可以经评估后突破上限。下面这段代码可以直接用把功能点和系数换算成人月def effort_from_fp(fp, k, hours_per_day8, work_days21.75): 功能点法估算开发工作量人月。 fp: 功能点数 k: 开发成本系数人工时/FP hours_per_day: 每日工作时数 work_days: 每月工作天数 man_hours fp * k # 总人工时 man_days man_hours / hours_per_day # 折成人日 man_months man_days / work_days # 折成人月 return round(man_months, 2) # 例2400个FP系数3.8按8小时/天、21.75天/月 print(effort_from_fp(2400, 3.8)) # 输出 52.41 人月H 和 W 不要照搬固定值。有的企业按 8 小时、21.75 天计算也有按 22 天甚至按项目实际排班日历处理差异会直接影响人月结果。指南只给出了“国家规定的每天工作时数”和“一个月工作天数”的说法没有限定具体数字落地时按公司考勤制度或地方劳动工时规定取值即可。3.2 任务估算法角色系数与基准工作量的分摊逻辑第二种是任务估算法适合立项初期需求还没细到能数功能点的时候。做法是把项目按 WBS 逐层分解到不可再分的子任务对每项子任务分配人员和周期再按角色系数折算工作量。指南给出的角色权重如下以程序员工作量为基准 1高级程序员 1.5 倍系统分析员 2.5 倍测试工程师 1 倍高级测试工程师 1.5 倍项目管理人员 3 倍市场营销与技术支持 1 倍文秘 0.5 倍。开发阶段投入人员时间月合计人月需求分析系统分析员 2 人210系统设计系统分析员 1 人25系统设计高级程序员 2 人26编码高级程序员 2 人13编码程序员 4 人14测试测试工程师 4 人28项目管理项目管理人员 1 人721文案文秘 1 人73.5合计60.5这个表是指南中直接给出的例子合计 60.5 人月。很多人会忽略一点任务估算法拆的是“任务”而不是“角色”人员投入的乘积要落在子任务上。项目管理按 3 倍权重计算来自一个隐含假设——一个管 7 人月项目的管理者要统筹所有任务的进度、质量和资源其成本远高于纯编码岗位。团队自报工作量时如果把项目管理按 1 倍算报价会整体偏低。3.3 实施与维护工作量两个系数决定报价是否漏项实施工作量 开发工作量 D × 实施系数 s重点在于区分集中式和分布式实施。集中式实施且用户数不超过 100 时 s0.2超过 100 则每增加 100 个用户增加 0.03~0.05分布式实施按实施点数调整s0.2(n-1)×qq 取 0.08~0.15。区别很明显分布式多一个点就多一路差旅、部署、配置和培训系数上限接近集中式的 3 倍。如果实施涉及本地化开发或者项目是系统集成的一部分指南明确说实施费可以抽出另算不硬套系数。维护工作量 (开发工作量 实施工作量) × 维护系数 ww 取 0.15~0.20。这里的维护对应验收到合同维护期结束的 A 级或 B 级服务A 级是常驻现场按派驻人数×时间直接算B 级是按约定时间到场并定期巡检才用系数法。指南把“验收后第一年”定义为维护期一年之后要另签维护合同且维护费不超过上一年度 115% 时用户应优先与原开发商直接签约。这个条款保护的是服务连续性和数据安全实际谈判时可以拿来作为续约价格的上限参考。4. 人月成本为什么是 3.23 倍工资成本模型推导与应用4.1 人月成本包含哪些开销人月成本不是“工资社保”那么简单。指南从软件企业的真实财务结构出发把每月分摊到单个员工的开销拆成七类再叠加管理费用工资 B 是基数四金及各项社保福利合计 0.476B奖金和节日福利按经验取 0.20B办公成本含场地、水电、差旅、市场推广约 B/3人力资源储备人员流动、培训、非项目期工资0.20B基础设施、设备折旧、开发平台工具 0.15B税收和企业利润约 B/3。4.2 从七项成本到 3.23 倍系数的推导过程把各项累加可以得到如下推导链基础成本 B 0.20B 0.476B B/3 0.20B 0.15B B/3 (1 0.20 0.476 1/3 0.20 0.15 1/3) × B 2.6927 × B 人月成本Q 基础成本 × (1 管理费率) 2.6927B × 1.2 3.2312B ≈ 3.23B最后一个括号乘以 1.2意思是每十个软件人员配两个管理人员管理、行政、财务、人力等成本按前七项总和的 20% 分摊。指南把系数收敛为 3.23按未舍入系数算其实是 3.2312两者差异约 0.04%工程估算无感知但写概算表时按 3.2312 算会显得更严谨。4.3 用脚本生成不同工资水平下的人月成本参考表人月成本的计算适合做成一个可复用函数。参数只有一个平均工资 B不同城市、不同职级结构下直接传入即可def monthly_cost(B, mgmt_rate0.2): 根据平均工资B估算人月成本Q。 B: 软件企业支付给员工的平均工资元/月 mgmt_rate: 管理费率指南取20% bonus 0.20 * B # 奖金及物质奖励 welfare 0.476 * B # 四金、工伤、生育、残疾基金、工会基金 office B / 3 # 办公成本 reserve 0.20 * B # 人力资源储备 infra 0.15 * B # 基础设施与设备折旧 tax_profit B / 3 # 税收与企业利润 subtotal B bonus welfare office reserve infra tax_profit return round(subtotal * (1 mgmt_rate), 2) for B in [8000, 10000, 12000, 15000, 20000]: print(fB{B:6} - Q{monthly_cost(B):8,.0f} 元/人月)B 8,000 - Q 25,850 元/人月 B10,000 - Q 32,312 元/人月 B12,000 - Q 38,774 元/人月 B15,000 - Q 48,468 元/人月 B20,000 - Q 64,624 元/人月使用这个函数时有两处需要注意。一是 B 的口径指南说 B 是软件企业支付给所有员工的平均工资实际报价中更常见的是取研发序列加权平均工资因为市场、售前、客服岗位会把均值拉低导致人月成本偏低。二是这个模型内含隐式假设——人员长期处于满负荷可结算状态。如果企业有较长的空窗期或大量非项目型活动资源储备系数 0.20B 会不够覆盖此时建议把 mgmt_rate 上调到 25%~30% 再复核报价。还有一个常见误区有人用日薪倒推人月成本比如日薪 1000 元乘 22 天得到 22000 元然后当成 Q 去算项目报价。按 3.23B 倒推22000 元对应 B 只有 6811 元这个工资水平在软件行业基本只够覆盖初级岗位等于把企业的管理成本和利润全砍掉了。5. 需求变更费怎么留以及一条完整的概算链路5.1 需求变更风险的四个评估因素需求变更费 (建设费 验收测试费 监理费) × 需求变更风险系数 f。公式里特意把咨询费排除在外因为立项阶段的需求分析、系统设计发生在变更之前不受后续变更影响而验收测试与监理随着需求变化工作量会同步加大必须纳入基数。f 的取值指南没有给出固定表格而是给出四个评估维度项目成熟度全新项目与已有案例项目的差异、项目规模、用户业务稳定性与管理制度规范性、前期需求分析与系统设计的完善程度。这些因素彼此不独立比如一个全新领域的省级实施项目成熟度和需求规范性都弱f 取 0.15~0.2 是常见做法成熟产品的定制化改造f 取 0.05~0.08 即可。变更费有上限一般不超过项目概算的 40%超过需要专家评估并决定续签还是终止。5.2 附加费源代码与保密容易被漏掉附加费只在特定条件下出现但漏报的后果很严重。提交源代码需要增加知识产权费涉密项目要增加保密费两者都与软件开发工作量相关可以按建设费一定比例计取或协商定价。对甲方来说如果合同要求交付源码但概算里没有这一项交付时会变成商务争议对乙方来说涉密项目的人员审查、隔离开发环境、文档管控成本是真实存在的不预留在概算里后面只能挤利润。5.3 一个完整项目从 FP 到最终报价的验证把前面所有公式串起来验证一遍。假设某业务系统FP2400k3.8集中式实施、用户数 80维护系数 w0.18平均工资 B12000需求变更风险系数 f0.1。工作量和费用逐级计算# 参数设定 fp, k 2400, 3.8 H, W 8, 21.75 n_users 80 w 0.18 B 12000 # 工作量计算 D fp * k / H / W # 开发工作量52.41人月 # 集中式实施用户数100s0.2 s 0.2 I D * s # 实施工作量10.48人月 M (D I) * w # 维护工作量11.32人月 total D I M # 总工作量74.21人月 # 费用计算 Q 3.23 * B # 人月成本38760元 construction total * Q / 10000 # 建设费287.7万元 # 咨询费按差额定率累进口径 consult 100 * 0.083 (construction - 100) * 0.078 # 验收测试费功能3% 可靠性0.5% 易用性0.2% 文档0.25% test_fee construction * (3 0.5 0.2 0.25) / 100 * 0.98 # 监理费基本费率9.5%地市d1.1工期1.5年e1.2 supervision construction * 0.095 * 1.1 * 1.2 # 需求变更费 change_fee (construction test_fee supervision) * 0.1 grand_total consult construction test_fee supervision change_fee按此链路算出的结果是建设费约 287.7 万元咨询费 22.9 万元验收测试费 11.1 万元监理费 36.1 万元需求变更费 33.5 万元项目概算合计约 391.3 万元。对照这个结果有两个校验点可以用。一是看费用结构建设费占总概算的 73.5%如果某个报价里建设费占比过低说明费用被挪进了监理、测试等弹性科目要警惕取费重复。二是看放大系数总概算相对建设费比值约 1.36超出这个范围较大时需要重审 f、d、e 的取值是否合理。最后把 k、s、w、f 的取值依据写进招标文件的评审条款概算才真正做到有据可查。本文还有配套的精品资源点击获取
返回列表