本文是敏捷外包工程系列的第二篇。(之一,之二,之三,之四)

敏捷开发整体上适合小团队、产品研发(所以才有product owner一称)的环境,而外包软件开发中常常存在的则相反,因此在创建团队的时候要充分认识到这一点。


Product Owner产品负责人的人选

听到无数次有人说“我们的Product Owner就是客户,因为所有需求都是客户提的”,其实这样做极度危险。

Scrum开发理念提出前的环境大致如此:一小群开发人员(3~9人),内有项目经理发号施令,外有销售人员指手画脚,团队加班加点苦不堪言。因此Scrum提出了要自组织的概念,接下来发生的故事大致如此:自组织需要代价;结果导致分权;开发组获得的权力是计划与技术;开发组放弃了需求管理权。剩下的是,谁应该得到需求管理权?

在产品研发环境中,这一职责自然地落到产品经理(或其他类似职责)手中,他们将与市场、客户、高层沟通,完成需求管理工作。

在项目开发环境中,由于没有为需求负责的产品经理,所以大家自然而然地想到了客户或销售人员。

其实,Product Owner负责的不只是把需求说出来,还应该为需求背后的商业目标负责,而这一点客户或销售人员做不到。

完整地解析Product Owner的职责,将包括:

1. 描述需求

2. 为需求排序

3. 为客户价值负责

4. 为客户群价值负责,即长期、广泛的客户价值

5. 为由满足客户价值而带来的乙方企业商业利益负责

客户或销售人员可以实现123,但对45则不会当作首要驱动力,极易出现问题。单个客户会因为过于突出自身利益而伤害企业的的其他客户,销售人员则会因为过于关注自己负责的客户而伤害企业的其他客户,并进而影响其企业的整体利益。

鉴于这个是软件外包中存在的主要人员问题,下面将以主要篇幅加以描述。

为了满足对45的管理,以下人员适合担当PO:

1. 乙方的项目经理

其工作方式是与客户沟通需求,确保正确实现客户价值。但其绩效应由企业判断,也就是说“通过实现客户价值,带回来多少企业收益”是其主要考核点。

其工作心法受到两方面制约:一方面要满足客户保证收款,一方面要保证利润率。

以往一般的做法是销售/开发割裂开,前者从合同总额提成,后者没有提成只对进度质量成本负责。结局是如果本来100万能做的单子被签成50万,销售人员仍然有提成(个人认为把两个100万的单子都当50万赔本卖掉,比把其中任何一个100万卖掉的难度都小,再加上“100万”这个数字谁也无法检验,这导致销售人员的心法越来越倾向于前者),而项目经理则几乎只能面对失败。

合理的做法,是以各种方式将两者的责权交织一下,交织的方案试情况定,下举两个实际例子。

A. 某电信研发企业

其销售绩效机制不明(当时笔者没有问);项目组拥有X%的合同总额作为奖金。

其运作方式是以季度为结帐周期,每月商讨需求,配合功能点报价作为内部工作量计算的参考依据。由于采用短周期交付,项目组比较容易逐渐建立“生产率”的概念,即使这种生产率不是准确量化的,所能提供的参考价值也能保证不会出现太大的偏差。这里提到的“太大”的偏差包括准确性上的百分比偏差,也包括合同总额的巨大偏差。

为了保证短周期交付,他们采用敏捷开发方法

点评:未来软件开发将更多地向服务而非技术项目转型。前者将更多地使用连续式的交付方法,需求将更多地逐步被发现而非一次发现,在此类项目中实施敏捷将是一个趋势。在一些业务变化很快的领域如电信行业,这已经成为现实;银行业在迈进(尽管他们从来不提“敏捷”二字);政府项目处于落后状态,有其政策变化不会太快的因素。

B. 某产品+实施企业

其销售与项目经理合二为一。绩效机制是从净利中提成X%,需要扣除各种实际费用和实施费用(包括实施和售后的人工费用)。若提成已经全额提取,而又发生了费用,则记账在下一单中。

其运作方式是销售全程乃至在实施完成后仍关注客户和项目,一则需要客观地推测实施所需成本(可比照为研发所需成本),二则“下一单记账制度”促使他们不断促进客户二次采购产品或服务以平掉费用。

点评:在项目合同洽谈的早期如何估算项目是个难题,这家企业也不例外(实际上国外已经解决并且应用地很好,国内也正在制定国标,在以后的早期估算篇中详述)。但即使没有量化的方法,当制度设置合理,其导致的心法也将起到很大作用。因此切勿因为没有方法而一“叹”了之。或者反过来说,无论你用什么精度的神奇方法,如果销售的心里一心想的就是把100万弄成50万卖掉,这个神奇方法就一定会失败。

2. 乙方的部门经理、区域经理、行业经理

这些人不适合担任一线PO就是负责需求收集与传达的人,而是适合组建PO团队(在139团队系列中有描述,本博文完成时尚未编写),并担任其团队领导。

