宁 的个人资料图灵の夢照片日志列表更多 工具 帮助

日志


2006/12/15

[转载]深度报道:对日软件外包六大战术

来自:计算机世界 作者:不详 [2004/11/29]
“近几年,国内软件公司尤其是针对日本的软件外包公司如雨后春笋一样冒出一大片。其中有些小企业只是几个人一凑就开了公司,根本不清楚这个市场的情况,手中的主要法定就是低价抢单。其实,这个市场的讲究很多,讲战术有技巧,一味地简单行事反而会搞乱市场。”一家多年从事对日软件外包的企业老总对目前的现状感到担忧。据统计,国内整个软件出口中对日出口的比例高达70%,但占日本外包市场的比例还不到1%。在这个已经启动的市场中,我国软件企业尤其是现在纷纷涌出的新生企业如何发挥自己优势?如何避免不必要的失误?什么样的战术才会比较奏效?本报记者经过采访多家有代表性的软件出口企业和相关软件促进部门,对此给出了答案。
中国的先天优势和后发实力(小标题)
位于北京中关村的北京昂思高科技公司是一家成立不久的小公司,其主要业务就是对日本软件出口。现在,从东软、方正、浪潮通软这些规模较大的软件企业再到昂思高这样的小公司都把软件外包市场主要瞄向日本。据北京软件产业促进中心国际合作部经理李劲的统计,北京的软件出口2003年海关统计的数字是1.38亿美元,其中对日本出口软件9490.6万美元,占北京市软件总出口量的68.8%,出口所占比例连续5年持续上升。李劲说,从全国软件出口看差不多对日这一块也占到近七成。北京软件促进中心副主任曲玲年介绍说,软件出口的统计口径不一样,得出的出口数据也不同,但严格地说,海关统计的数据是最准确的
“北京软件促进中心去年曾到日本开展了宣传活动,结果很快就有许多日本企业跟过来,考察中国的接包市场,有时我们一周就要接触五、六次这样的来访。”李劲感到日本软件发包企业对中国接包市场好像“情有独钟”。
东联软件开发基地北京昂思高科技公司总经理王伟平是从日本回来创业的“海归”,他说,相比其他地方,中国确实占有很多优势:一是中国离日本特别近,语言文化上也很接近。而像印度除了相距较对远外,语言上的劣势也比较明显。日本的一家调查机构曾做过中、印软件之间的差别,发现如果有一个印度人达到日语大学一级水平的话,那么中国就有375人。而日本对中国文化比较熟悉,这样日本把软件外包交给中国来做要比给印度省心、省力。像一个外包项目交给印度必须把日文翻译成英文,印度用英文做完项目再翻回日文,这样做不仅费时、费事,中间还会出现差错。而中国可以就直接用日语。二是现在日本的经济还不景气,迫使日本企业降低成本,而中国企业正好有成本优势――大概是日本当地企业的50%到70%,这样日本的软件外包项目流入中国也是很正常的。
有过长期跟日本企业打交道的东软集团公司董事长兼总裁刘积仁说:“像大连这样的中国沿海城市,对于日本人来讲,他们比较熟悉,也很愿意和我们合作。”
北京软件促进中心曲玲年提到,日本软件市场的特点是,第一发包商也就是十家到二十家之间,主要是IBM日本、富士通、NEC、野村中岩、东芝情报、三井情报等,它们外包给日本中型软件企业,这些企业再把一些项目往外转包,中国企业一般是三包或四包。现在有一个趋势,由于软件项目价格越来越低,可能在第二包时已经到了中国企业。这反而是我们的一种优势,在成本压力的情况下,能够把中国软件企业的优势发挥出来。
中国在国际化外包浪潮中还有一个比较明显的优势是,中国现在是经济最活跃的地区,它吸引了制造业及与之配套的软件业向中国的移动。浪潮集团通用软件公司总裁王兴山说,日本软件企业主要是嵌入式软件,是随着产品走的,而现在许多日本的手机、数码相机等企业都在中国设厂,这种情况也促使日本愿意把软件项目发包给中国。
不要怕从软件代工起步(小标题)
在记者的采访中,感到一些国内企业不愿过多谈及自己的对日软件外包,因为他们目前做得多是委托加工部分,拥有自主产权的产品还很少。许多人还是过多看重自主知识产权的出口,李劲认为这其实是中国软件企业尤其是新小软件企业的一个误区。她说,企业选择简单的代工也是根据自身的情况进行的正确选择,国内众多这样的软件企业成立还不久,人员规模、研发实力、质量控制等各方面还处于相对很低的水平,这时的企业面临的最大问题是生存。而一上来想拥有自主知识产权的产品出口是不可能也是不现实的。当然,像方正那样的成立比较久,又拥有自己产权的企业就是另一种情况。
刘积仁从东软公司的成长发展过程认识到,一个软件企业到底选择不选择从代工开始要做具体分析,关键是这个企业要判断代工那段时间企业要解决什么问题。当然每个企业都应有一个伟大的理想和目的,但千里之行始于足下。中国科技业在定位时有一个误区,对目标看得很清楚,但忽略了自己处于什么地位。如果这个目标需要一百步能够实现的话,前面的99步也必须走,这里面可能会有一些你不愿意走的步,但不走不行。他说,东软在成立之初,面临最大的问题就是生存问题,必须先从做日方的软件代工开始,赚到钱,才能谈得上今后的技术实力的发展。
浪潮通软王兴山也说,从代工的形式切入是一种比较现实、可靠的手段,起步比较容易。他说:“先从代工做起,一是可以赚钱;二是可以提高自身的软件生产过程和质量保障的能力;三是熟悉了国外的加工需求、管理思想 ,可以用到自己的自主版权的产品上来;四是可以熟悉国外的信息,为今后自主知识产权的软件出口打下了基础。中国软件出口企业应该学习过去我国成功的传统企业比如海尔发展和出口的路子。先当好徒弟,再做成师傅。浪潮的路子是围绕自己的核心业务,既做国内的,又做国外的,通过国外的加工来促进自己的核心业务。既不是为了代工而代工,也不是什么代工都做,只做自己擅长的领域的加工出口。在做的过程中,消化、吸引、提高自身的各种能力。”
北京软件促进中心曲玲年说,当然最好的情况是,中国企业直接跟日本的第一发包方联系,这对国内一些有实力的软件企业来说能做得到。但由于国内软件企业普遍规模较小,不可能也没足够的能力和技术实力直接接到日本第一发包方的项目,也可以接一些二包三包日本企业的项目。一步步地接近高端。
华虹NEC公司的张江红博士说:“我们虽然开始接小项目,表面看来是对方赚了大头,自己拿了小头,但在这个过程中,我们通过合作学到许多软件研制方面的东西,不断完善自己的流程体系、质量体系,不断使我们的人员受到严格训练,这样才有能力接更加复杂的项目,才有可能开发自己的产品。生产自主产品,自己拥有知识产权、自己承担风险,自给自足地开发出来,然后买出去,确实使软件企业赚更多的钱,也是一个发展方向,但如果前面打下基础,只能是沙地起高楼。”从小项目做起,兼具长远眼光,这样就可以通过跟国外大公司的合作,锻炼队伍、建立长期的合作关系,为今后的自主产品投石问路。
国内企业有一种观点,认为搞软件很简单,只要找些大学生编编程,就可以接活了,这是对软件企业第二个误解。华虹NEC张江红说,如果接一件软件项目没有像样的组织管理工作、整体实力,那么结果肯定会接崩了。国内软件企业的历史都不太长,达到10年的企业还很少,大部分是近几年成立的。华虹NEC也是帮别人做了两年多,还有能力建立自主研发软件产品。张江红说:“国内软件人才看起来较多,但绝大部分没有经过专业训练,算不上合格的软件人才。以前我国培养的软件专业人员,并没有实际的产品概念,只会编程但并不懂什么是软件产品。定义一个产品概念、架构系统机构、详细设计编程,这是一个由高到低的过程。对于一个软件产品来说,你用什么样的软件方法、什么样的测试工具、什么样的管理方式保证产品的质量,这些方面基本上国内的软件企业没有什么太多的经验。从这个角度上看,外包是一种方式,通过跟人家学,自己逐渐提高,特别是跟日本的企业。
实际上,对于国内的接包方而言,对软件人员的要求是比较高,刘积仁就提到,实际上,从事软件外包的人员还要了解客户所在的语言传统和文化习惯。这里所说的语言,不仅仅指的是外语,包括公司人员对客户社会背景、语言习惯、文化背景、做事方式等等的理解。我们技术人员理解的一些问题,例如字体、风格、文档、程序,还包括许多微细的方面,可能都与对方的要求有许多不同,只有不断的积累经验才能把外包业务做好。
东软在初做外包时,在软件控制、流程、质量管理等方面还没有规范。而要完成好外包项目,是一个系统工程,光有软件人员根本不行。后来,东软招聘一些了解客户的人才,并给予软件基层人员更多的培训;在质量管理方面,公司也不断完善规范,引入ISO9000和CMM等认证体系。这样才能胜任外包工作。
张江红特别感到,国内软件设计人员尤其是工作不久的人员普遍有一种的心态,总想冒一些火花,想一鸣惊人,但全面素质确实不行。软件人员还要多靠经验,经验只能靠多年的项目经历才能锤炼出来,只想快往往欲速则不达。
国内许多企业在宣传时,会很在意自己的企业拥有本科以上的人员比例有多高,这其实是软件企业在人力资源结构方面第三个误区。据一项调查显示,我国软件产业从业人员中本科生学历最多占33%,这个比例是比较高的,这会造成人力成本较高,削弱了我国软件企业的竞争力。既然是做软件加工,就不能都是高层次的人才,这种企业还是属于人力资源密集型的企业,还需要大量的学历不高、工资要求也不高的软件蓝领,这些人一般是经过培训的专科生或中专、职高生。为什么外包呈流行趋势,就是各个企业为了降低成本、抓住核心能力的结果。像日本分包公司,对人力资源价格计算的十分精确,其中分析员、程序员、测试员都会有不同的标准。因为日本的劳动力成本很高,它们一般保留系统分析人员、设计人员和最终测试人员,把其他的都分包出去了。日本一直是采取分包的方式,大的公司分到中的公司再分到小的公司。浪潮通软王兴山说:“如果我们的企业都使用本科以上的人,那么这种差价就挣不到了。其实在一定意义上讲,像软件代工属于来料加工的一种,挣得就是差价的钱。如果我们的人力成本较高,想获取利润就很难。
近几年,国内针对日本出口型软件公司增加太快,其中有些企业为了争取外包的单子,把低价作为最重要的法定。这是软件出口中存在的第四个误区,而也会成为最严重的问题。日本公司对接包方看重的交包能力和完成质量,你的报价太低,人家也不放心交给你干,因为谁也不能赔本干。东软刘积仁说,日本企业开始只是先给一个小项目,还可能是实验性的。如果做得好,一步步的来,发包的项目会越来越大。一旦跟日本公司建立了好的关系,更会比较长久的维持下去。而在这个过程中,对方对于软件外包过程的各种成本也是了如指掌的,低价没有建立长期互相信任的关系重要。“我们的企业在接外包单子时一定要注意保持中国企业的整体形象,不能只靠低价吸引单子,因为片面地、大幅度地压价价格不可能保障项目的成功完成。接单接崩了,不仅使自己的企业的形象受到大的损失,也会影响整个中国企业的形象。因为对方会说,在跟中国企业合作过程中很失败。请注意,人家说的是中国公司,而非单个的公司。”刘积仁提醒中国企业慎用低价这一招术。
针对中国有些企业只是几个人简单注册一个企业就接单的情况,北京软件产业促进中心李劲说,这样的企业是接不到什么单子的。像日本软件企业在找合作伙伴的时,要看中国企业的开发管理体制与他的那套是不是能融合在一起,因为软件开发是一个大的工程。她说:“日本企业选择合作伙伴是非常谨慎的,我们去年接待过的日本企业到中国找合作伙伴,感到它首先看重我们企业的日语交流能力,如果一个企业中高层项目开发经理日语都能过关,就会为下一步的合作打下一个好的基础。另外,他们还很自重我们企业的的开发流程、管理过程等各方面是不是比较规范。”
方向认准了关键靠战术(小标题)
众多已经在对日软件出口战场拼杀多年的企业认识到,最基本、最实力的战术就是从最简单的委托开发着手,一步步的深入,这是根据日本企业的特点判断的。北京软件促进中心曲玲年 说:“日本公司在最一开始发包的时候,并不太相信当时的考察结果,还要从试验项目做起。先给你一个很低档的项目,往往也是人家做过的一个项目,这就算一次考试,那当然价钱会比较低。如果你做得不错,达到了标准。第二次就会给你一个稍微复杂的项目,这会是一个真项目,如果你能按时高质量的完成,人家才会把发包的项目难度增大。经过一段,随着技术难度、项目规模的增大,接包企业越来越成熟,你才在可能接到大的单子。”
现在有的国内企业已经做到了这种程度。华虹NEC现在除了接NEC的项目外,也开始接我国台湾省和美国公司的项目。而在1999年公司成立之初,还只是初级的软件代工外包项目,现在由于研发实力、生产实力逐步加强,可以根据对方的需求,自己研发、生产,然后买给对方,这种产品就是有自己的独立知识产权的。

