“外包”,这个词绝对可以被收录到2006年IT流行词之列,在今年的各大专业媒体上,这个字眼的出现频率出奇地高。2006年即将随着圣诞节气氛的渐渐来临而结束,盘点IT,盘点2006,业内风起云涌,变幻无穷,新技术,新思想,新动态层出不断。本文作者站在一个程序员的角度,面对业内汹涌而来的“外包”浪潮,与程序员和即将成为或想要成为程序员的读者朋友们共同探讨和分享业内形势和应对措施。

(一)  现状

全球产业结构的调整,特别是发达国家企业为了节约成本,尝试将企业的IT服务外包,促进了全球软件外包服务产业的快速发展,这也给中国创造了良机。预计2005-2009年,中国软件外包服务产业快速成长,整体市场规模将以40%的年复合增长率高速增长,2006年,中国软件外包服务产业规模(不包含嵌入式)将超过13.6亿美元。

目前,中国的外包市场呈现出以下两种特点:

“发包市场结构集中化”,即来自欧美和日本的业务,在总体中所占的比例将继续提高。国内的计世资讯研究发现,2004年,来自欧美和日本的业务占总体外包业务的83.9 %,预计2005年将增加到85.9%。一方面,随着欧美发包企业更多的在中国寻找合作伙伴,以及中国企业进一步开拓欧美市场,欧美发包市场的比例将继续提高;另一方面,日本发包市场规模仍将稳步上升,其上升步伐和2005年一样,但继续低于欧美发包市场。

“区域市场结构分散化”,即外包业务将逐步向国内二线城市转移,区域市场结构逐步分散,以大连、北京、上海为中心的东北、华北、华东三个区域市场的比例将下降。计世资讯的一份研究报告指出,2004年,东北、华北、华东三个区域市场合计的比例高达87.6%,预计2005年将下降到75%左右。随着中国软件外包服务产业的发展,北京、上海、大连等地的人才缺口进一步加剧,引起人力成本的提高。而外包产业的目的就是为了节约成本,其中最关键的因素就是人力成本。为此,国内外包企业将尝试在华中、西部等区域的城市开设分公司。

(二)  趋势

随着软件和信息服务外包产业进入迅速成长期,北京、上海、大连、深圳等一线城市已经很难满足整个产业发展所需的人才资源,产业加速向第二梯队城市转移,而天津、武汉、西安、长沙、成都、重庆等城市,有望成为外包产业发展的第二梯队。

外包产业的转移,最根本的原因在于更大程度的节约成本,软件和信息服务外包产业的形成,就是企业为了节约运营成本,而将企业IT外包所致。

一方面,外包产业的转移是由于一线城市低成本人才短缺引起的。外包产业迅速增长所需的软件人才数目巨大,单单依靠一线城市自身,很难满足。计世资讯预计2006年中国软件和信息服务外包产业增长率将再次超过40%,这对于北京、上海、大连、深圳等外包一线城市来说,是一个利好消息,但也将进一步加剧当地外包企业对低成本软件人才的争夺。例如,北京预计到2006年底,外包产业从业人员和上一年相比,将增加近一万人,而这里面绝大部分都是软件工程师和软件测试工程师,这对于软件人才本来就短缺的北京来说,难堪重负。因此,许多北京的大型外包企业纷纷在第二梯队城市开设新的分公司。2006年5月,神州数码在西安软件园的分公司开始运营,6月,北京博彦科技集团在天津新技术产业园开设了天津数据录入中心,而成都东软软件园产业区也将于今年全面竣工。

另一方面,外包产业的转移,也是第二梯队城市发展的需要。软件和信息服务外包产业,和“制造业外包”有些类似,对于人才的需求量很大,是解决当地人才就业的一个良方。另一方面,引入软件和信息服务外包产业,还可以优化当地的产业结构。因此,许多第二梯队城市纷纷出台各种优惠政策,从而吸引外包企业入驻当地软件园,开设分公司。例如,成都市就为发展软件和信息服务外包产业创造了良好的政策环境,相继出台了《成都市鼓励软件产业发展的政策意见》、《成都高新区鼓励软件企业在天府软件园聚集发展的扶持政策》,给外包企业免除部分税收,降低租金等。