常见的情景是销售人员或项目经理都希望将自己的项目重点对待,多投人多投力,或者为自己的客户多制作一些免费的“开拓性功能”由公司承担成本等等。这时候需要更高一个级别的人来把控。

此人必须站在更高更广更长期的位置来把控走向,因此为其设置的绩效也往往更长期,乃至将其职位的升迁作为主要绩效回报方式,由于外包企业组织庞大,这种方式往往可行。


 Scrum Master人选

1. PPQA过程与产品质量保证人员

如果是产品研发,我会推荐项目经理,但在外包企业中,往往有上百乃至上千的项目经理,让他们能以统一的方式运作项目是非常困难的,甚至连培训的费用都很惊人。

很多项目经理还会拿敏捷方法对抗原来的CMMI方法,造成矛盾。

PPQA是原来CMMI体系下的角色,人员配比一般为1~2%左右比项目经理少很多,如果让他们同时了解CMMI和敏捷,会对公司制度贯彻带来极大便利。

如果公司没有过CMMI,但也有过程改进人员,则一样适用。

风险在于做CMMI的时候一般心法都比较“死”,常常喜欢条文化、制度化,而忽略了实用化。因此PPQA的组长(或其他更高负责人)的要求很高。

“找不到这么好的人怎么办?”这是个公共困难也没有太好的答案,唯一提示是内部培养永远比空降更好。这并不是培养世界级的科学家的过程,2~3年足以。

2. 项目经理

小公司或重点项目可以考虑。


团队

这个和产品研发基本一样,唯一的问题是有时规模较大,人员流动率高,还有一人多项目问题。

1. 大规模团队

请参考139系列文章(本文编写时尚不存在)。

“松结对编程”系列部分地解决了这个问题。

解决思路是靠师徒制度来维系较大团队的沟通问题,并依靠其学习机制促进团队的扩张。

2. 人员流动率高

“松结对编程”系列部分地解决了这个问题。

解决思路是尽量保持组长/小组长(师傅)的稳定性,他们人数较少,给以较高工资比较可行。另外“成为技术主管”的需求被满足,也可换取更长的留任期。

3. 一人多项目

很多企业都有的问题,但实际上是一个很差的实践,尤其在没有建立项目群管理的时候。

简单的数学计算是:倘若10个人参与10个项目(每人都参与每个项目)需要10个月让所有项目同时完成,则如果让他们10个人同时负责1个项目,待完成后再进行下一个项目,则不用10个月所有项目都可以完成,因为减少了“思路的奔波成本”。当然这是理想情况,因为如果换成100个人100个项目,总不能让100个人同时负责1个项目吧。

解决之道之一是尽量保持正在启动项目的数量不要太多。在故事板的应用中就有一个最佳实践:同时开工的故事数不能太多,做完一个再做一个,因为会分散精力。项目的尺度比故事大得多,问题也会更严重。很多时候会被所谓迫于压力而提前启动项目,则合理的顺序是先让139团队的组长进入,其次安排小组长进入,最后安排组员进入。这样组长/小组长就可以被认为“长期呆在此项目中”,而不会面临太多切换问题。组员的工作相对深度较小,受到切换的影响小。

解决之道之二是尽量保持高手的稳定性,比如每个高手可能只串1~2个项目,在他们忙的时候可以申请新手帮忙,这些新手则可能串更多的项目。高手的注意力集中了,项目的质量、进度都有保证。早期微软曾经做过测量,发现稳定的团队比临时团队的效率高50%,换言之即使稳定团队每工作一年闲着半年,也比让他们解散分散到其他团队强。在外包公司闲半年是不现实的,但是保持核心骨干的稳定还是可行的。


外包工程人员结构的核心是Product Owner的人选,必须认识到PO是企业和团队的一员,他从技术上到需求上到商业目标上,都应该是首先服务于企业和企业利益,其次服务于客户和客户价值,并通过后者来成就前者。

由于人数众多而且多数在CMMI体系下已经建立了管理方法,推荐外包企业将原有CMMI过程改进人员培养为Scrum Master,以便于将CMMI与敏捷完美结合。

“一人多项目”的问题可通过团队的层级结构来解决,应尽量保持组长/小组长不要太过频繁切换。

其实在选定人员之前就早应该解决的问题是:敏捷鼓励变化鼓励创新,但倘若我在做一个定额定期定需求的项目,敏捷开发到底有用没有?这是下篇要讨论的话题。

点击下载免费的敏捷开发教材:《火星人敏捷开发手册》

转载于:https://www.cnblogs.com/JPAORM/archive/2011/07/21/2510480.html