张江红感到,日本企业普遍有一个特点,对质量要求相当严格,可以说是精益求精。他们的产品的bug比较少,对流程管理、质量管理都有一套,确实值得国内企业去学习。
东软也是从代工开始,从单纯的技术输出步入品牌输出阶段。
事实上,软件代工也并不好做,日方客户往往把项目面向全球招标。“花费我们最多心思和努力的就是两点,一个是质量,一个是交货期。”刘积仁说,“日本人是在拿制造业的管理模式和方法来对软件开发进行管理的,而中国人的文化里就缺乏这样的意识。”日本企业非常看重交货期,如果每次都能按时交货,就可以建立信誉,容易和日本公司建立长期的关系,而日本公司跟其他国家的公司不一样,一旦建立了相互信任的关系,他们一般都不会再改变。
在合作的过程中,中方发现问题一定要及时沟通。东软在做一个图形处理的软件项目时,发现一些问题,但没有跟日方沟通。当日方在检查时问题被发现造成了项目的返工、反面延迟了交货时间。当真正出现问题时,只要跟他们沟通彻底,交货时间是可以协商的,因为有时的问题并不出在中方,可能在项目之初就出现了。
在同日本软件企业合作过程中,我国企业越来越认识到靠单个的独找单头根本不行。方正张旋龙就提到,日本有家企业曾有一个上亿美元的大单,先找方正,但方正的规模也是千人级,人家就转到了其他国家的大型软件企业。所以组建软件联盟靠集体的力量接单就成了国内软件企业第二个也是比较重要的战术。北京昂思高科技公司也因为规模小影响了接单,王伟平说:“日本曾有一个大的软件外包单子,在全世界上找接包公司,先到我们的公司来,但看到我们只有20多人,就打了退堂鼓,后找到印度一家有上万人规模的公司。”面对这种情况王伟平很着急,但也不可能在短时间内增加人员。这时就想到了组建联盟,利用某种机制,把中小企业联合起来、壮大规模。现在的东联联盟已经有了十几家了。”
刘积仁同意组建联盟是一个好方法。他认为也可以组建这样的大联盟,最上面是一个龙头企业负责接单,下面形成紧密型合作企业,再下面还有松散型合作企业。
浪潮通软王兴山认为国内大的软件企业也可以采取继续分包的方式,由其在国外的机构拿到单子,再进行二次分包,分包给劳动力成本相对较低的中西部城市,这是联盟的一形式,也是一种趋势。他说:“比如在中关村的一个软件企业可以接单子,但这里只是少数人,主要是一些设计人员,大家知道这的成本是比较高,但可以把大部分的生产人员放在中西部城市,这样的成本就会显著地降下来,企业也有了更高的竞争力。”
软件外包企业会遇到通晓和胜任国际业务管理人才严重缺乏的问题,这可以通过外派和引进的方法解决。这可算国内软件外包企业第三个战术。东软在与日本公司合作时,就采取了外派人员的方法。像在跟日本软件公司Intec的合作过程,由东软先期派到Intec做项目的4名人员,让他们熟悉国际大公司的运营,培养他们具备良好的国际交往和沟通能力。浪潮起步时也派到许多员工到日本工作,这些员工回来后就带来了很多的关系。浪潮在日本市场的打通也主要靠他们。
引进就是要多引进留学生和招聘当地的人才。张江红说,吸引日本的留学生还是相对容易的。因为日本留学生做短期打算的比较多,并不想在日本定居。浪潮通软有许多员工有留学日本的经历,这些人有的在公司本部工作,有的在浪潮日本的公司工作,后者实际起着“桥梁工程师”的作用。
东软在日本设的公司已经近3年的时间,人员规模大约为25人,当地人大约有20人。确实,他们的人工成本要参照日本当地的水平,看似成本高了,但收入高的地方收益也相对要高。他们的主要任务是了解客户需要,接洽合作,做好售后服务工作。
中国软件企业在日本设点可以直接进入日本市场,同日本软件企业直接沟通,减少中间环节。这是第四个战术。派驻日本的高级软件工程师,可以完成软件接包的前期工作,对承接的软件项目包进行结构分析、系统分析、软件模块化、明确各个包的技术指标,发往中国。浪潮通软王兴山认为,软件加工做到一定规模后,必须要在海外设立机构,这个机构主要的工作是开拓市场,做好上游工作售后服务工作,国内应该是一个加工基地。浪潮有日本机构有6个人,刚开始工作,也有日本当地员工。应该用一些当地的人才,对于产品的交流都很有好处。关于国外人员的比例,浪潮大概是15:1。
这种方式并不是对所有的软件外包企业都有效,北京软件促进中心曲玲年的答案是,国内软件企业出口到国外,如果年规模达到200万美元就应该设立驻外机构,因为有个异地支持问题。如果到国外机构有20人,国内企 业应该是100人的规模。
针对日本软件企业的特点,建立长期的信任关系很重要。这是第五个战术。刘积仁说:“与美国公司主要考虑降低成本不同,日本公司考虑得就要多一些。日本公司考虑几个问题,一是对方的实力和信誉是不是能够满足公司的要求,跟日本公司建立一种可信赖的关系是比较难的,只靠低报价就很难获得外包作项目。而一旦这种合作关系确定下来,就会保持相对长的时间的合作。二是日本公司跟外包方合作不是通过某种判断,而是通过实践来确定。日本公司对外包的合作伙伴是比较慎重的。”
浪潮通软王兴山也感到信任的重要性。他说,跟日本企业合作,只要能够取得他们的信任,他们就会比较忠诚,一般不会再变,这点跟欧美公司还是有区别的。但取得这种信任的过程是比较长。
还有一个战术就是国内企业应注意建立样板,建立品牌。方正电子有限公司印艺事业部副总经理贾文华说,外包企业的品牌战略也很重要,但这是一个长期的过程。当然,如果你在国内就是一个比较成功的公司、品牌知名度很高,那么在国际市场上就可以容易打入一些。可能,我们有许多软件公司规模比较小、成立时间比较短,但在具体外包过程中,也要时时刻刻注意建立品牌的重要性。
目前,虽然,我国对日软件出口增长速度很快,但占有的总量还很低。具体数字还没有一个精确值,但可以从北京软件出口情况算出来,李劲说,在全国的软件出口比重当中,北京占到了37%,而北京软件出口2003年海关数字是1.38亿美元,全国的数字不到4亿美元,如果按对日出口70%的比例算,我国对日本软件外包的数量还不到3亿美元。而日本一家大软件企业一个外包单子就有1亿美元,这样的单子还是比较平常的。日本作为第二大软件发包方,估计每年发包数量会在数百亿美元,这样看,中国所占比例很低,业内人士估计连1%都不到。日本软件外包市场无疑会是一个大的蛋糕,如果我们主攻日本,占据更多的外包份额,同时不断增强自己的各种实力,再向欧美等国外包市场延伸,中国软件企业国际化之路就会越走越宽。
  from:http://resource.51cmm.com/OutSourcing/No015.htm

