如何确定软件的开发成本价格
软件开发成本估算过程可进一步细分为软件规模估算、工作量估算、成本估算和确定软件开发成本等四个过程。
其中成本估算需要对直接人力成本、间接人力成本、间接非人力成本及直接非人力成本分别进行估算。
国家标准《GB/T 36964-2018软件工程软件开发成本度量规范》中建议的软件开发成本估算基本流程如下图所示:
国家准中的四个估算过程,层层递进,逐步细化,最终达到科学、一致的成本估算。
一、软件规模估算
通常情况下,规模估算是软件成本估算过程的起点。
估算规模是后续计算软件项目的工作量、成本和进度的主要输入,是项目范围管理的关键,因此,在条件允许的情况下,应首先进行规模估算。
在规模估算过程中,需要注意以下情况:
1.在规模估算开始前,应根据可行性研究报告或类似文档明确项目需求及系统边界。项目需求除包含最基本的业务需求外,还应进行初步的子系统/模块划分,并对每一子系统或模块的基本用户需求进行说明,以保证可以根据项目需求进行规模预估。
2.依据项目特点和需求详细程度不同,通常估算人员在选择估算方法时应采用纳入国际标准的功能点方法进行功能规模估算,在适用IFPUG或NESMA方法时,可以根据需求的粒度和管理需要,选择预估功能点方法、估算功能点方法或者详细功能点方法。
3.若当前的项目需求极其模糊或不确定,可不进行规模估算,而直接采用类比法或类推法估算工作量和成本。
二、工作量估算
在完成规模估算后,应当开展工作量估算工作,若当前项目未开展规模估算,也可直接启动工作量估算工作。
工作量估算时,可采用方程法、类比法、类推法、功能点法:
方程法:即基于基准数据建立参数模型,通过输入各项参数,确定估算值。
类比法:即将待估算项目的部分属性与类似的一组基准数据进行比对,进而确定估算值。
类推法:即将待估算项目的部分属性与高度类似的一个或几个已完成项目的数据进行比对,并进行适当调整后确定估算值。
功能点法:从用户视角出发,通过量化系统功能来度量软件的规模,这种度量主要基于系统的逻辑设计。功能点规模度量方法在国际上的应用已经比较广泛,并且已经取代代码行成为最主流的软件规模度量方法。
在开展工作量估算的过程中,需要注意以下情况:
1.当需求极其模糊或不确定时,如果此时具有高度类似的历史项目,则可直接采用类推法,充分利用历史项目数据来粗略估算工作量。
2.当需求极其模糊或不确定时,如果此时具有与本项目部分属性类似的一组基准数据,则可直接采用类比法,充分利用基准数据来粗略估算工作量。
3.对于规模估算已经开展的项目,可采用方程法,通过输入各项参数,确定待估算项目的工作量。若客户或高层对项目的工期有明确的要求时,在采用方程法估算工作量时,工期要求有可能是方程的参数之一。
4.为追求估算的准确性,建议在条件允许的情况下,可采用两种估算方法,对估算结果进行交叉验证,若估算结果差别不大,可直接使用两种估算结果的平均值或以某种估算结果为准,若差别较大,需进行差异分析。
5.工作量的估算结果宜为一个范围而不是单一的值。
三、成本估算
在获得了工作量估算结果后,可采用科学的方法进行成本估算。
在成本估算过程中,应需要注意的情况:
1.类比法和类推法,同样适用于需求极其模糊或不确定时的成本估算;
2.间接成本是否与工作量估算结果相关取决于间接成本分摊计算方式。在绝大多数组织,项目周期越长,项目组成员越多,其分摊的间接成本就越高,此时项目的间接成本与工作量估算结果直接相关;
3.直接非人力成本通常与工作量估算结果无关,宜单独分项测算;
4.成本估算结果,也通常为一个范围,而不是单一的值。
四、确定软件开发成本
在《软件工程软件开发成本度量规范》中,将软件开发成本分为四类,主要是为便于对成本构成(即哪些成本属于开发成本,哪些不属于开发成本)进行清晰界定。
而在实际确定软件开发成本时,通常并不是分别测定四类成本,加和后获得总成本,而是通常采用以下两种方式确定总成本:
1.根据人力成本费率及工作量估算直接人力成本和间接成本之和,再加上直接非人力成本,获得总成本;
2.根据规模综合单价和软件规模,测算出直接人力成本和间接成本之和,再加上直接非人力成本,获得总成本。
在进行软件的规模、工作量、成本估算时应遵循以下原则:
1.在规模估算时,应根据项目特点和需求的详细程度选择合适的估算方法;
2.充分利用基准数据,采用方程法、类比法或类推法,对工作量和成本进行估算;
3.工作量和成本的估算结果宜为一个范围值;
4.在进行成本估算时,如有明确的工期要求,应充分考虑工期对项目成本的影响,可以根据项目实际情况以及工期对项目的影响程度,对成本的估算结果进行调整;
5.成本估算过程中宜采用不同的方法分别估算并进行交叉验证。如果不同方法的估算结果产生较大差异,可采用专家评审方法确定估算结果,也可使用较简单的加权平均方法;
6.在软件项目的不同场景下(如预算、招投标、项目计划和变更管理等)采用国家标准时,相关要求见国家标准中附录A。
除了上述主要原则外,我们还需注意在使用基准数据时:
1.对于委托方和第三方,建议使用或参考软件行业基准数据进行估算。估算模型的调整因子的增减或取值有可能随着行业基准数据的变化而变化。
2.对于开发方,在引入行业基准数据的基础上,可逐步建立组织级基准数据库,以提高估算精度。组织级基准数据定义应与行业基准数据定义保持一致,以便于与行业基准数据进行比对分析,并持续提升组织能力。
软件开发如何报价
软件开发报价问题,涉及多方面因素,从市场需求到公司策略,再到具体项目细节,每一环都需仔细考量。首先,我们要明确的是,软件开发价格的设定并非仅仅基于公司成本,还涉及到市场竞争、客户需求、项目规模以及公司战略等多重因素。
软件开发项目的报价,通常需要考虑以下几个关键点:
成本构成:包括人力成本、硬件设备、软件工具、开发周期、维护服务等。
项目规模:功能复杂度、系统集成度、用户数量等直接影响开发工作量和时间。
市场需求:行业的趋势、客户类型、竞争状况等影响定价策略。
客户预算:了解客户期望的预算范围,合理设定报价,同时考虑盈利空间。
在报价时,合理区分项目的不同层次和需求,如高级、中级、标准等,可以为客户提供更多的选择,同时确保公司的盈利空间。此外,充分调研客户需求,提供具体、有依据的解决方案,是报价时不可忽视的重要环节。
在报价过程中,要保持与客户的沟通,了解其预算范围、项目需求的优先级以及对未来发展的预期。通过提供详细的功能列表、成本分析、时间估计和潜在风险评估,让客户对项目有全面的了解,从而做出明智的决策。
在竞争激烈的市场中,合理定价是关键。过低的报价可能会导致长期的亏损和低质量的服务,而过高的报价则可能失去潜在客户。因此,平衡价格与价值,提供透明、合理、有竞争力的报价,是获得成功的关键。
最后,创新解决问题,突破价格樊笼,是提升软件开发行业价值的关键。通过优化开发流程、采用新技术、提高服务效率,可以在保证质量的同时,合理控制成本,为客户提供更有价值的产品和服务。
软件定制开发费用依据、标准及注意事项有哪些
对于很多企业来说,通用管理软件往往无法满足企业的个性化需求,但是又不了解软件定制开发费用。那么,影响一套软件定制开发费用的因素有哪些?软件开发企业定制软件如何收费?软件准备制定开发后续还有收费吗?
软件定制开发收费依据:
1.项目的大小。包括:功能需求多少,开发时间,开发周期,实现的功能有多少等,直接关系开发成本。软件工程师的工资不低
2.能否实现。很多家软件公司都能实现的功能价格低,只有1-2家公司能实现相应的价格也就高,技术含量高价格就高
3.开发语言。开发语言没有好坏之分,只有更否适合哪类系统和功能的。
4.软件兼容性。现在开发的软件基本是和数据库,其他软件,其他功能相连使用的。在设计之初就要考虑数据库大小,使用用户多少,企业发展等等
5.软件质量。性能高,BUG少
软件定制开发怎么收费?
不同的软件定制开发、不同的软件开发企业收费标准会有所区别,举个例子:
1、预付款50%。一个软件预付费是软件报价的一半。
2、议定时需要议定软件代码数量,正负100行内不加收费,超过范围按每行代码1元进行收取
3、如果是一些包含商业机密的软件,另外收取保密费
定制软件交付后还需要付什么后续费用吗?
这个要看具体情况,对于一次买断的,又不需要更新维护的话,就不需要,通常这种定制软件功能复杂,价格昂贵。还是少不了维护费用的。除此之外像软件二次开发,软件升级、功能扩展、年费等也都是需要另外收费的。对于一些按套、按人数收费的软件,每增加一个模块、人员也是需要收费的。