如果不去亲身经历几个外包项目,读者是难以想象这种“焦油坑”的恐怖。外包项目因为规模较大,涉众较多,在管理上往往更为复杂。本文,阐述外包项目的特点以及笔者的管理经验,希望能便帮助读者管理好外包项目。

1 项目中常见的问题

常见问题 现象
范围

需求难以冻结,处于“变更-修改-测试-变更”的死循环中。

质量

文档质量问题,如:关键文档缺失,没有能按照统一要求编写文档;文档内容前后不一致,有歧义,预期读者无法理解,文档版本与代码版本不同步等。

编码质量问题,如:不遵守编码规范,可读性差难以维护魔数泛滥,关键代码无注释,代码检查出现大量警告,滥用语法导致性能瓶颈等。

系统质量问题,如:不写验证,安全漏洞,异常频发,内存泄漏,日志缺失,不支持大量用户,运行缓慢等。

成本

前期成本估算误差较大,缺乏足够依据。

后期没有对成本进行量化分析。

进度

项目经常延期或者是匆匆上线。

外包项目中凸显的一些问题 现象 解决方法
前期准备不足

需求质量问题,如:遗漏需求,需求不明确,需求描述前后不一致,需求存在歧义等。

开发环境问题,如:配置管理、开发、测试、Bug跟踪、项目管理等环境搭建无法满足工作需要。

流程问题,如:是否已经建立了周知的工作流程,是否已经具备了相应的范本、检查标准和公约。

尽快梳理需求,搭建环境,建立项目所需的最基本的生存环境。

制定计划时,充分考虑到这种情况,识别潜在风险,预留足够的风险储备。

人际关系复杂

干系人数量庞大,其需求各有不同,可能存在需求之间的冲突。

涉及多个供应商、提供商,项目进行中会有开发团队之间的矛盾冲突。

在人员混编团队中,会发生外部人员难以管理甚至罢工的可能。

必须明确掌握核心干系人的职位、职责和角色,加强沟通,做好干系人关系维护。

遇到问题要协调多方负责人协调解决,不要带感情色彩。

资源问题凸显

人员储备不足,开发用机器配置较低编译缓慢等。

外部人员能力参差不齐,且难以管理。

人员离职频繁,资源严重不足。

尽量参与到人员招聘中,对能力不达标的在职人员进行培训,尽量不要劝退。

磨刀不误砍柴工,必要时,申请合理的硬件资源。

在进度计划里安排单点技术的交叉培训,以应对该人员离职时的冲击。

PM没有足够权利

受制于多个上级领导,对甲方决策无力抗争,对项目组内的甲方人员难以管理。

和领导搞好关系,加强沟通,自己权限外的找负责人解决。

地域和文化差异

封闭开发时的伙食问题,如:上海人不爱吃辣的,回民不吃猪肉等,这些问题他们都会找PM。

沟通问题,不同地区语言文化差异,尤其是远程会议时,可能会在理解上有阻滞。

及时和甲方沟通团队成员的合理诉求,要敢于维护团队的利益。

认识到理解上有疑惑时,及时沟通,不要碍于面子不去张口。

加班

加班导致离职。

加班导致士气低下。

加班导致消极怠工。

加班导致代码质量低下,Bug频发。

加班会导致疾病甚至过劳死。

合理的安排赶工,对不合理的要求说“不”。

尽量为加班程序员争取利益。

身先士卒。

合理安排计划,预览风险储备,尽量做到在节假日不加班。

需要PM参与设计和开发

PM想要扮演架构师和程序员的角色。

优先完成关键路径任务,利用碎片时间参与其他非关键任务。

  