[转载]软件外包项目(对日)常见问题探讨

来自:中国精品学习网 作者:不详 [2004/12/08]
软件外包(对日)常见问题探讨
软件外包已经成为全球IT行业的大趋势,当前软件发包方主要来自欧美和日本。我国对日软件外包具备很多竞争优势,中国各地如北京、上海、大连、西安、杭州、合肥等城市的对日软件外包正在迅速发展,并逐渐形成产业规模,中小规模的软件企业纷纷建立对日软件出口联盟。
对日软件外包相对技术难度不高,但是质量要求相当苛刻,外包项目失败的例子不少。以下就对日软件外包常见的一些问题进行简单探讨,希望与同行的朋友更多交流,总结经验,共同成功。
1、日方SE认为理所当然的地方,很多细节不会在式样书中明确写出,或者说日方SE完全按照在日本国做项目设计的习惯写式样书;由于中日文化和思维习惯的差异,可能导致中国软件开发人员对这些习惯问题理解有误。
对策:
1)积累经验,参照同类系统;
2)提QA表确认。
2、在纳品期间,对于某些BUG,可能会出现这样的争执:中方开发人员说是由于日方的式样书没有写明确,式样书不够细致,日方设计人员说是中方理解式样书不对,有些地方不写出来也应该能自己理解。
对策:
1)首先确保纳品质量和纳期;
2)加强双方的交流;
3)加强测试。
3、有的项目是日方边设计,需要中方同步开发,中方开发人员认为式样书上写多少就做多少,没有写的就不做。
对策:
1)加强项目的交流,主动提出设计思考让日方人员确认是不是这样的意思?
4、中方开发人员的日语熟练程度不够
对策:
1)加强IT日语教育,开发人员至少达到能理解日语式样书的水平;
2)配置专业的日语翻译辅助。
5、对于一些中方开发人员不太在意的一些细节问题,例如字体、颜色、对齐方式等等,要求不够严谨。
对策:
1)强化质量意识,建立开发和测试规范。
6、开发过程的规范性与开发人员的态度:日本企业的开发管理,讲究中规中矩,非常重视文档的规范化管理,力求做到"凡事必求有据";而中国企业在文档的规范化管理方面相对淡薄;日本企业项目管理对涉及的过程和文档规定了极其严格的次序和样式,要求开发人员严格执行。而中国企业在具体执行方面,开发人员往往对这些规范和要求的遵照不够严谨。
对策:
1)完全按照客户要求进行纳品,包括文档,如:开发进度报告、测试用例(Test Case)、测试报告等等;
2)加强开发过程管理,规范开发过程,引入CMM模式;
3)加强软件质量保证,如代码评审、文档审核、测试。
7、中国企业的开发人员比较喜欢技术创新,在开发过程中对于一些技术问题提出自己的技术方案,可能会导致部分模块技术实现方式与整体要求有差异
对策:
1)完全尊重日本客户的文化和管理模式,积极提出技术建议;
2)对于有要求遵照Sample代码或对具体技术实现细节有严格要求的,开发人员必须严格遵循,不允许采用自己的技术实现;
3)加强代码审查(Code Review)。
9、一些需要日本企业与中国企业的SE共同参与设计或交流的项目
对策:
1)在日本的合作伙伴企业派遣SE到项目现场进行设计;
2)派遣中国SE到日本参与设计,设计完成后带回中国开发;
3)日本企业短期派遣SE到中国。
10、软件外包知识产权保护与客户保密问题
对策:
1)严格保护日本客户商业秘密和知识产权;
2)中国企业与日本企业签订保密协议;
3)中国企业与开发人员签订保密协议。
11、日本企业对中国企业开发进度的掌握
对策:
1)按照日本企业项目管理要求报告项目进度;
2)分阶段纳品交付;
12、远程协同合作开发的交流手段和方式
对策:
1)实时消息/语音/视频交流,例如:MSN Messenger、Yahoo Messenger
2)视频会议系统
3)远程控制、远程协助、远程调试
4)Email、FTP
5)相互人才派遣,人才交流
13、中国企业开发队伍的稳定性
对策:
1)稳定项目流量,为特定客户配置固定的开发队伍
本文作者:合肥万联信息技术有限公司,研发中心经理,对日软件外包经验2年

