每个企业都希望在完成项目后获得盈利,但不少企业到了年终后才发现项目做了不少,公司却并没能达到预期,甚至还出现了亏损。那么钱究竟去了哪里?很多公司都搞不清楚原因,出现糊涂账较多的状况,这将会造成严重的后果,尤其在疫情影响下,大环境很恶劣,如果是大公司的事业部门出现亏损,就可能会导致事业部门解散;如果是小公司出现亏损,就很容易导致公司倒闭;怎样做才能确保我们所完成的项目都能获利?
从财务角度看,要确保盈利必须做到合理估算成本,只有这样才能在对外签订合约时做出合理 价,在对内在开始项目前做出充分评估投入代价,同时在实施过程中还要控制成本得当,最后项目结束时才会有可能获得盈利。
固定的,规规矩矩的硬件项目和工程项目相对于软件项目更容易做预算,因为硬件类、工程类项目都是实实在在能看得见的物件,BOM结构都是非常清晰,都可直接换算的项目,例如涉及到哪些硬件设备,安装的时间是多长,调测时间多长都可以通过公式计算;而对于软件项目评估预算就相对复杂了,因为软件项目研发对象是二进制代码产品,其难度、周期都不好评估,导致了费用也不好评估。而这一块不好评估的费用恰恰占了软件项目费用的最大比重,因此我们重点探讨怎样合理评估软件研发难度和周期。
图1
一、项目值不值得做?
在探讨项目能不能有收益之前,先要识别出项目靠不靠谱,不靠谱的项目就是个大坑,成功概率非常低,几乎不可能盈利;有的企业但凡是项目都接过来做,并没有做任何风险评估,这样的企业往往赔得多,挣的少,如果有办法能够提前预测每个项目能否顺利交付,就可以尽早规避风险,企业就可以根据评估结果来调整对项目的资金投入,少投入或不投入,将资金用在刀刃上,这更有利于获得利润。
要做到这一点,就要做好风险评估,这里给大家推荐一个风险评估工具——风险画像工具,风险画像工具一共有五个维度,分别是独特性,不确定性,临时性,跨职能性和变革性,每个维度都分别有1,3,5,8分值,如果项目特性和维度匹配度高,那么分值就高;匹配度低,那么分值就低,最后汇总5个维度的总和分值,分值越高,风险越高,越不值得做;分值越低,风险越低,越安全,越值做。如下图
图2
l 独特性指的是公司有没有做过类似的项目?
有没有相关的经验?如果从来没有做过这类项目,打分是最高分8分,如果经常做这类项目,可以打1分,如果有部分相关的经验,不具备全部经验,那就可以打3分或5分,具体打分可以按具体项目匹配度来给分。
l 不确定性指的是所做的项目需求明不明确?
例如银行委托您的企业研发一套银行APP,APP的主要功能是让终端用户在手机能使用常规的移动支付、查询等功能,如果客户只给出简单的几句话,待确定的功能还很多,这个项目的不确定性就非常高,可以给8分;如果同样的需求,客户另外给出了详细的设计方案和验收标准,那么这个项目不确定性就非常低,可以给1分。
l 临时性指的是从项目时间角度看项目风险,项目周期越长风险越高,周期越短风险越低
例如项目周期是3年风险可以打8分,如果项目3个月可以打1分;另外如果项目正好跨年,那么风险也很高;例如项目虽然是3个月,但是正好是跨年,例如一个项目从12月份开始启动,交付时间是3月底,那么风险是比较高的,因为跨年往往组织结构会调整,可能年前的项目接口人更换了,领导也更换了,项目极有可能由于人员变动导致重新研发。
l 跨职能性指的是完成项目需要协调哪些部门,哪些人来一起把事情做完?
如果只是部门内部小组就能协调把事情做完,这样跨职能性非常低,可以打1分。如果需要整个集团或整个公司的所有部门都是卷进来,那么跨职能性就很高,可以打8分。
l 变革性指的是项目的影响范围
如果项目实施后仅仅是影响1个小组,那么变革性很低,可以打1分;如果项目实施后整个集团都受到影响,那么变革性非常高,可以打8分。
最后把5个维度的分值加起来看下分值,如果分值低,风险就低,分值高,风险就高;例如分值5分,风险是最低,这样的项目基本上没有风险,成功机率很高,项目几乎是稳赚;如果分值是40分,风险很高,这样的项目基本上风险很高,失败几率很高,这样的项目能不做就尽量不做。
二、怎样做好预算?
当我们评估风险筛选出优质的项目后,接下来要做的事情是做好项目预算。订单交付软件项目的资金流一般都是投入资金,然后消耗资金,到最后项目结束会产生盈亏,如下图3所示,可以看出要想获得盈余,就要做好前面两个环节的工作,第一个环节是准确评估预算,识别要花多大代价做项目,有没有足够成本做项目。如果评估偏乐观,申请的成本太低,极有可能因为资金不够,导致后续无法按项目计划开展工作,导致项目延期,最后导致项目无法盈利; 如果评估太悲观,申请的预算太多,可能项目没开始就被公司高层叫停,原本可以盈利的项目就这样夭折了;第二个环节是控制好成本,成本控制好了才不会导致成本增加,到最后才会达到预期的结果–客户按期付款,没有返工,项目有钱赚。
图3
当签订合同前或要求在比较短时间内就要给出预算成本时,项目预算通常有三种方法,一种是参考历史项目做预算,第二种是参考同行 价做预算,第三种是组织专家评审自做预算。
图4
1.参考历史项目做预算指的是看一下自己的公司里面有没有做过类似的项目,或者在通过某些渠道能不能获取到类似的项目经验。如果有做过类似的项目可以把历史项目的预算作为参考基准,当项目难度偏差不大,那预算应该是相差不大;如果相差比较大,那就要加上了一定的百分比。这就是参考项目历史经验做预算。
图5
2.参考同行 价做预算指的是让同行给我们 价,我们参考同行的 价做预算。通常我们可以通过去打电话去询问同行,一般利用虚拟自己是客户的方式去打电话询问同行,同行才给你 价。
图6
3.专家评审做预算指的是找一些比较资深的同事,咨询他们做这项目需要做哪些主要的事情?需要花多少钱?让专家给出建议。
图7
我们通过以上三种办法的一种或混合并用的办法得到一些预算数据,然后用三点估算这个办法得到一个最靠谱的预算值。
什么是三点估算?这是在做项目管理比较常用的一种办法。三点估算就是(最乐观的预算+4倍最有可能的预算+上一个悲观的预算)/6。例如在做一个项目的时候,收集到最乐观的预算是300万,最有可能的预算是600万,悲观的预算1000万,那么三点估算就是(300+4*600+1000)/6 约等于617万,以这个值为预算成本。
图8
以上是比较普遍的粗颗粒度,对预算值要得比较急的时候用的评估方法,当我们有充足的时间除了以上三种方法还有更靠谱的办法-基于项目功能点评估预算的方法。在了解基于功能点的评估预算方法之前我们先了解下软件项目成本的基本结构,项目成本主要由直接成本+间接成本构成
图9
而直接成本主要由人力成本+非人力成本构成,人力成本主要是人员投入所需要的费用,非人力成本主要包括差旅费,通讯费,招待费,场地费,采购服务费,分包费,软硬件费用等构成,具体包括哪些费用要结合项目实际情况来确定。
图10
间接成本,主要包括分摊水电费,研发设备折旧费,售前及分摊前经营费用,其它费用。
图11
而在所有费用里面往往人力成本占了80%以上的比重,怎样才能准确的评估出人力成本至关重要。评估人力成本的主要方法是从高级方案着手,然后用WBS拆分高级方案得到具体功能点,接着按功能量基线评估出功能点工作量,最后结合项目路标交付综合得到预估工作量。
举一个例子
【项目背景】
朋友厂家承接了一个海外大客户订单,该客户对产品质量要求很高,其中有两条要求。
1.记录产品生产过程每道工序在什么时间,谁负责,经过那条流水线和记录当时的测试数据。
2.扫描或输入条码就可以把整个生产过程的数据信息(包括测试数据)都能直观展示出来
现在是2月份,希望11月份能局部试用,12月份能全面试用要做这样的一个项目,要预算成本。
【评估预算过程】
1.首先需求分析师/产品经理/架构师根据项目委托方给的项目信息编写高阶方案。
图12
项目高阶方案从用户的使用角度把客户需求实例化图形显示,模块化。
图13
2.根据高阶方案把功能再次分解,例如高阶方案有一项功能是支持工位数据采集,这项功能可以分解成工位基础设置,设备设置等功能。等到所有高阶方案功能都拆分成详细功能后就可以用工作量基线库算出开发需要的工作量,然后再根据工作量换算成对应的人工成本预算。
图14
3.工作量评估
对于工作量评估不少企业都会很困惑,往往评估出来的工作量和实际工作差距偏差太大,有什么好的办法可以更准确的评估出工作量呢?
这里给大家分享下华为的做法。我所在的部门是基于工作量基线库评估工作量,什么是工作量基线库?工作量基线库可以是一个系统,也可以是一张excel表。我们的架构师分解工作任务后,就对照工作量基线库找到对应的工作任务对应的计算方法来计算工作量。基线库里面列出能开发的所有任务类型的标准工作量,不同复杂度工作量计算方法不一样,复杂度一般分为简单,中等和复杂三种难度
l 简单难度如1条javascript或几句简单的逻辑代码;
l 中等难度如需要查询数据库,对数据进行加工转换;
l 复杂难度如需要调用第三方接口,获取数据后,对数据加工,之后再对数据回写接口。
对于简单,中等,复杂都有明确的定义,具体说明会在复杂度列中注明,如下图所示。具体计算方法在工作量列也都有注明,如简单的工作量是1乘以n,中等难度7乘以n, 复杂难度12乘以n,n是指有多少个这样的类似功能接口。例如要实现2个接口,第1个接口是上 文件数量,第2个接口是上 文件的下载数量。按简单难度计算工作量1*2等于2人天,按中等难度计算工作量7*4等于14人天;按复杂难度计算工作量12*2等于24人天。
架构师计算出新特性开发工作量后,再计算安全送检的工作量。送检的工作量等于新特开发工作量乘于20%作为这个安全送检工作量,最后再加上1人月的版本发布工作量。所谓版本工作量就是发布时候的要做的工作所花的工作量,一般发布包括了准备发布材料,走发布申请流程。
工作量基线库如下图:
图15
基线库的标准工作量来自实施部门,业务部门的专家评审和历史经验数据,一般1个季度会重新审视刷新1次,一旦确定下来就按基线库的计算方法计算,如果有歧义要等下次迭代更新。主要由开发行管负责组织维护更新。
基线库评估工作量的流程是首先由业务部或者市场部把外部需求转换成项目的需求,然后分发给到研发部,研发部收到需求后架构师设计方案和根据基线库评估工作量,评估出来之后,然后参加RAT会议,RAT会议主要是评估方案可行性和工作量是否业务部门,实施部门,出资部门各方都能接受;这个RAT会议由评估需求工作量的架构师,研发专家,业务需求方和研发方管参加,评审通过之后就正式上 预算,如果不通过再重新评审。下图是基线评估需求工作量的工作流程。
图16
三、怎样控制好预算?
想要控制好预算,对团队内部而言主要是控制好项目过程,使得项目结果跟预期一致,这样就没有返工,没有延期,投入的成本就不会超支。控制项目过程主要聚焦控制好工期,范围,质量,人员进场和人员流动性,要想办法保证项目在工期内完成,不要超出范围,要按质量去交付,合理安排人员和在项目人员尽可能保持稳定,不流动。
首先,控制工期可以保证成本。因为每天都需要支付员工工资,每延期一天就超支一天的成本,所以不要超期;
其次,确定范围可以保证工期。控制项目不要超出范围,如果超出范围就必然增加人员投入或延期交付才能满足新增加的交付范围,这会导致成本增加;
再次,保证质量可以控制成本。如果交付的内容没有达到质量要求,交付不合格,那么就势必会返工,这样会严重超支,也会导致可信度下降,口碑受损,应该尽量避免质量没达标;
从次,合理的人员进场可以减少浪费。关于人员的进场也要注意如果所有的人都同时进项目,可能会导致有些人员闲置,例如前期做需求分析,开发人员和测试人员可以不进场,因为那时候方案都还没确定,进场会让开发人员和测试人员无所事事,浪费资源,成本也增加,应该要根据研发计划节奏,如下图,合理的安排人员进场。
图17
最后,减少人员的流动性可以减少成本。要注意人员的流程性,尽量避免进入项目后的人员流动更替,因为所有岗位都需要学习成本,都要花时间了解岗位的工作和项目任务情况,人员的流动会增加成本,关键人员岗位的流动,还会导致项目延期,项目失败,所以对人员流动管理也是至关重要的工作。
图18
以上是内部团队的管控,有时候项目的成败不仅仅是管好内部就可以达到预期目标,我们还要管理好项目的外部人员,通常做项目要兼顾三类人,一是用户代表,二是供应商代表,三是商业代表。
图19
l 用户代表指的是提出需求的一方,可以是一个人或几个人,他代表出资方的利益,他关注的是产品成本,定好的成本再跟他们要多一分钱都很困难;他关注产品的质量,产品好不好用,能不能解决问题,如果不能解决问题或不好用,他就可能不埋单或对实施方提出更高的要求;他也关心什么时候能用产品,如果超了时间还没能用,那么他会不满意。
面对用户代表的需求,项目经理要控制好他对产品质量的期望和交付时间的期望。在质量期望上,在项目开始之前项目经理要降低用户代表对产品的质量要求,什么功能可以交付,什么不能交付,什么硬件需要客户方自己解决都要项目开始前谈清楚。在时间期望上,努力争取能多谈些研发时间,给内部团队充足的研发时间。并且在项目
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!