通过以上的分析,相信读者朋友们已经对整个软件外包市场有了一定的了解。正因为软件外包市场正处于高速发展期,人才的缺口也越来越大。但是,目前人才市场上普通存在的供需矛盾依然存在:刚毕业的计算机专业人才到处奔波却找不到对口的工作;急需用人的企业到处搜索却找不到合适的人才。这种供需矛盾的加剧就促使了用人企业对在职人员的争夺:一方面,外包企业委托猎头到处搜罗在职人员的信息并进行游说;另一方面,在职人员所在的公司千方百计地想留住在职人员;于是,受惠的当然是在职人员了,薪金、待遇方面均有所保障;就算跳槽也可以得到不错的待遇。这也是我等程序员目前所欢欣鼓舞的事情了。

 

(三)如何应对

 

一、入门级攻略

1.心态,心态,还是心态

这包括了两部分的内容:工作性质和工作内容。

1.1 工作性质

软件外包不外乎于两种形式:项目外包和人力(HR)外包。欧美和日本的外包市场以项目外包为主,国内的外包市场以人力(HR)外包为主。项目外包开发流程和软件开发企业内部进行开发的流程相差无几,笔者想要说的是人力(HR)外包。人力外包要求接包方的开发人员要进驻发包方的开发团队,与发包方的团队一起进行开发。这里,就会出现发包和接包方的开发人员之间的区别。发包方的企业一般都较有实力,办公环境,福利待遇等方面都是较好的;但这些,接包方的开发人员享受不到。这之间的心理落差非常大,发包方和接包方人员的工作内容相差无比,但是待遇方面确有区别。笔者曾经有过这样的工作经历:因工作需要,笔者以人力外包的方式被派到了国内某大型电信运营商的项目组进行开发。上班的第一天,笔者与他们的开发人员的差别就非常明显了:笔者使用从仓库中领出来的破旧机器,机器配置差,显示器是球面的且有质量问题;他们的开发人员使用的是IBM品牌机,显示器全是清一色的液晶,且每人还配备了一台笔记本电脑。他们正式的员工可以无限制地上网查资料(或干别的),而笔者要上网的时候则必须去使用一台公用的机器并进行上网登记。种种迹象表明着笔者和他们开发人员之间的差异。通过笔者的了解,这种情况在人力外包过程中是经常出现的。发包方本着节约成本的方针需要人力外包人员进驻,当然相关的待遇不能和他们本身的开发人员相提并论了。

这种情况,心态很重要,不能因为外部环境的差异而影响了自己的工作情绪。试想,自己本身就不属于发包方的一员,又何必去在乎之间的差异呢?只要把工作做好,一切都OK了。况且,这样的情况是无法改变的,耿耿于怀也是徒劳。只有摆好自己的心态,全身心地投入到工作中去才是正道。这个时候,应该站在自己公司的角度考虑问题:发包方是我们的客户,不能因为客户方与自己之间待遇的差别而影响了之间的合作。越在乎与发包方开发人员之间的待遇问题反而会受到发包方人员的BS(鄙视);反之,则能为他们带来一种非常专业的印象。何乐而不为之呢?

1.2工作内容

大部分发包出来的项目是工作量大且相对简单的,或者是发包方将概要设计或者详细详细设计都已经制定好,只等编码了。还有一些项目就是对以前的不理想的代码进行重构。在欧美的外包项目中,文档是一块非常重要的内容,客户希望得到了一个质量有保证的项目,如何证明? 除了验收测试之外,开发过程中的所有文档都是证明。这与很多程序员期待的工作内容大相径庭:希望能亲身经历一个项目从需求分析、概要设计、详细设计的全过程,也希望项目中用到的新技术越多越好。这些都跟程序员中普通存在的浮躁心态有关。但在从事软件外包项目中,这种心态的存在会严重影响项目的进展。一屋不扫,何以扫天下?只有将已细化的工作内容做得完美,才能体现出程序员的价值。笔者的一个朋友在外包项目中只负责JAVASCRIPT部分,对于他的工作内容,我当时是不以为然且认为是毫无前(钱)途的。两年过后,出人意料的是,他已经是这方面的权威了,月薪也超过了10K,因为所有这方面的问题他都能迎刃而解。正是因为他当初良好的心态,才取得了今天这么好的成绩。

 

2.练好基本功

这一点,对于准备迈进程序员门檻的读者朋友尤为重要。正如以上所说,很多的外包项目都是一些简单的内容,但是,简单的内容并不代表没有什么可以着重考虑的方面。举例来说,对于新生程序员非常常见的一个情况就是在JAVA中,String和StringBuffer的使用。大凡JAVA程序员都知道他们之间的区别,但是在实际的开发过程中却忽略了StringBuffer的存在。只有在开发过程中,注意影响代码性能和瓶颈的每一个细节,才能在这样的外包项目中体现出程序员的价值。那什么是基本功呢?对于JAVA程序员来说,JDK API,异常的处理等等都是需要熟悉于心的。在弄懂这些基础知识之前,无需去熟悉SOA,EJB,事务处理等方面的问题。

 