from:http://resource.51cmm.com/OutSourcing/No016.htm

[转载]与大学生谈软件外包

作者:崔启亮, 原始出处:软件质量研究网www.sqstudy.org 
目前已经进驻上海的知名全球服务外包企业包括埃森哲、优利、NCS、博朗、爱特优科等

目录:
[0] - 为什么要对大学生谈软件外包?
[1] - 什么是软件外包?
[2] - 软件为什么要外包?
[3] - 为什么要承接软件外包
[4] - 做软件外包有前途吗?
[5] - 外包公司是怎么工作的?
[6] - 有哪些好的外包公司?

[7] - 软件外包公司需要什么样的人?
[8] - 哪些人不适合做软件外包技术人员?
[9] - 如何通过软件外包公司的面试?


[0] - 为什么要对大学生谈软件外包?

中国软件外包行业这几年成为发展最为迅速的行业之一,无论你是在校的大学生,还是即将毕业的同学,都有必要了解这个行业。如果你是软件相关专业的同学,或者毕业后准备从事软件行业,那么更应该关注软件外包这个行业。

尽管网上已经有很多关于软件外包的信息,但是这些信息很多都是媒体记者的报道,他们只是从旁观者的角度看待软件外包,缺乏一定的深度和实践感受。还有一些来自非软件外包的人士,基于他们主观的理解和推测,认为软件外包是很低级的工作,为软件外包工作泼冷水,影响了对软件外包工作的正确认识,造成了软件外包的“中国式误会”。

大学生接受了系统的高等教育,具有牢固的知识基础,而且具有极强的可塑性和学习能力,是未来软件外包行业的主力军。但是,他们参加软件外包实际项目的机会和经验毕竟很少,对于软件外包有很多模糊的认识。由于教材的更新需要更长的周期,高校教师如果没有丰富的外包企业经验,很难把软件外包的实际知识传授给学生,因此,外包企业从业人员有必要向这些高校学生交流一些软件外包企业的实际情况。

那么什么是软件外包?软件为什么要外包?中国软件外包的现状如何?将来做软件外包是否有前途?这些问题可能很多同学不是很清楚,如果今后打算进入这个行业,则从现在开始就需要先了解这些问题的答案。

笔者具有多年的软件外包公司工作经验,对于软件外包行业一直积极关注,并且积极与国内外同行交流,对软件外包有些自己的体会,借此机会与个位同学进行交流。


 [1] - 什么是软件外包?

软件外包就是软件开发商(简称“发包方”)将软件开发的一部分或者全部,发给别的软件公司(简称“接包方”)去完成。

我们通常说的中国外包公司很多都是“接包方”,主要从日本和欧美等国承接软件外包项目的技术工作。现在软件行业比较发达的美国、欧洲和日本是最大的“发包方”市场。

由于软件外包是软件全球性生产方式,所以存在很多关于外包的英文术语。外包的英文单词是“Outsourcing”。站在“发包方”的角度,把“接包方”成为“Vendor(外包服务商)”。站在“接包方”角度,把“发包方”成为“Client(客户)”

软件外包与其他外包其实没有本质区别,就是双方合作把一个很复杂的、较大的软件项目分工合作,共同做好。其实在其他行业,外包已经实施了很长时间,例如汽车行业,生产汽车的公司(比如一汽集团)他们先设计好汽车的结构,完成主要部件的生产,把很多零件外包给很多厂家加工,然后采用完成整个车辆的安装和制造。

现在人们很关注软件外包,就是因为外包在软件行业应用的时间还很短,而且软件生产存在很多不可见因素,软件外包的优势和好处,还没有被普遍了解和感受。

总结一句话,软件外包就是软件生产的分工和合作,主要目标就是生产出好的软件。


[2] - 软件为什么要外包?

同学们可能都听说了,现在印度和中国做软件外包“火得不得了”,越来越多的欧美大型软件公司都把软件外包给印度和中国。为什么会出现这种现象呢?

要回答这个问题,不能简单的从发包方或者接包方一个方面寻找答案。因为“一个巴掌拍不响”,要实现软件外包,必须双方都有需求、有能力、愿合作才行。而且不能把目光只盯在中国一个国家,还需要从全球软件行业的整体来看待和理解。

为什么软件外包能发展的这么快呢?主要原因在于通过软件外包,发包方和接包方都获得了可观的利益,非常具有现实意义。说得更简单一点,就是双方都获得了好处,大家是互相合作的伙伴。

作为发包方,可以获得下列好处:

  • 降低软件项目成本
  • 提高软件质量
  • 缩短软件开发周期

怎么理解软件外包能较低软件项目成本呢?

大家可能听说过,美国的软件技术人员的工资比中国同等水平的人员要高5到10倍,所以不少美国的软件开发公司都把软件开发和测试的工作,发到中国的软件外包公司来作,可以大幅度的降低成本。对于中国的软件外包公司,他们从国外客户承接外包项目,可以获得很稳定也很好的项目价格,所以很乐意做软件外包服务商(Vendor)。

说到通过软件外包提高软件质量,可能很多人不理解。举个例子就明白了。

美国微软(Microsoft)公司是全球最大的软件公司,现在正在开发的Windows Vista新操作系统,需要同时发布多个语言的本地化软件,例如英语、简体中文、繁体中文、日语、韩语、德语、法语、阿拉伯语等。这些语言的本地化版本的翻译、编译、测试,如果全部在微软公司内部完成,那么微软需要招聘大量的精通每种语言和软件技术的工程师,否则语言质量肯定不能保证。如果把这些工作外包给专业的软件本地化外包公司,软件本地化是这些外包公司的强项,所以可以显著的提高软件质量。