2 项目管理经验总结

  • 促成一致意见 多数外包团队看中的是程序员编码能力,而不是合作的能力。PM需要做两件事情:第一,确保讨论不要被一个人或一种言论所支配,当然共识的除外;第二,帮助不敢发言的人或说不清楚的人表达他们的意见。PM大多时候需要促成团队的一致意见,如对编码规范,周知的项目组约定等。促成一致意见需要轻度的领导,高压政策下的一致意见,不能反映出团队的意愿。PM在促成一致意见时最重要的是保持中立。需要知道,集体的决策比从集体中的个体独立做出选择更具有风险倾向。如果将这种决策模式应用与软件项目,很可能会看到这样的结果:更复杂的结构和算法、过度的质量、过度的扩展性考虑、范围浅变等。这是因为开发者并不会考虑项目的整体维度,而只会关心编码。因此,对于PM促成一致意见,不等同于从众或折中,有些时候单独的做出决策才是对的。因此,并非所有决策都倾向与群体决策,群体决策会产生一种负面影响,即——个人贡献和能力将降到最低。作为PM应该,清楚这种负面影响,并为团队营造一种鼓励和支持“创新”的大环境。不要让团队中形成小的团体对立,这样,任何人的出头行为都很招致小团体成员的怨恨。这种现象在外包团队更为明显,因为可能源自不同公司,会不同时间入职。不要让这种风气在团队中成为主流。另外,不要轻易的折中,因为折中往往会失去亮点。
  • 明确优先级 PM必须面对现时,项目是技术和经济结合的产物,受制于多方制约,需要综合分析这些制约因素和用户诉求,制定合理的优先级。
  • 为团队争取好的办公环境 外包团队的工作环境通常比较恶劣。IT业公认的:更安静、更宽松的工作空间对提高编程效率有作用。如果能够让团队整体在一个独立区域办公应该是极好的了。但我们也得面对现时,外包团队不会有很好的待遇,因为,至少作为PM我们应该争取不要让团队分散,因为那会提高沟通成本,和沟通中的噪音。另外,被分出去的开发者会感到孤立,进而与其他人员疏远,长期下去不利于团结成员间的协作。
  • 让开发人员少受打扰 编程是一种耗费脑力的持续活动,开发者不喜欢被打扰,愿因很简单,打断思路会影响编码。所以,很多时候大家会听到程序员抱怨说“我不是网管”。在外包团队中,打扰就不那么简单了。程序员与关键用户的比例是极其悬殊的,开发者会经常被打扰,解答各种无聊问题,甚至和甲方闹矛盾。这不是个好现象。PM需要做两件事情:第一,明确角色职责,并让甲方人员清楚,有问题了该找谁,不要一个问题在团队中踢皮球;第二,明确向甲方表示,投诉直接找PM,走投诉流程,别单独去和开发者理论,如果矛盾激化,之后很难处理。
  • 管理牛仔 无疑的,牛仔程序员是能力很强的,但却缺乏团队合作概念。牛仔程序员如果放任不管,那么他往往会写出别人难以理解的代码。他们特立独行,不愿与人合作,并且喜欢在代码中烙印自己的风格。虽然程序员们都有强烈的性格倾向,但牛仔显然更加突出,他们往往不是那种喜欢与人交往的类型。牛仔程序员具有以下特点:他们反对任何形式的标准、约束和规范,不喜欢受他人的监控,也不喜欢和他人协同开发。追求创造性多过考虑软件可用性、可靠性和成本。外包团队中,不要去尝试改变牛仔程序员,这不是短期能做到的。牛仔对团队是否有益,取决于PM。好的实践是:第一,将整个工作分解,把相对独立的、具有挑战性的工作分配给牛仔。这些工作应该尽可能独立,与其他工作之间只存在简单的接口,不需要与其他人员频繁的沟通;第二,对他们的工作进行监督,不能忽略这些牛仔的存在;第三,不要用领导的口气当众压制牛仔,因为他们往往固执己见且自负,最好在私下约谈。

转载于:https://www.cnblogs.com/MeteorSeed/p/3721760.html