3.具备良好的职业素质

什么是一个程序员良好的职业素质?每一个程序员心中都会有一个自己的答案。在外包项目中,笔者认为良好的职业素质就是具备良好的合作精神和沟通能力,以及为了项目的进度可以自觉加班的工作态度。 在开发过程中,对实际的业务逻辑不清楚是影响项目进度的重要原因之一。这就需要项目中的成员多讨论,需要的时候还要同发包方的相关人员进行确认。在人力外包的项目中,还需要与发包方的开发人员一起合作进行开发,因为发包方的开发人员进驻项目较早且对业务相对来说更熟悉,这就需要人力外包人员谦虚地向他们请教,而不是碰到问题闭口不谈只靠想象。另外,能配合项目的进度自觉进行加班,因为外包项目都有一个开发周期,如在合同规定的时间内未完成,公司要承担相当大的经济损失。在人力外包项目中,发包方有可能随时调整项目的开发进度,作为人力外包开发人员,需要积极地进行配合而不是消极地抱怨。

 

4.按套路来

每一个发包方都有一套自己的开发流程和规范,且都要求接包方的开发人员不折不扣地执行。但对于一些外包项目中的程序员来说,代码注释的标记和测试代码,测试粒度,测试文档等方面的问题不屑一顾,只管实现了设计文档中的功能即可。殊不知这些就是发包方衡量项目成功与否的重要指标之一。按照软件工程来说,这些都是必须也是必要的。笔者以前曾在一家印度公司供职,他们对文档的要求是几近苛刻的,所有的文档均需按照模板来编写,小至EXCEL表格中每列的列宽都有要求。就是因为这样,印度公司的业务才不断地赢得了发包方的青睐和信任。

 

二、发展级攻略

1.外语,外语,还是外语

外包项目中,大部分都是欧美和日本的项目。所以,英语和日语就是外包程序员的主要外语语种。外包从业人员除了过硬的专业知识之外,对外语的掌握程度也决定了自身的含金量。如今,国外著名的软件公司也纷纷进入中国并开展外包业务,这就要求作为外包开发人员的你必须能用外语同领导交流,也需同国外的同事或者发包方的人员进行交流。除了读和写之后,听和说是很多程序员的软肋。别无它法,努力提高才是提升自我价值的捷径。

2.精通业务

在外包项目中,很多的程序员负责着代码实现:仅仅根据详细设计和类图,序列图进行代码的组装工作。长此以往,在开发的过程中无需关心业务逻辑,无需关心性能问题,仅仅根据设计文档来进行开发就够了。越大型的外包项目,分工越明细,越削弱了项目对某个人的依赖。那如何才能提升自己在项目中的个人价值呢?那就是,精通业务。通过对业务的了解提高对整个项目进行掌握的程度,也便于在项目组在轻易地更换自己的角色。

3.信息收集

主要是针对人力外包开发人员而言。毕竟人力外包的利润少于项目外包的利润,所以,通过人力外包之后,如果发包方对人力外包人员满意的话,极有可能将项目外包给接包方。 作为人力外包开发人员来说,除了正常工作之外,可以充分地了解发包方的组织架构并保持相对的市场敏感度,例如得知发包方有意向进行项目外包的时候,可以及时地跟进,并通知自己的公司做相应的工作,以达到先入为主的目的。事成之后,当然就是公司的有功之臣了。

(四)综述

国内的外包市场方兴未艾,正值红火之时,这为我辈程序员们提供了广阔的舞台。抓住机遇,不断地提升自己,定能在这次汹涌而来的“外包”浪潮中尽情地展现出自己的风采!