软件外包能缩短软件开发周期的道理很容易理解,如果很复杂的软件开发工作都在一个公司内部完成,那么可能耗费1年甚至几年的时间。例如,如果Microsoft Windows Vista的软件需求分析、框架设计、详细设计、软件编码、软件测试、软件多语言本地化等工作都在Microsoft公司内部实现,那么微软可能需要招聘很多的内部员工,动用很多的项目经理管理这些人员,对这些人员进行技术、语言和流程培训,花费的时间肯定比外包更长。这样的软件即使开发出来了,等到能够发布这些技术可能过时了,其他竞争对手的相似产品肯定已经早已占领了市场。

现在是网络信息时代,时间就是金钱,速度就是效益,“快鱼吃慢鱼”,实现抢先推出新产品,谁就可能占领更多的市场份额。


[3] - 为什么要承接软件外包?

前面提到了软件开发商通过软件外包,可以达到降低软件成本、提高软件质量和缩短开发周期的好处,所以大型软件开发商很愿意把软件的一部分工作外包给专业的软件外包公司。

那么软件外包公司为什么愿意从事这种接包工作呢?

我们可以从以下几个方面分析这个问题。

  • 承接软件外包工作可以获得稳定的、较高的利润
  • 承接软件外包可以学习软件的先进技术和管理方法
  • 承接软件外包可以加速企业国际化步伐

下面对这几点进一步说明。

软件外包的接包方都是人力成本较低的国家和地区,例如中国和印度的软件开发和测试工程师的平均工资比欧美同等级别的人员要便宜很多。这样看来即使发包方发来的外包项目的价格不很高,但是对于这些国家的外包公司看来,还是价格很高的。

通过举个实际的例子来算算“经济帐”,假设美国软件公司发给中国软件外包公司做软件测试的项目,按照没个测试工程师每小时15美元计算,每天8小时公司可以获得120美元。每个月按照22天计算,外包公司可以从每个测试工程师获得120*22=2640美元。如果按照1美元=8人民币元计算,是21120人民币元。一般软件外包公司发给员工的工资大约4000到8000人民币元,另外除去运营成本和各种税费,外包公司获得的纯利润高于15%到20%。

15%到20%的纯利润是个什么程度?熟悉中国软件开发行业的同学可能知道,由于中国开发的通用软件受到盗版的影响,利润非常少,甚至无法收回投资。另外,中国软件行业竞争太激烈了,经常为了投一个“招标项目”,大家靠拉关系,拼价格,即使最后抢到这个项目,价格已经很低了,再加上内部开发成本逐年上升,经常是项目做完了,所赚无几,甚至赔钱。2005年中国软件开发行业的利润整体下滑,有媒体报道说降到了5%。一般企业正常发展的净利润应该高于11%,否则生存就有了问题,更别谈什么发展了。

承接软件外包可以学习软件的先进技术和管理方法。软件发包方都是较为成熟的大型国际化软件公司,他们在技术和管理上积累了成功的流程和方法。对于中国软件公司,很多还停留在100人以下的小规模,很少具有开发和管理大型国际化软件的经验,也没有这方面的整体实力。通过承接大型软件公司的外包项目,可以锻炼队伍,学习各种开发和测试技术、项目流程规划,项目管理等多方面的技术。其实印度规模较大的外包公司,塔塔咨询(TCS),InfoSys等最早也是从承接美国的软件外包测试开始的,现在都超过了5万人,现在可以承接大型软件的咨询和设计任务,在美国市场上直接和IBM、HP等大型公司正面竞争。

承接软件外包可以加速企业国际化步伐。企业国际化是现在中国企业喊的最多的口号,但是真正成功实现了国际化的中国企业还不多。多年来缺乏与国外的交流,中国人的头脑形成了很多僵化的意识。承担软件外包项目,可以与国外客户直接交流,学习行业国际规则,维持良好的国际客户关系,了解国外市场的现状,为将来企业进军国际化做好物质和市场准备。

正是基于承接软件外包的种种好处,国内很多的软件公司纷纷加入软件外包测试的大军,大家就像发现了新的金矿,乐词不彼,准备大干一场。甚至某些以开发产品或专业服务为主的公司,例如用友、东软和神州数码都加大了承接外包项目的力度。

有消息称,在未来2年内,中国的软件外包公司将到纳斯达克上市,成为新的中国外包概念股。


 [4] - 做软件外包有前途吗?

俗话说:“男怕入错行”,如果你进入了一个没有前途的行业,即使你的能力再高,你的发展空间也很有限。对于,刚刚毕业的大学生,第一份工作非常重要,甚至会影响一生的职业生涯。

软件外包是全球软件行业新兴的行业,是经济全球化和软件产业全球分工的产物。大家知道全球化已经深入到我们生活的每个方面,我国的改革开放就是顺应了时代潮流。

对于中国而言,软件外包的发展更是如火如荼,属于典型的IT“朝阳行业”。每年的增长速度都在50%以上,特别对于中国的软件外包公司,他们每年的业务都是100%的速度增长,发展势头不可阻挡。

从事软件外包工作的好处之一是可以在短期内获得职业提升的机会。现在中国软件外包行业如果具有5年以上的工作经验,就可以成为外包的有经验专才了。很多大学生进入软件外包公司工作2到3年,如果学习能力和交流能力好,可以成为项目经理或者部门经理。

从事软件外包工作的好处之二是可以学习和培养国际化思维方式和工作方式。前面已经谈到,软件外包是全球合作的工作方式。做软件外包工作,有机会学习先进的软件设计和测试方法,学会管理大型的、多个团队协作的软件项目,要和多个国家和地区的技术人员和管理人员进行英语或者日语交流。这样可以提高语言表达能力,团队交流能力,遵守科学的生产流程,成为熟悉国际市场和技术的职业人士,对于将来的职业发展大有帮助。

而如果毕业后到一个小的软件公司工作,由于中国的小软件公司很多都是10多个或者几十个人的手工作坊式公司,企业内部缺乏完善的流程,管理混乱,粗放式经营,依靠个别高手的能力,这样的环境很不容易学习到关键技术,而且还会养成随意的、不善交流的独立自我的工作习惯。这种习惯一旦养成对于今后的职业发展是大为不利的。

因此,大学毕业生投身做软件外包,就是进入了一个发展前途十分可观的“朝阳行业”,通过自身的不断努力,有希望在短期内,成为熟悉国际化行业规则的技术和管理人才,成为职场上非常有竞争力的软件专家。


[5] - 外包公司是怎么工作的?

进入软件外包企业后,为了尽快适应新环境,完成日常工作,需要了解软件外包公司是如何安排工作的。

从外包的内容看,现在大多数中国软件外包公司从事两种内容的工作,第一是软件设计和编码的外包(即开发外包),第二类是软件测试外包。

从工作的地点看,软件外包公司的员工的工作形式分为两种,第一是被派遣到发包方(客户)的公司进行工作,这种形式称为“On-site外包”。第二式在软件外包公司内部工作,称为“In-house外包”。

如果同学们到人才招聘网站看看外包公司的招聘广告,经常能看见赴微软,赴IBM从事软件开发或测试的招聘职位。这种形式就是“On-site外包”。举个例子,软件外包公司A招聘了从事软件外包测试的同学小李到微软亚洲工程院从事微软的软件测试,虽然小李在微软的公司工作,但是他隶属于A公司,工作上受到A公司和微软公司的领导,A公司每个月按照A公司的工资标准给小李发工资。一般来说,“On-site外包”的工程师的技术水平要求的更高些。

在笔者看来,“On-site外包”工作方式只是软件外包的初级形式,如果软件外包的服务模式成熟之后,越来越多的外包将以“In-house外包”的形式实现。下面介绍“In-house外包”的工作方式。

