敏捷外包工程系列之四:外包与敏捷开发专访(IIOM独家专访)
本文是2012年05月初IIOM(国际外包管理学院)的专访。传统认为敏捷开发是面向产品研发的,在外包项目里边比较难用,因为需求由客户牵制,而“拥抱变化”极有可能导致项目延期超支,等等。
本文提及了敏捷开发对外包项目的帮助,以及如何利用功能点估算和度量防止出现超支。
原文位置:http://www.int-iom.cn/int/members-area/2011-11-23-02-00-48/item/328-cy-zf
欢迎报名参加2012-06-01的相关研讨会,联系方式在上述链接的末尾。
原文拷贝:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
陈勇:外包与敏捷开发专访(IIOM独家专访) 推荐
陈勇老师作为国内外包与敏捷开发专家,具有丰富的工程技术与项目管理实践经验,擅长在各种实际场景中灵活运用各种实践,并可提供敏捷开发、早期软件成本估算等公开课、扩展咨询和实践指导活动;曾参与多种模型的实践/咨询和培训工作,如CMM/CMMI、敏捷(Scrum)、功能点FPA、早期软件成本估算等,并能将多种模型融会贯通。
日前IIOM独家专访国内外包与敏捷开发专家陈勇老师,以下为采访内容:(问:IIOM记者 答:陈勇老师)
问:最近越来越多的海外发包商在在招标时要求供应商具备敏捷开发的能力,您怎样理解这一趋势?
答:这一趋势,首先表明海外发包商在寻找新的供应商的时候更加谨慎,希望利用敏捷开发的短期迭代来及早判断供应商的能力;其次表明他们对于利用敏捷开发中的尽早交付来保证项目不会中途被取消;最后还应该归于越来越多的外包应用发生在互联网、移动应用领域,其固有的特性要求快速交付产品。
问:为什么之前的发包商更看重CMMI,而最近则很倾向于敏捷开发?
答:在大约10年前的外包中,主要的发包商是类似美国国防部之类的大型政府企业、制造业,而开发的软件也比较大,因此出现了一批与之对应的大型外包企业如印度的InfoSys等,而这些企业凭借CMMI来证明自己的实力,也就不足为奇,因为CMMI本质上说是美国国防部对供应商的招标的资质标准。
而最近的业界趋势,则是移动互联网、SNS等应用,这些应用的价值观不是“有序地开发”,而是“迅速、创新地开发”,业务上的差异造成了更加追求短周期、持续交付这些敏捷开发的价值观。
问:上面说的都是甲方的需求,作为乙方,尤其是中国的乙方,能从敏捷开发中获得什么呢?
答:首先是机遇。以往有印度、菲律宾这些外包大国围绕,中国的外包很难开头,因为很多发包商都觉得中国是个“陌生的市场”,与其承担巨大的风险,不如继续与传统外包国家打交道,尽管其成本在不断上升。敏捷开发的快速短期迭代,使得发包商的“试水”工作变得不再那么可怕,这是我们打开外包渠道的一次机遇。
其次是更丰厚而合理的利润。在以往,由于中国本国的发包方多数比较强势,中间追加需求而不增加金额的情况非常普遍,而国外的发包商相对通融。比如我就去过有一家欧美外包企业,他们曾经因为甲方变更负责人而发生了很多的需求变化,但最后双方核实后,追加了相应的金额。
问:追加价格的时候,如何核实数额呢?
答:这个就要谈到报价模式。
在国外用功能点报价已经逐渐是一个常态了,澳大利亚、芬兰、荷兰、意大利、日本、韩国等国的政府招标,很多都是采用功能点报价。尽管在中国鲜为人知,但在全球有多达6000人的CFPS(认证的功能点专家),在从事各种报价和度量活动。
功能点方法迄今为止已经形成了5个ISO国际标准,其核心思路是:利用一个公认的方法来衡量软件的规模,然后再乘以单价,来测算项目的报价。这个可能不符合国内外包中甲方先有预算后招标的习惯,但是却很符合海外发包商的相对单纯的“商品交易”的心理。
比如就曾经有海外发包商要求接包方报价,并必须说明报价的依据,结果国内无一企业能做到。失利的原因是多方面的,其中一个方面是当时没有可行的方法能在项目早期快速从有限的客户文档中判断项目的规模。
针对这类问题,后来我主笔编写了造价估算的行业协会标准,引入了NESMA(荷兰的功能点组织,同时也是世界第二大功能点组织)的快速功能点估算方法,在国内发包的项目中做的测算是每一人年左右的工作量仅需一张A4纸即可描述清楚,培训后每人天可完成4000~6000功能点需求的估算(大约合20~30人年的开发量),20多个历史项目的回归数据表明其精度在15~20%左右(大于和小于此数据的项目数各占一半)。
问:敏捷开发与这种造价管理有何关系呢?
答:尽管在项目初期只凭借几十页纸能完成20~30人年开发量的估算已属难得,但15~20%的误差对于固定单价合同还是有点粗糙。最佳方法,是与客户签署固定单价的合同,然后在几个短周期迭代后,定期实际计数一下功能点的数量,与用户结帐,这样非常适合长期项目的阶段性结帐。
尽管听起用 单价×实际功能点数 = 总价 结帐很不可思议,但实际上澳大利亚政府就是用这种方法,只是他们并不要求迭代交付;芬兰政府的一些项目也采用类似的方法结帐。北欧最近一直在推行Northen Scope方法和工具,目的就是为了推进按规模估价、结算的方法。
如果配合敏捷开发方法,在一个或多个短周期迭代后,按交付的功能数量进行结算,则无论对甲方乙方都是有利的。对甲方而言,可以按照乙方实际完成的功能结算,因而无需事先定义完整的需求(在移动互联网行业几乎是不可能的),而可以中途提出新需求;对乙方而言,新需求也是付费的,“拥抱变化”成为一件有利可图而非避之不及的事情。
在这种新语境下,合作从僵硬地“履行合同”变成双方一起思考:哪些需求是值得开发的?有什么新需求胜过之前的计划因而能提升市场竞争力?这些正是甲方的利益所在,而乙方通过对甲方这种利益的满足,自己也能赢得客户。
陈勇老师6月1日将在北京进行敏捷技术的专题分享培训课程,敬请关注!http://edu.int-iom.cn/yanxiuban/
报名联系方式:
0510-81010237