全面剖析:“外包”浪潮以及程序员应对攻略相关推荐

  1. 开源浪潮下程序员的职业规划和成长

    无论从年初开源社发布的<2020 中国开源年度报告>还是整体的大环境,不难看到中国的开源正在崛起,越来越多的来自中国的开源项目和开发者们正在走入大家的视野.在开源浪潮的大趋势下,程序员又该 ...

  2. 优秀的Java程序员应具备哪些编程技术?

    想要成为一名合格的java程序猿,需要学习的知识是有很多的,但是基础知识一定要非常牢固,基础不牢固的程序员,随时都会被新的知识和技术所淘汰,下盘不稳风一吹就倒,那么具体作为一个优秀的Java程序员应具 ...

  3. 【观点】程序员应知——循序渐进

    导读:作者侯伯薇在CSDN博客中写了一篇<程序员应知--循序渐进>,在他看来,想成为一名优秀的程序员要脚踏实地的,一步一个脚印,逐步提高,切忌不可一蹴而就. 以下是文章内容: 作为程序员, ...

  4. 嵌入式程序员应知道的基本问题-C语言(zz)

    来源:21ICbbs  作者:lhf C语言测试:想成为嵌入式程序员应知道的0x10个基本问题 其中少量灰色的文字是我添加的,表达一些我的看法,很不成熟,希望朋友们指正. C语言测试是招聘嵌入式系统程 ...

  5. 程序员应知——学习、思考与分享

    有人说,程序员是个苦差事,一辈子总是要不停地学习,学习新的技术,学习新的架构,学习新的工具,一旦一段时间不学习,就会发现其他人嘴里冒出来的新鲜词,自己已经搞不懂是什么了. 的确,作为程序员,学习很重要 ...

  6. c++ include 路径_程序员应如何理解include

    相信很多同学在学习C/C++后都有这样的疑问,#include这句话到底是怎么意思?这句话的背后隐含了什么?我们常用的stdio.h存放在了哪里? 这篇文章就来解答这个问题. 谁来处理头文件 有上述疑 ...

  7. 怎么移动矩形选框工具选中的东西_程序员应具备的PS基本技能(二):程序员切图最常使用的工具组-选择工具组...

    若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...

  8. 程序员应学习蜡笔小新的心态

    程序员应学习蜡笔小新的心态,今天的仔细看了看的蜡笔小新,然后放在拖布上,车门打开了,我和妈妈回到家后,唐门是一个非常酷,因为我知道此时无声胜有声,里面一棵棵缀满彩色电灯的大枞树闪着奇异的光彩,仔细看了 ...

  9. php程序员应具有的7种能力

    php程序员应具有什么样的能力,才能更好的完成工作,才会有更好的发展方向呢?在中国我想您不会写一辈子代码的,那样不可能,过了黄金期,您又怎么办呢?看了本文后,希望对您有所帮助. 一,php能力 1,了 ...

最新文章

  1. mysql 1个月多少天_在MySQL日期间隔中,1个月是否与30天相同? 1个季度与3个月相同吗?等等?...
  2. php引入类的位置,php如何在一个类中引入另外一个类
  3. Jupyter notebook入门教程(下)
  4. websocket后台推送数据
  5. redis+celery+django设置外网可访问
  6. php数组获取差集,php数组求差集问题
  7. python图片识别是否p过_Python+Opencv进行识别相似图片
  8. C++primer 13.1.2节练习
  9. Datalogic得利捷推出物流应用领域全新标杆产品——AV900
  10. 【阿里开发规范】Java开发手册(嵩山版)
  11. Java中引用数据类型有哪些,它们与基本数据类型有什么区别?
  12. 分辨率、帧率、码率之间的关系
  13. 风寒感冒一般低烧或者不发烧,清鼻涕。风热感冒一般有发烧比较厉害,黄鼻涕的反应
  14. .htaccess rewrite 规则详细说明
  15. YOLOv5推理详解及预处理高性能实现
  16. [万字长文] 人脸识别初步调研报告
  17. 解决bug 起止时间相同 搜索不到相关数据
  18. 计算机网络(三):IP协议,路由器转发,路由器和交换机的区别
  19. 全球及中国新能源汽车动力电池行业需求前景展望及投资方向建议报告2022-2028年
  20. 抖音html数字9,抖音687是什么意思

热门文章

  1. 高性能网站建设进阶指南:Web开发者性能优化最佳实践 pdf扫描版
  2. R语言基础指令和并行算法初识(上篇)
  3. android 反编译 jadx,jadx gui下载 jadx(Android反编译gui工具) v0.6.1 官方版 下载-脚本之家...
  4. jQuery grid plung's Documentation
  5. matlab round函数怎么用,round函数的使用方法【处理模式】
  6. 个位数字加百位数字等于千位数字加上十位数字,且该该数为奇数
  7. 内存数据网格IMDG简单介绍
  8. 汉堡按钮html写法,ProtoPie 详解 — 汉堡按钮制作
  9. inter uhd graphics630显卡驱动_Intel新驱动已支持Win10 H2更新、11代酷睿狂喜
  10. 面试了500个年轻人,发现混得好的,都会这5种说话套路