所有的软件外包公司都是以“项目”的形式,组建项目团队开展外包工作。一个“项目”就是一个有着明确的任务,明确的开始和结束时间,以及明确的质量要求的工作。项目团队就是为了完成一个项目组建的有不同角色的多个人的小组,一般安排一个项目经理,一个或几个组长,多个工程师。

项目经理主要制定项目计划、资源安排、内部交流和外包的客户交流。组长为每个工程师分结和安排具体的任务,跟踪项目进度,解决技术问题。工程师根据组长分配的任务按照进度和质量完成每天的工作,并且报告进展和遇到的问题。

项目经理负责周期性的向“客户”报告项目进展情况,同时把客户反应的问题和来自客户的最新文件和要求等传达给项目组。

通常项目经理和组长都是由具有管理和技术经验的员工担任,对于刚刚加入软件外包公司的大学生来说,绝大多数都是从工程师的职位做起的,先经过外包公司的内部培训,然后进入项目组实习,转正之后称为工程师,负责具体的开发或测试工作。

顺便说说,不少优秀的大学生,专业技术非常好,学习能力由特别强,善于思考和总结,也善于与其他人交流和合作,这样的学生很快就可以在项目团队中脱颖而出,经过一年或者两年可以从普通工程师晋升到测试组长甚至项目经理。我的不少同事就是这样过来的,这是因为软件外包发展得非常快,客户发来的软件外包项目越来越多,项目团队越来越多,每个项目都需要项目经理,所以从事软件外包具有很大的职业发展空间。

现在总结一下软件外包公司的工作方式:

  • “On-site外包”或者“In-house外包”方式
  • 按照项目团队的方式工作
  • 刚进入外包公司的大学生绝大多数要从工程师做起


 [6] - 有哪些好的外包公司?

对于正在找工作的同学来说,都希望到一个规模较大的公司工作,一般来说,大公司比较规范,待遇也较高,倒闭的风险小。对于软件外包公司来说也是这样子。

同学们可以猜猜看,全球著名的高端软件外包公司有哪些?据媒体报道,比较公认的全球高端外包公司分别是IBM,HP和EDS,前两家同学们肯定耳熟能详,有些同学可能怀疑IBM,HP能算是软件外包公司吗?它们算不算外包公司不是我说的,反正做软件外包多年的老外都这么人为,人家可是全球知名的外包专家,可不是信口胡说的呀。

有的同学经常问我,国内有哪些规模较大的外包公司?哪个外包公司最好?我一般都回答不好。为什么呢?因为每个人看问题的角度不同。比如,什么是“规模较大”?是按照正是员工的人数比较呢还是按照每年的总收入确定?什么样的外包公司是“好公司”?给员工发的工资搞就是好公司吗?给员工提供专业的技术培训,而且具有很大的职业发展空间的是否就是“好公司”呢?

因此,在你问这些问题前,先要搞清楚你心目的好公司应该具有什么样的特征。

我还是从国内外包公司的普遍特征来给出这个问题的一些参考信息。

前面已经提到,我国软件外包公司属于新兴的行业,真正从事软件外包的员工如果人数超过1000人在中国就可以算是比较大的外包公司了。据了解国内最大人数的外包公司现在不超过3000人(这里需要说明一点,有些公司一开始是做系统集成的,最近才开始做软件外包业务,虽然他们的全体员工超过5000人,但是真正做软件外包的还不超过3000人)。所以同印度的某些大的软件外包公司项目,我国的软件外包公司规模普遍弱小。印度的软件外包公司超过10000人的很多,有些超过了5万人。所以有些国内的软件外包的朋友,把中国软件外包公司比作“蚂蚁”,把印度外包公司比作“大象”。

如果同学们打算做软件外包,肯定要问哪个省市的软件外包公司最多?我要告诉大家的是,中国的软件外包在各个省市的发展很不平衡。大连、北京、上海、深圳、苏州、西安等发展的相对快些。其他各个地方今年开始从政府到企业都开始提出要发展软件外包了。

关于国内软件公司的规模,同学们可以参考我国政府权威部门发布的“中国软件欧美出口工程”试点企业名单。这些公司都具有一定的规模和实力,有些记者把这些公司比喻成“中国外包的国家队”,言外之意其他的外包公司只能算是“地方武装”了。

大连的软件外包发展的最为快速,特别是对日外包做的最为成功,因为大连的政府支持,地理位置靠日本很近,可以找到很多掌握日语的软件技术人员。北京和上海的软件外包发展的时间更长,这两个直辖市凭借经济和政治的影响,吸引了大量的国外客户,人才资源很丰富,所以外包做的很早,很多欧美的大型软件公司都在这两个城市成立的研发中心。

说到外包公司,很多人首先想到的是中国本土的外包公司,其实出了本土外包公司,国外外包公司在中国的分公司也不可忽视。这些国外外包公司有的进入中国较早,有的最近一两年才在中国落户。他们凭借国外市场的良好客户关系,全球的专业品牌,先进的外包管理技术,丰富的外包经验,加上国际化的工作环境,良好的薪资待遇,吸引着很多大学生前去应聘。

最后给同学们一点建议,大家在找工作的时候与要单纯追求规模大的外包公司,中小规模的外包公司有可能发展速度更快,有可能提供很大的职业发展空间。关键是通过各种方式综合了解软件外包公司的发展前景、工作环境和个人发展空间,可以通过打听在外包公司工作的同学、朋友、亲戚、老乡,也可以上网看看外界对这家公司的报道和评论。


[7] - 软件外包公司需要什么样的人?

刚毕业的同学如果没有考研或出国留学,都有过找工作应聘的经历,不少同学都感觉找到合适的工作单位不是一件容易的事情。有些同学虽然得到了软件外包公司的应聘机会,但是面试后就没有消息了。

而一些软件外包公司的招聘人员却为找不到合适的人员而苦恼,只好发动一切可以调动的因素,解决企业人才困乏的问题。所以有人把这种现象归纳为:“高校有人没事干,企业有事没人干”。

这种现象的本质是大部分高校毕业生的综合素质达不到软件外包企业的用人要求。那么软件外包公司需要什么样的人呢?为了能够进入软件外包企业,在校学生应该如何学习和学习什么呢?

说的简单一点,企业需要的是能马上融入外包项目团队,独立承担实际外包项目任务的人。所以很多企业在招聘启事中都有“x年软件外包相关工作经验”等的硬性指标,而这些都是在校学生欠缺的地方。

现在一些外包公司都提供兼职岗位(Freelancer),这是在校学生(尤其是即将毕业的学生)参与社会实践的好机会,应该抓住这些实习机会,积累工作经验。另外,如果在这些企业实习期间表现优秀,毕业后有机会成为公司的正式员工。

软件外包企业对待大学毕业生更看重学生的学习能力。刚毕业的大学生就像一块好的毛坯钢材,材质优良,如果这些学生有较好的主动学习能力,进入企业后经过几个外包项目的实践,积极思考,善于总结,成长很快。企业不欢迎凡事不经过大脑思考,大小问题都要向主管求助的“懒汉”员工。

企业需要具有职业精神的员工。职业精神包括很多方面的内容,包括对工作的热情投入,积极与团队成员交流,具有合作精神,以企业利益为重。而不欢迎喜欢与企业讨价还价,抱怨企业提供的发展空间不够大的学生。

由于软件外包服务行业是为客户提供服务的行业,很多外包项目的具体任务一般比较琐碎、枯燥,例如按照客户提供的软件框架进行编码,按照客户提供的测试用例执行软件测试。对于刚刚毕业的学生他们都需要从这些很基础的技术岗位做起,这是对他们职业精神和做事风格的考验。