敏捷外包工程系列之二:人员结构(敏捷外包工程,敏捷开发,产品负责人,客户价值)...相关推荐

  1. 银行项目外包专题系列之二:公司没提升打杂,裸辞后收到银行外包,到底去还是不去

    有小伙伴反馈: [在上一家公司觉得没啥提升,整天忙着打杂,裸辞了,现在收到了银行外包的Offer,觉得银行外包可以去吗?] 这里说一下我对于这个问题的看法和理解,这个问题也是目前很多年轻人的现状和出现 ...

  2. 银行项目外包专题系列之一:经常遇到的外包/驻场/实施/To B/POC这些概念

    最近发现很多未毕业的学生或者已经毕业的同学在银行项目工作或者最近找不到合适的工作,只有外包公司来招聘自己去银行工作,但是自己对这个行业存在很多困扰和焦虑,于是准备写几篇这个文章进行分享. 今天分享一下 ...

  3. Myth源码解析系列之二-项目结构介绍

    上一篇我们了解了myth是什么及能做什么,下面我们来了解下项目主体结构吧 项目工程结构图 项目工程详解 myth-annotation myth分布式事务框架注解(如 @myth注解),业务层主要通过 ...

  4. HTML(一、语法规范,二、结构标签,三、开发工具,四、HTML常用标签,五、注释和特殊字符)

    文章目录 前言 一.html语法规范 1. html基本语法规范 2. 标签关系 二.基本结构标签 1. 第一个 HTML 网页 2. 基本结构标签总结: 三.开发工具 1. vscode工具的创建工 ...

  5. 成员函数 静态变量做默认参数_Scala系列 (二)Scala的独有特性提高开发效率学会之后玩转函数式与OOP!!...

    写在前面: 我是「nicedays」,一枚喜爱做特效,听音乐,分享技术的大数据开发猿.这名字是来自world order乐队的一首HAVE A NICE DAY.如今,走到现在很多坎坷和不顺,如今终于 ...

  6. 以太坊系列(二)---Ubuntu20.04安装以太坊开发环境并建立私有链

    目录 安装版本说明 环境搭建 搭建以太坊 安装Nodejs 安装Solidity 安装Truffle 以太坊开发 安装版本说明 Ubuntu版本:20.04 Ethereum版本:1.10.1-sta ...

  7. 面试系列(二十):金山云 C++开发

    一面 1.C++中的继承,在祖父类.父类和子类这样一个场景中,子类对象的空间构成? 虚函数给对象空间造成的影响? 虚函数表的组成? 2.手撕代码 一个数组,其中元素有正有负,求最大子段和(连续子数组的 ...

  8. 2022年陕西工程系列中级职称评审通知

    各区县(开发区)公共就业和人才服务机构.有关行业协会.有关单位.存档人员: 根据西安市人力资源和社会保障局转发<陕西省人力资源和社会保障厅关于进一步做好全省民营企业职称工作的通知>规定,按 ...

  9. Camera开发系列之二 相机数据回调处理

    章节 Camera开发系列之一-显示摄像头实时画面 Camera开发系列之二-相机预览数据回调 Camera开发系列之三-相机数据硬编码为h264 Camera开发系列之四-使用MediaMuxer封 ...

最新文章

  1. linux shell 三种自动交互 方法
  2. Imagine dragons Dream中文歌词
  3. nyoj 791 Color the fence(贪心)
  4. Middleware trace tool SMWT
  5. vue学习之路.02
  6. js对象数组计算总计_如何计算数组中的对象
  7. Windows下redis使用及安装
  8. 15K薪资轻松到手,要低调~
  9. idea 导入spring 源码 踩坑记总结整理
  10. 自己设计完成的一个小区停车管理系统
  11. Python入门50个小程序
  12. 在三层交换机上配置Trunk并指定接口封装为802.1q
  13. Android开发:LocationManager获取经纬度及定位过程(附demo)
  14. Life Long Learning论文初探————Online Fast Adaptation and Knowledge Accumulation(OSAKA)
  15. Java实现微信小程序支付(支付,提现,退款)
  16. 阿里云时空数据库实战:数据入库与导出
  17. Linux安装Phantomjs
  18. 基于树莓派CM4的三千兆+USB3.0扩展板硬件介绍
  19. 银河娱乐集团 2020 年第三季度未经审核之财务数据
  20. 华为模拟器eNSP安装步骤

热门文章

  1. SHELL编写NGINX自动部署脚本
  2. WWDC心愿单:新版OS X或将有这些变化
  3. Android studio快捷键大全 和 eclipse对照(原)
  4. android中拷贝assets下的资源文件到SD卡中(可以超过1M)
  5. 【Python笔记】网络爬虫——介绍
  6. Invalid bean definition with name ‘dataSourceCSS‘ dfined in class path resource[xxx]
  7. java为什么删除jpg删不掉_java-如何在不损失质量的情况下从图像(JPG)删除元数据?...
  8. 「报表开发者必看」避开这6个误区,报表才能好看又实用
  9. 报表性能优化方案之多种报表服务器内存修改方法
  10. 嵌入式系统是云服务器,一步步教你使用云端服务器yeelink远程监控