软件外包项目管理指引相关推荐

  1. 软件外包项目管理的经验感悟

    自2003年参加工作至今,一直在参与软件外包项目.从程序开发人员到设计人员,再从设计人员到项目组长.项目经理,风风雨雨走了将近8个年头. 这期间经历了大大小小数十个项目,对项目和项目管理的认识也从无到 ...

  2. 软件外包项目管理实务

    笔者过去曾经与一流的北京.NET好手及台湾Architect共创梦幻团队,来成就企业主的跨国信息系统,这期间考验了团队每个成员的沟通能力.弹性程度.设计能力.实作能力及测试能力,透过同步设计(Co-D ...

  3. 软件外包项目管理4 - 项目计划

    项目启动,一切准备待发,下一步走向何处? 项目计划:指导项目的实际执行. 什么是计划?计划是内容.目标.行动方案的集合体,是执行过程中控制与管理的指导和原则. 项目管理计划包括需求.范围.进度.成本. ...

  4. 软件外包项目管理5 - 项目实施

    项目准备(筹备)- 项目启动 - 项目计划,万事俱备,开干. 实施,按项目需求进行需求.设计.编码.测试.交付,标准的流程和过程. 从项目角度看,软件外包项目与一般性的项目在实施阶段并没有实质区别,每 ...

  5. 软件外包项目管理7 - 项目监控

    如果需要监控才能做好的项目是什么样的项目?监控是目的还是手段? "监控"让人不舒服,监控为什么必须执行?监控在做什么? 项目监控活动的目的是实现项目目标: 项目监控活动的标准是项目 ...

  6. 软件外包项目管理6 - 项目收尾

    九九八十一难,只差最后一哆嗦. 软件外包根据客户和分包商不同分为在岸(online)外包和离岸(offline)外包,因特网的发展让沟通无地狱边界,外包项目的管理普通项目的管理的差异越来越小:语言.习 ...

  7. 软件外包项目管理3点体会

    目前,软件外包在软件出口中占有很大的比重.一个外包的软件出口项目通常要配合国外的设计进行开发,但由于国内外软件企业在文化.管理上的差异较大,因此在管理方面,就不能完全采用一般项目管理的模式,笔者认为以 ...

  8. 软件外包开发项目管理工具

    随着软件项目的规模越做越大,项目管理人员需要使用工具管理项目进度,从而更有成效的管理好软件开发进度.软件开发的进度管理工具有很多,今天和大家分享一些常用的系统工具,希望对大家有所帮助.北京木奇移动技术 ...

  9. 一个一直没想通的问题:为什么印度的软件外包能比中国强那么多?这应该是中国人的强项啊...

    由于工作关系,我与印度软件工程师一起工作过,最大的印象就是他们的英语发音很奇特啊,不管是和英式还是美式英语都不大搭边啊,虽然我的口语不算太好,但是我还是能明显感觉出来他们的口语比我差一截啊,这也是英国 ...

最新文章

  1. ubuntu 安装redis
  2. 深入了解Intel保护模式
  3. python教程是用什么博客写的-Python 有哪些好的学习资料或者博客?
  4. 网工必看,万字网络排错笔记
  5. android 7.0 解锁亮屏,Android7.0亮屏流程分析
  6. Problem C: 结构体---点坐标结构体
  7. 为什么用Spring来管理Hibernate?
  8. php递归简单例子,php递归json类实例
  9. python判断、创建文件夹
  10. cesium入门示例-3dTiles加载
  11. JQuery 为radio赋值问题
  12. Linux脏牛漏洞提权复现
  13. java插件已崩溃怎么处理_java.lang.IllegalArgumentException:插件已初始化
  14. pycharm:Updating Indices 解决办法
  15. Scala入门小纸条(3)
  16. matlab 读取bin文件显示图片
  17. eBay Android app 最新,ebay国际版app下载
  18. 关于Windows聚焦一直保持一个图不变或者不显示
  19. 爬虫实战——求是网周刊文章爬取
  20. 又一批大学!考研成绩延期公布!

热门文章

  1. 当豪车遇上科技:Aion LX旗舰开启预售
  2. D. DS哈希查找与增补(表尾插入)
  3. 32位Win7下安装Ubuntu 16.04
  4. 阿里云ECS服务器和域名购买以及备案注意点
  5. linux cxf服务端,cxf linux问题
  6. JavaScript中的innerHTML使用
  7. k8s-问题:[root@master log]# kubectl get node The connection to the server 192.168.0.105:6443 was refus
  8. Zabbix 报错:Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refus
  9. 2021年中国机场显示系统市场趋势报告、技术动态创新及2027年市场预测
  10. clearInterval清除定时器失效的原因