软件外包服务的很多工作就像生产流水线上的公司在拧螺丝钉,需要遵守严格的生产流程和一丝不苟的严谨精神。把这些基本工作做好了,才能取得企业的管理人员的信任,才有机会承担更复杂更大责任的工作。

一些刚毕业的学生经常心高气傲,很鄙视这些繁琐枯燥的工作,感叹埋没他们的才华,这是没有摆正工作心态的表现。外包公司非常欢迎愿意做看似琐碎的工作同时有能力做好的同学。其实做好这些看似琐碎的工作,当好拧螺丝的工人,就是不简单,他的未来就会不平凡。道理很简单:基础打好了,万丈高楼平地起。

总结起来,外包企业需要具有一定的外包工作经验,主动学习能力强,团队合作精神好,愿意从琐碎的技术工作做起,而且有能力做好“小事”的人。

海尔公司总裁张瑞敏有句名言说得非常好,对于准备到软件外包公司工作的同学非常有启发,他说:“把一件简单的事做好就是不简单,把每一件平凡的事做好就是不平凡”。


 [8] - 哪些人不适合做软件外包技术人员?

大千世界,无限精彩。作为软件行业的新领域,软件外包吸引着越来越多的人投入这个行业。每个行业都有行业的行规和准则,并不是任何人都适合从事软件外包行业的。

哪些人不适合从事软件外包呢?由于本文的读者针对即将毕业的大学生,也适用于准备加入软件外包公司的新人,所以我们可以把问题缩小范围:哪些人不适合做软件外包服务的技术人员?

回答什么人不能做软件外包,也就是哪些人做不好软件外包,需要先了解软件外包服务行业的工作性质和对人的综合要求。软件外包是为客户提供专业技术服务的行业,而且现在的软件外包企业的客户大都来自国外,客户对外包公司人员要求比较严格。另外,外包公司的工作非常具体和琐碎,需要一丝不苟。

软件外包行业的这些特点,决定了以下三种类型的人不适合做软件外包的技术人员:

第一种人是外语不过关的人。

语言是交流工具。如果客户是欧美客户,英语交流是必不可少的。如果客户是日本公司,对日语要必须熟悉。作为初级的外包技术人员,需要阅读和写作大量的文档和邮件,这些都需要良好的英语能力。很多英语不过关的人员不容易通过外包公司的笔试。对英语的要求,需要达到熟练阅读英文文档,写作专业的测试缺陷报告和日常邮件写作的程度。

外包公司强调英语的重要性,这是做好工作的基础,因此,请在学校里、公司里利用一切条件自觉学习英语,养成习惯,从阅读理解学习。把英语阅读和写作养成一个习惯,终生受益。

第二种人是痴迷于钻研软件高深技术的人。

软件外包服务的很多工作都是非常琐碎的,看上去没有多少高深新技术的事务性工作。例如,对日软件外包的项目,客户已经编制好了程序框架,需要变成人员根据他们的规范编写代码和每天工作进度日志。不少外包编程人员抱怨客户限定的过于严格,没有足够的自我创造的空间。对于软件外包测试人员,最常见的工作就是执行客户编写好的测试用例,报告软件缺陷,很少有机会从软件项目的全局高度制定测试计划,确定测试方案和策略,安排资源和进度。

如果你对软件编程的各种新技术无限热爱,习惯于一个人无拘无束的从事软件产品的开发,最好不要去软件外包公司,否则很难发挥你的聪明才智。这样的人更适合自己创业开发独立的软件产品,或者到中国中小型软件公司当软件开发工程师。

第三种人是大事做不来,小事不愿做的人。

正如前面说过的,很多软件外包工作非常具体和琐碎,需要非常好的做事态度,满足客户各种合理的和不合理的要求。有些同学到软件外包公司工作不久就感到失望了,抱怨工作枯燥,看不到前途。这些都是刚参加不久的人容易产生的错误认识。

在任何软件外包公司,如果个人的工作能力非常突出,很容易被领导赏识和提升,因为软件外包发展太快了,对人才的需求非常强烈。但是如果不从具体的琐碎的小事做起,并且把小事做好,怎么能证明你可以把大事做好呢。

任何公司之所以能够生存、发展、壮大,必尤其成功之处,不要觉得你必老板高明很多。比较聪明的同学会放平心态,从学徒学起,把每一件工作都做好了,自己的长处得到发挥,对自己的前途发展大有帮助。

总结起来,不善于外与交流的,痴迷于钻研软件高新技术,不能踏踏实实工作的人,不适合到软件外包公司从事软件技术工作。


[9] - 如何通过软件外包公司的面试?

如何通过软件外包公司的面试?这是很多同学都很关注的问题。面试成功来自于应聘者自身的综合实力和运气。为了提高面试成功率,请按照以下几个方面进行准备。

(1)制作有吸引力的求职简历

外包公司的招聘专员每天都会收到几十封甚至上百封求职简历,如果你的简历很平淡,可能很快从招聘专员的眼下溜走,失去了面试的机会。

什么是有吸引力的简历? 简单地说就是让看到你简历的招聘专员相信你就是他们正在寻找的最合适的人。因此,你的简历要简明扼要,列举出符合他们要求的条件和相应的客观证据。要明白求职简历目的就是获得面试的机会,否则你的水平再高,也不可能进入招聘专员的“法眼”。

如何写出具有吸引力的简历,现在很多资料都比较详细,但是最重要的一点是实事求是,反对夸张和吹嘘。把你的技能和经验按照招聘职位的要求进行内容和形式的组织即可。

(2)准备面试

  • 了解要去面试的公司,可以浏览公司的网站,媒体报道,同学和朋友的介绍。
  • 了解公司的行业,规模,现状和发展概况。
  • 技术准备,准备应聘职位要求的技能
  • 模拟面试场景(包括英语自我介绍和书面答题)
  • 准备自我介绍、各种证书、笔试和面试解答问题
  • 计划乘车路线和穿着打扮等外表形象

(3)参加面试

  • 准时
  • 诚实
  • 积极
  • 友好
  • 不必不亢
  • 注意细节
  • 沉着冷静
  • 避免争论
  • 小心“陷阱”
  • 充分发扬长处
  • 展示个人综合能力
2006/11/9

有没有会开发网页的呀

今天把同事给我的dreamwraverMX2004的视频教程好好研究了一番
 
感觉真的很有意思!
因为以前开发网站的网页都是用Editplus手写的,所以委实吃了不少苦;
 
可是谁想今天好好研究了一番dreamwraver才发现,真是好用啊
 
想到自己的网站具有实用的功能和丰富的图形外观的时候,就连做梦也会笑的,呵呵,
 
所以,废话不说了,我要继续我的“开发”了!
2006/11/8

进度

这两天一直在忙着搞网站的开发,所以很少动笔,今天感觉手痒,于是就随手写写吧
相比最初学习struts的迷茫,现在感觉轻松了不少
通过实际动手,我也经初步了解整个框架的流程。
今天刚刚用java写了一个通用的数据库处理实用类,感觉好爽!不仅不这两天学习的java知识温习了一遍,
而且让我初步体会了oop设计的强大,呵呵,说实话,自己很喜欢面向对象!
目前,真个网站的struts搭建工作已经就绪,加上database实用类的连接成功,
相信在近期的开发中将会一马平川!!
 
继续加油!!
 
2006/10/23

轮廓与细节

今天是学习Struts的第7天,比前两天的感觉要好。
对于struts的基本流程我大概掌握了,也就是说整个框架的轮廓我了解了;
既然了解了整体的框架,那么下面的学习方向也就应该朝着局部细节努力了。
这两天我首先入手的是view部分,
它主要包括*.jsp文件和ActionForm Bean对象,
对于*.jsp文件来说我再熟悉不过了,因为我以前做的网站就是用jsp的model one开发的;
而ActionForm Bean呢,
是一个继承了ActionForm的java Bean,对于Bean的使用我也有一定的经验
于是这个大门算是被我给敲开了,呵呵:)
在ActionForm Bean中有两个比较特殊的方法决定了它与普通Bean的不同,
它们是validate()和reset()方法,
前者用于实现对表示层数据的检验,后者用于重新设置ActionForm Bean中的字段数据。
reset方法的调用是在请求的整个生存周期内被web容器自动调用的,
而validate方法则是在于其相对应的配置文件struts-config.xml写好并且允许被检测时才被调用。
 
除了Struts的相关知识,最近还一直在学习《Thinking in Java》,我希望能成为一名优秀web开发人员,为此我会好好努力的
哈哈,不说了,该睡了!
2006/10/18

初学Struts有感

今天是接触Struts的第4天
心情变得轻松起来
因为我终于慢慢找到了节奏
这就像马拉松一样
慢慢适应别人的速度了之后
也就进入了状态
今天仔细的研究了一下view部分
发现该部分确实不同于model1开发模式下的jsp
在Struts下的view部分,找不到java代码
有的只是整齐划一的标签
在我看来虽然也是标签,但它们却是html标签的变种
刚开始接触有些地方还不是很清楚
可能越往后学就会越清楚了吧
反正现在也是盲人摸象
争取尽早把它摸个遍:)
2006/10/15

对象中的“贵族”

“本是同根生,相煎何太急?”
 
     为了更好的学习Structs编程,今天从又拿出Bruce Eckel的《Java编程思想》来啃,真没想到,如同看黄色小说一般如痴如狂啊,没一会功夫就把第二章仔仔细细的看完了,意犹未尽呢~……
     第二章的故事主要围绕两个人物展开,他们就是对象君(对象类型)和基本君(基本类型)。故事从出生地开始,讲述了他们二位的不同人生。对象君出生在叫做“堆”的地方,名字显而易见,非常具有贫民化,从此对象君也就被定位为贫民;相反基本君出生在“堆栈”中,所谓“堆栈”无非比堆多出了一个“栈”字,可是,人生就是这么的不公平,仅凭着一个字基本君就出身贵族了。
     身为贵族的基本君确实要比对象君特殊许多,比如在过马路的时候,基本君可以直接横闯而不受限制,而对象君则要通过一个叫做new的工具才能通过,这还不算,虽说贵族和贫民有差别,可是,贵族却可以化身为贫民去体验贫民的生活,他们通过一个叫做包装器的玩意儿将自己化装一下就可以了;而可怜的基本君也只有眼红的份儿了,不能变为贵族去豪放一把。
     可是终归到底,他们都是对象,只不过基本是特殊的对象。唉,真没想到对象也有贵贱之分,真是世风日下啊~
2006/10/4

JSP连接数据库

       今天讨论的话题是如何在Jsp中实现简单的数据库连接。为此,本少辛辛苦苦的研究了一整个下午,现在简单的写下自己的方法,仅供读者参考。
       提到JDBC(java database connectivity)不能不提到下面几个变量,driverManager、Connection、Statement和ResultSet。它们在数据库的连接中起到了关键的作用(笔者使用的是JDBC-ODBC进行的实践),其中在连接数据库之前应首先将java.sql.*包加到代码中去,这是首要的前提。接下来是加载数据库驱动,可以通过Class.forName(drivername)来实现(注:drivername是我们加载的数据库驱动的名字),成功实现数据库驱动加载后通过driverManager(驱动管理器:介于驱动和数据库之间的管理者)的getConnection(url)方法来获得一个连接赋给Connection对象,这个连接就是驱动程序和所加载数据库的连接;获得连接之后,我们便可以通过连接对象Connection的createStatement()方法获得语句对象(注:Statement提供了可以在jsp中使用sql语句的功能),之后便可以成功的实现对数据库的操作了,操作之后的结果呢我们通过ResultSet结果集对象来获得,并且可以通过ResultSet的next()方法准确定位结果表中的每一行,通过ResultSet的get***()方法提取结果数据。
       哈哈,很简单吧。
2006/10/3

JDK的环境配置

     “万丈高楼平地起”,总得有坚实的地基才可以呀,那么今天我就来讲讲大家所熟识的JDK的环境配置吧。
     WInXP下JDK环境配置,如JAVA_HOME, PATH, CLASSPATH等。若jdk的目录是d:\jdk则添加环境变量如下:
     1. JAVA_HOME:  D:\jdk;
     2. CLASSPATH:  .;%JAVA_HOME%\jre\lib\rt.jar;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib;
     3. PATH:           在原有字段后添加%JAVA_HOME%\bin; 
 
     学东西要知其然更要知其所以然,下面具体讲解以下path和classpath的区别:
     path: 用来设置可执行文件(包括:.com, .exe, .bat等)的搜索路径。当运行一个可执行文件时,Dos会先在当前目录中搜索该文件,若找到则运行之;否则会根据path命令所设置的路径,顺序逐条的到各目录中搜索该文件;path命令中的路径,若有两条以上,各路径之间以一个分号";"隔开。
     classpath: 它是javac编译器的一个环境变量。它的作用与import\package关键字有关。
 
2006/9/28

耦合/内聚

简单地说,对象之间的耦合度就是对象之间的依赖性。指导使用和维护对象的主要问题是对象之间的多重依赖性。对象之间的耦合越高,维护成本越高。因此对象的设计应使类和构件之间的耦合最小。  

就是依赖性,相关性吧!!!  
  有软硬件之间的耦合,还有软件各模块之间的耦合。

耦合性是程序结构中各个模块之间相互关联的度量.它取决于各个模块之间的接口的复杂程度、调用模块的方式以及哪些信息通过接口.一般模块之间可能的连接方式有七种,耦合性由低到高分别是:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合。

 

耦合是对一个软件结构内各个模块之间互连程度的度量。

内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。

1. 什么是内聚?什么是耦合?
内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述
的是模块内的功能联系; 耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决
于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。
2. 内聚分为哪几类?耦合分为哪几类?
内聚有如下的种类,它们之间的内聚度由弱到强排列如下:
(1) 偶然内聚。模块中的代码无法定义其不同功能的调用。但它使该模块能执行不同
的功能,这种模块称为巧合强度模块。
(2) 逻辑内聚。这种模块把几种相关的功能组合在一起, 每次被调用时,由传送给模
块参数来确定该模块应完成哪一种功能
(3) 时间内聚
(4) 过程内聚
(5) 通信内聚
(6) 顺序内聚
(7) 功能内聚
耦合可以分为以下几种,它们之间的耦合度由高到低排列如下:
(1) 内容耦合。
(2) 公共耦合
20

(3) 外部耦合
(4) 控制耦合
(5) 标记耦合
(6) 数据耦合
(7) 非直接耦合
3.什么是时间内聚?什么是公共耦合?
时间内聚。这种模块顺序完成一类相关功能,比如初始化模块,它顺序为变量置初值。
如一组模块都访问同一全局数据结构,则称之为公共耦合。

牛郎和织女的克星

      MVC是Model-View-Controller的简称,即模型-视图-控制器。它对数据请求的管理非常的严格,并且强行将“牛郎”和“织女”分开,即将逻辑处理和图像表达分开。
      首先,controller接受用户的请求,并决定应该调用哪个modle来进行处理;然后model根据用户请求进行相应的业务逻辑处理,并返回数据;最后controller调用相应的view来格式化model返回的数据,并通过view呈现给用户。