置頂隨筆 #
2008年12月5日 #
當(dāng)然了,做攔截器有很多方式,但經(jīng)過研究發(fā)現(xiàn)DWR自帶很多插件,其中就有一個(gè)調(diào)用處理的插件。具體做法如下。
在web.xml里的DWR配置中加入一個(gè)參數(shù):






然后自己創(chuàng)建這個(gè)實(shí)現(xiàn)類。

































其中,檢查用戶是否登錄,如果沒有登錄就返回一個(gè)空的super.execute( new Calls());, 不能返回null否則會報(bào)錯(cuò)。
檢查通過就調(diào)用super.execute( calls ); 其實(shí)calls里還能獲得很多信息。
最后大家注意logOut方法,這里用到了DWR2.0新功能:DWR反向調(diào)用,就是DWR調(diào)用javascript,具體用法大家網(wǎng)上可以查到,需要配置的,我這里就不多說了。補(bǔ)充一下,addScript調(diào)用的是html里的function logOut().
這樣的話,如果用戶session超時(shí),或被管理員踢掉,一旦他做任何dwr操作就會被強(qiáng)迫登出到首頁了。
2008年8月7日 #
很久以前看某本書整理的,忘了哪本了,現(xiàn)在貢獻(xiàn)出來。
1)在select語句中使用條件邏輯

2

3

4

5

6

ENAME SAL STATUS
---------- ---------- ---------
SMITH 800 UNDERPAID
ALLEN 1600 UNDERPAID
WARD 1250 UNDERPAID
JONES 2975 OK
MARTIN 1250 UNDERPAID
BLAKE 2850 OK
CLARK 2450 OK
SCOTT 3000 OK
KING 5000 OVERPAID
TURNER 1500 UNDERPAID
ADAMS 1100 UNDERPAID
JAMES 950 UNDERPAID
FORD 3000 OK
MILLER 1300 UNDERPAID
2)從表中隨機(jī)返回n條記錄

2

3

4

5

6

7

3)按照子串排序
比如要從EMP表中返回員工名字和職位,并且按照職位字段最后2個(gè)字符排序

2

3

ENAME JOB
---------- ---------
KING PRESIDENT
SMITH CLERK
ADAMS CLERK
JAMES CLERK
MILLER CLERK
JONES MANAGER
CLARK MANAGER
BLAKE MANAGER
ALLEN SALESMAN
MARTIN SALESMAN
WARD SALESMAN
TURNER SALESMAN
SCOTT ANALYST
FORD ANALYST
4)處理空值排序
當(dāng)被排序的列存在空值,如果希望空值不影響現(xiàn)有排序

2

3

ENAME SAL COMM
------ ----- ---------
TURNER 1500 0
ALLEN 1600 300
WARD 1250 500
MARTIN 1250 1400
SMITH 800
JONES 2975
JAMES 950
MILLER 1300
FORD 3000
ADAMS 1100
BLAKE 2850
CLARK 2450
SCOTT 3000
KING 5000

2

3

ENAME SAL COMM
------ ----- ----------
SMITH 800
JONES 2975
CLARK 2450
BLAKE 2850
SCOTT 3000
KING 5000
JAMES 950
MILLER 1300
FORD 3000
ADAMS 1100
MARTIN 1250 1400
WARD 1250 500
ALLEN 1600 300
TURNER 1500 0
5)根據(jù)數(shù)據(jù)項(xiàng)的鍵排序
比如如果job是“SALESMAN”,根據(jù)COMM排序,否則根據(jù)SAL排序

2

3

ENAME SAL JOB COMM
---------- ---------- --------- ----------
TURNER 1500 SALESMAN 0
ALLEN 1600 SALESMAN 300
WARD 1250 SALESMAN 500
SMITH 800 CLERK
JAMES 950 CLERK
ADAMS 1100 CLERK
MARTIN 1250 SALESMAN 1300
MILLER 1300 CLERK
CLARK 2450 MANAGER
BLAKE 2850 MANAGER
JONES 2975 MANAGER
SCOTT 3000 ANALYST
FORD 3000 ANALYST
6)從一個(gè)表中查找另一個(gè)表中沒有的值
比如要從DEPT中查找在表EMP中不存在數(shù)據(jù)的所有部門(數(shù)據(jù)中,DEPTNO值為40的記錄在表EMP中不存在)

2

3

7)在運(yùn)算和比較時(shí)使用null值
null不會等于和不等于任何值,null和自己都不等于。以下例子是當(dāng)comm有null的情況下列出比“WARD”提成低的員工。 (coalesce函數(shù)將null轉(zhuǎn)換為其他值)

2

3

4

5

ENAME COMM COALESCE(COMM,0)
---------- ---------- ----------------
SMITH 0
ALLEN 300 300
JONES 0
BLAKE 0
CLARK 0
SCOTT 0
KING 0
TURNER 0 0
ADAMS 0
JAMES 0
FORD 0
MILLER 0
8)刪除重復(fù)記錄
對于名字重復(fù)的記錄,保留一個(gè)

2

3

4

9)合并記錄
比如如下需求:
如果表EMP_COMMISSION中的某員工也存在于EMP表,那么更新comm為1000
如果以上員工已經(jīng)更新到1000的員工,如果他們SAL少于2000,刪除他們
否則,從表中提取該員工插入表EMP_COMMISSION

2

3

4

5

6

7

8

9

10)用sql生成sql

2

(user_tables是oracle的元數(shù)據(jù)表之一)
CNTS
----------------------------------------
select count(*) from ANT;
select count(*) from BONUS;
select count(*) from DEMO1;
select count(*) from DEMO2;
select count(*) from DEPT;
select count(*) from DUMMY;
select count(*) from EMP;
select count(*) from EMP_SALES;
select count(*) from EMP_SCORE;
select count(*) from PROFESSOR;
select count(*) from T;
select count(*) from T1;
select count(*) from T2;
select count(*) from T3;
select count(*) from TEACH;
select count(*) from TEST;
select count(*) from TRX_LOG;
select count(*) from X;
11)計(jì)算字符在字符串里的出現(xiàn)次數(shù)
判斷字符串里有多少個(gè)‘ , ’

2

3

4

先計(jì)算原字符串長度,再減去去掉逗號的長度,這個(gè)差再除以‘,’的長度
12)將數(shù)字和字母分離
原數(shù)據(jù)是:
DATA
---------------
SMITH800
ALLEN1600
WARD1250
JONES2975
MARTIN1250
BLAKE2850
CLARK2450
SCOTT3000
KING5000
TURNER1500
ADAMS1100
JAMES950
FORD3000
MILLER1300

2

3

4

5

6

7

8

9

10

ENAME SAL
---------- ----------
SMITH 800
ALLEN 1600
WARD 1250
JONES 2975
MARTIN 1250
BLAKE 2850
CLARK 2450
SCOTT 3000
KING 5000
TURNER 1500
ADAMS 1100
JAMES 950
FORD 3000
MILLER 1300
思路是很復(fù)雜的,比如先去除數(shù)字,是先把所有數(shù)字翻譯為0,然后用replace去掉0.
13)根據(jù)表中的行創(chuàng)建分割列表
表中數(shù)據(jù):
DEPTNO EMPS
------ ----------
10 CLARK
10 KING
10 MILLER
20 SMITH
20 ADAMS
20 FORD
20 SCOTT
20 JONES
30 ALLEN
30 BLAKE
30 MARTIN
30 JAMES
30 TURNER
30 WARD

2

3

4

5

6

7

8

9

10

11

12

13

14

查詢結(jié)果
DEPTNO EMPS
------- ------------------------------------
10 CLARK,KING,MILLER
20 SMITH,JONES,SCOTT,ADAMS,FORD
30 ALLEN,WARD,MARTIN,BLAKE,TURNER,JAMES
14)按字母順序排序

2

3

4

5

6

7

8

9

10

11

12

You would like the result to be:
OLD_NAME NEW_NAME
---------- --------
ADAMS AADMS
ALLEN AELLN
BLAKE ABEKL
CLARK ACKLR
FORD DFOR
JAMES AEJMS
JONES EJNOS
KING GIKN
MARTIN AIMNRT
MILLER EILLMR
SCOTT COSTT
SMITH HIMST
TURNER ENRRTU
WARD ADRW
2007年6月18日 #
本周5是我們計(jì)算機(jī)專業(yè)畢業(yè)設(shè)計(jì)答辯日,我提前4天來到學(xué)校,帶著3月份早就完成的畢業(yè)設(shè)計(jì)。真是讓我大吃一驚,很多同學(xué)竟然都下載或者花錢買了畢業(yè)設(shè)計(jì)或者找人幫忙做來交差,這個(gè)數(shù)量我估計(jì)至少有5成。我的一個(gè)好友,更是夸張,什么都沒做,要我?guī)退?天內(nèi)搞定,我慌了,真把我當(dāng)超人了,不過還好,由于她那個(gè)東西確實(shí)沒什么內(nèi)容,我趕了一下還是幫她搞定了,實(shí)在是沒啥內(nèi)容的畢業(yè)設(shè)計(jì)。最搞笑的是還有些同學(xué)。。。,由于不是自己做的東西,而且連代碼也看不懂,運(yùn)行出錯(cuò)都不知如何解決,只會找別人求助,還天真地說:奇怪,怎么不行呢?原來明明看到可以運(yùn)行的。。。。 我要他自己去debug一下,結(jié)果,連開發(fā)工具也沒用過,怎么在開發(fā)工具里跑一個(gè)工程debug也根本不會,我再次無話可說。
同學(xué)們啊,你們不是高中生,你們是重點(diǎn)大學(xué)計(jì)算機(jī)專業(yè)應(yīng)屆畢業(yè)生啊,怎么就像沒讀過大學(xué)一樣,你們到底在4年里干了什么啊。
然后更讓人心寒的是:答辯時(shí),很多老師都自己什么也不會,或者只會皮毛,看著同學(xué)的畢業(yè)設(shè)計(jì),除了問點(diǎn)需求問題,再也問不出任何技術(shù)問題了,最后就草草答辯完,給個(gè)分?jǐn)?shù)就算過了。我在答辯時(shí),也懶得把架構(gòu)和技術(shù)應(yīng)用來說了,實(shí)在是對牛彈琴。學(xué)生墮落,教師應(yīng)付,學(xué)校亂搞擴(kuò)招,公司高薪招不到人才,中國軟件業(yè)的未來有何希望!
當(dāng)然,還是有10%左右的學(xué)生很優(yōu)秀,有些做了很不錯(cuò)的java ee程序,有些自己研究做了簡易3D游戲引擎,還有些同學(xué)水平不怎么樣,但通過自己努力獨(dú)立完成了,雖然做得不怎么好,但學(xué)到很多東西,也是自己勞動汗水,但是這些同學(xué)太少太少。。。
2007年3月3日 #
其它方式:對象冒充,call(),apply(),原型鏈都有不少缺點(diǎn)這里就不一一介紹了,想了解的可以去看一下這本著作的第4章節(jié)。
這種方法用對象冒充繼承屬性,用原型鏈繼承方法,代碼如下
???? this .color? = ?sColor;
}
ClassA.prototype.sayColor? = ? function (){
????alert( this .color);
}
function ?ClassB(sColor,?sName){
????ClassA.call( this .?sColor);
???? this .name? = ?sName;
}
ClassB.prototype? = ? new ?ClassA();
ClassB.prototype.sayName? = ? function (){
????alert( this .name);
}
測試:
var ?objB? = ? new ?ClassB( " blue " ,? " Nicholas " );
objA.sayColor();? // red
objB.sayColor();? // blue
objB.sayName();?? // Nicholas
其它好方法,請參考zlnherit庫和xbObjects
2007年2月14日 #
1.有個(gè)大大提高性能的建議:
比如得到list 是5個(gè)班級,然后要得到5個(gè)班級的所有學(xué)生
垃圾辦法:5次通過級聯(lián)獲得,等于執(zhí)行5條sql語句
好辦法:
???????? " from?User?a,Clazz?b?where?a.clazz=b?and?b?in(:clazz) " )
?.setParameterList( " clazz " ,?list)
?.list();
僅執(zhí)行一條
2.還有個(gè)很實(shí)用的方法,如何通過hql語句返回多個(gè)po
? " from?User?a,Clazz?b?where?a.clazz=b " ).list();
// 使用的時(shí)候:
Iterator?it? = ?list.iterator();
??
while (it.hasNext()){
?Object[]?vo? = ?(Object[])it.next();
?User?user? = ?(User)vo[ 0 ];
?Clazz?clazz? = ?(Clazz)vo[ 1 ];
?System.out.println(user.getUserName()? + ? " , " ? + ?clazz.getClassName());
}?
3.我們?nèi)坑靡粚σ唬鄬σ坏取H绻^濾有問題,有個(gè)辦法
2007年2月11日 #
其它方式:工廠方式,構(gòu)造函數(shù)方式,原型方式都各有各的大缺陷,這里就不一一介紹了,想了解的可以去看一下這本著作的第3章節(jié)。
1. 混合構(gòu)造函數(shù)/原型方式
?? this .color? = ?sColor;
?? this .doors? = ?iDoors;
?? this .mpg? = ?iMpg;
?? this .drivers? = ? new ?Array(“Mike”,?“Sue”);
}
Car.prototype.showColor? = ? function ?()?{
??alert( this .color);
};
var ?oCar1? = ? new ?Car(“red”,? 4 ,? 23 );
var ?oCar2? = ? new ?Car(“blue”,? 3 ,? 25 );
oCar1.drivers.push(“Matt”);
alert(oCar1.drivers);? // outputs?“Mike,Sue,Matt”
alert(oCar2.drivers);? // outputs?“Mike,Sue”
優(yōu)點(diǎn):具有其它方式的優(yōu)點(diǎn)而沒有其它方式的缺點(diǎn)
不足:封裝性欠缺
2 . 動態(tài)原型方式




















優(yōu)點(diǎn):封裝性比上一個(gè)方式更好
不足:就是看上去奇怪一點(diǎn),呵呵
總之,以上2種方式是目前最廣泛使用的,盡量使用它們避免不必要的問題。
2007年2月8日 #
v0.9 點(diǎn)擊下載
有些錯(cuò)別字,我會在以后版本更正
花了幾周把DWR中文文檔.PDF給搞出來了
這是首次發(fā)布在網(wǎng)上
希望對大家有用
有任何意見請發(fā)我郵箱:jorwen.fang@gmail.com,或者在此留言
第一版目錄預(yù)覽:
第1章. DWR入門 8
1.1 簡介 8
1.2 第一個(gè)DWR程序:Hello World 9
1.2.1 將DWR放入你的工程 9
1.2.2 編輯配置文件 9
1.2.3 編寫service 10
1.2.4 測試DWR 10
1.2.5 編寫一個(gè)jsp 11
1.3 本章總結(jié) 12
第2章. web.xml配置 13
2.1 主要配置 13
2.2 常用<init-param>參數(shù)列表 14
2.2.1 安全參數(shù) 14
2.2.2 Ajax服務(wù)器加載時(shí)保護(hù)參數(shù) 14
2.2.3 其他參數(shù) 15
2.3 日志配置 16
2.4 多個(gè)dwr.xml配置和J2EE角色定義 16
2.5 插件配置 18
2.6 測試模式配置 19
第3章. dwr.xml配置 20
3.1 縱覽 20
3.2 <init>標(biāo)簽 20
3.3 <allow>標(biāo)簽 21
3.3.1 Creator 21
3.3.2 Converter 25
3.4 <signatures>標(biāo)簽 30
第4章. 整合 32
4.1 DWR與Servlet 32
4.1.1 使用webContext的方法: 32
4.1.2 方法選擇 32
4.2 DWR與Spring 34
4.2.1 讓DWR和Spring一起工作的檢查列表 34
4.2.2 Spring Creator 34
4.2.3 找到Spring配置文件 34
4.2.4 使用Spring配置DWR 35
4.3 DWR與JSF 36
4.3.1 JSF Creator 36
4.3.2 Servlet Filter 36
4.4 DWR與Struts 37
4.4.1 Struts creator 37
4.4.2 開始順序 37
4.5 DWR與Weblogic或PageFlow 38
4.6 DWR與Hibernate 39
4.6.1 讓DWR和Hibernate一起工作的檢查列表 39
4.6.2 HibernateBeanConverter 39
4.6.3 Session管理 39
4.7 DWR與WebWork 40
4.7.1 配置dwr.xml 40
4.7.2 在JSP中導(dǎo)入腳本 40
4.7.3 高級 41
4.8 DWR與Acegi 42
4.8.1 問題提出 42
4.8.2 解決方案 42
第5章. DWR中的JavaScript簡介 44
5.1 簡單的回調(diào)函數(shù) 44
5.2 調(diào)用元數(shù)據(jù)對象 45
5.3 查找回調(diào)函數(shù) 45
5.4 創(chuàng)造一個(gè)與Java對象匹配的Javascript對象 46
第6章. engine.js 功能 47
6.1 使用選項(xiàng) 47
6.2 選項(xiàng)索引 48
6.2.1 處理器(Handler) 48
6.2.2 調(diào)用處理器(Call Handler) 48
6.2.3 Hooks (一個(gè)batch中可以注冊多個(gè)hook) 49
6.2.4 全局選項(xiàng)(在單次調(diào)用或者批量調(diào)用中不可用) 49
6.2.5 廢棄的選項(xiàng) 49
6.2.6 未來版本的選項(xiàng) 49
6.3 選項(xiàng)說明 50
6.3.1 批量調(diào)用 50
6.3.2 順序調(diào)用 50
6.3.3 錯(cuò)誤警告和超時(shí) 50
6.3.4 遠(yuǎn)程調(diào) Hooks 51
6.3.5 遠(yuǎn)程調(diào)用選項(xiàng) 51
第7章. util.js 功能 54
7.1 $() 54
7.2 addOptions and removeAllOptions 54
7.3 addRows and removeAllRows 55
7.4 getText 56
7.5 getValue 56
7.6 getValues 57
7.7 onReturn 57
7.8 selectRange 57
7.9 setValue 58
7.10 setValues 58
7.11 toDescriptiveString 58
7.12 useLoadingMessage 58
7.13 Submission box 61
第8章. DWR進(jìn)階 63
8.1 DWR Annotations 63
8.1.1 初始配置 63
8.1.2 遠(yuǎn)程訪問類 63
8.1.3 對象轉(zhuǎn)換 64
8.2 錯(cuò)誤和異常處理 64
8.2.1 錯(cuò)誤處理 64
8.2.2 異常 65
8.2.3 找出更多的信息 65
8.3 傳遞額外的數(shù)據(jù)到callback函數(shù) 66
8.4 從其他的URL讀取數(shù)據(jù) 67
8.5 安全 68
第9章. 范例精講 71
9.1 購物車 71
9.1.1 介紹 71
9.1.2 實(shí)現(xiàn)目錄 72
9.1.3 測試部署 74
9.1.4 調(diào)用遠(yuǎn)程對象 75
9.1.5 實(shí)現(xiàn)購物車 77
9.1.6 調(diào)用遠(yuǎn)程的 Cart 方法 79
9.1.7 演示結(jié)果 81
9.1.8 總結(jié) 81
第10章. 附錄 83
10.1 常見問題 83
10.1.1 TransformerFactoryConfigurationError 83
10.1.2 XML解析錯(cuò)誤 83
10.1.3 使用weblogic的類路徑問題 83
10.1.4 沒有cookies的情況下用DWR 84
10.2 JavaScript高級應(yīng)用 85
10.2.1 用變量操縱函數(shù) 85
10.2.2 高階函數(shù) 86
10.2.3 動態(tài)類型 87
10.2.4 靈活的對象模型 89
10.2.5 本節(jié)總結(jié) 91
2006年10月3日 #
??? 2:上面說到外包的那么多缺點(diǎn),我們不做總可以了吧?但為什么還有那么多的人樂此不彼呢?原因大概有這么兩點(diǎn):中國的軟件產(chǎn)業(yè)從98年開始茁壯的開始成長,到2001已經(jīng)發(fā)展的很火爆,仔細(xì)想想當(dāng)時(shí)97屆的計(jì)算機(jī)畢業(yè)生(2001年畢業(yè)),基本上沒畢業(yè)就找好工作了,沒找到工作的只是寥寥幾人,可以想象當(dāng)時(shí)的計(jì)算機(jī)行業(yè)相當(dāng)紅火。可2002年隨著全球IT產(chǎn)業(yè)的不景氣,中國的軟件行業(yè)已經(jīng)逐漸走下坡路,很多軟件公司倒閉,破產(chǎn)。也就是說,現(xiàn)在的軟件行業(yè)不好做了,最起碼不如以前了。在這種情況下,合理的利用外來資產(chǎn)來發(fā)展壯大中國的軟件行業(yè)也不失為一種對策。還有一個(gè)原因:我國的軟件行業(yè)屬于起步比較晚,經(jīng)驗(yàn)和人才相對匱乏,和日本等發(fā)達(dá)國家合作,可以為我們培養(yǎng)出很多高水平的管理和開發(fā)人員。曾經(jīng)問過一些在北京工作的軟件開發(fā)人員,他們通常寫代碼不寫注釋,也用不寫軟件開發(fā)的相關(guān)文檔。試想這樣的軟件產(chǎn)品的質(zhì)量能放心的了么?而在外包公司,這種現(xiàn)象是根本不能發(fā)生的。即使,技術(shù)含量再低的工作,內(nèi)部設(shè)計(jì)書,詳細(xì)設(shè)計(jì)書,單體測試報(bào)告…這都是不可缺少的產(chǎn)品的一部分,而且國外公司對這些文檔的要求都是比較嚴(yán)格的。做任何事情都要按著一定的規(guī)范來做,雖說有些繁瑣,但對于沒有太多經(jīng)驗(yàn)的程序員來說,書寫技術(shù)文檔對其事業(yè)發(fā)展是很有好處的,也是非常有必要的。
????? 總體來說,軟件外包有利有弊。我認(rèn)為對我國目前軟件產(chǎn)業(yè)不太成熟的現(xiàn)狀來說,軟件外包的利大于弊。做任何事業(yè)總要付出犧牲,而中國軟件事業(yè)犧牲的確是我們這一代程序員。
作者:崔啟亮, 原始出處:軟件質(zhì)量研究網(wǎng)www.sqstudy.org?
目前已經(jīng)進(jìn)駐上海的知名全球服務(wù)外包企業(yè)包括埃森哲、優(yōu)利、NCS、博朗、愛特優(yōu)科等
目錄:
[0] - 為什么要對大學(xué)生談軟件外包?
[1] - 什么是軟件外包?
[2] - 軟件為什么要外包?
[3] - 為什么要承接軟件外包
[4] - 做軟件外包有前途嗎?
[5] - 外包公司是怎么工作的?
[6] - 有哪些好的外包公司?
[7] - 軟件外包公司需要什么樣的人?
[8] - 哪些人不適合做軟件外包技術(shù)人員?
[9] - 如何通過軟件外包公司的面試?
[0] - 為什么要對大學(xué)生談軟件外包?
中國軟件外包行業(yè)這幾年成為發(fā)展最為迅速的行業(yè)之一,無論你是在校的大學(xué)生,還是即將畢業(yè)的同學(xué),都有必要了解這個(gè)行業(yè)。如果你是軟件相關(guān)專業(yè)的同學(xué),或者畢業(yè)后準(zhǔn)備從事軟件行業(yè),那么更應(yīng)該關(guān)注軟件外包這個(gè)行業(yè)。
盡管網(wǎng)上已經(jīng)有很多關(guān)于軟件外包的信息,但是這些信息很多都是媒體記者的報(bào)道,他們只是從旁觀者的角度看待軟件外包,缺乏一定的深度和實(shí)踐感受。還有一些來自非軟件外包的人士,基于他們主觀的理解和推測,認(rèn)為軟件外包是很低級的工作,為軟件外包工作潑冷水,影響了對軟件外包工作的正確認(rèn)識,造成了軟件外包的“中國式誤會”。
大學(xué)生接受了系統(tǒng)的高等教育,具有牢固的知識基礎(chǔ),而且具有極強(qiáng)的可塑性和學(xué)習(xí)能力,是未來軟件外包行業(yè)的主力軍。但是,他們參加軟件外包實(shí)際項(xiàng)目的機(jī)會和經(jīng)驗(yàn)畢竟很少,對于軟件外包有很多模糊的認(rèn)識。由于教材的更新需要更長的周期,高校教師如果沒有豐富的外包企業(yè)經(jīng)驗(yàn),很難把軟件外包的實(shí)際知識傳授給學(xué)生,因此,外包企業(yè)從業(yè)人員有必要向這些高校學(xué)生交流一些軟件外包企業(yè)的實(shí)際情況。
那么什么是軟件外包?軟件為什么要外包?中國軟件外包的現(xiàn)狀如何?將來做軟件外包是否有前途?這些問題可能很多同學(xué)不是很清楚,如果今后打算進(jìn)入這個(gè)行業(yè),則從現(xiàn)在開始就需要先了解這些問題的答案。
筆者具有多年的軟件外包公司工作經(jīng)驗(yàn),對于軟件外包行業(yè)一直積極關(guān)注,并且積極與國內(nèi)外同行交流,對軟件外包有些自己的體會,借此機(jī)會與個(gè)位同學(xué)進(jìn)行交流。
?[1] - 什么是軟件外包?
軟件外包就是軟件開發(fā)商(簡稱“發(fā)包方”)將軟件開發(fā)的一部分或者全部,發(fā)給別的軟件公司(簡稱“接包方”)去完成。
我們通常說的中國外包公司很多都是“接包方”,主要從日本和歐美等國承接軟件外包項(xiàng)目的技術(shù)工作。現(xiàn)在軟件行業(yè)比較發(fā)達(dá)的美國、歐洲和日本是最大的“發(fā)包方”市場。
由于軟件外包是軟件全球性生產(chǎn)方式,所以存在很多關(guān)于外包的英文術(shù)語。外包的英文單詞是“Outsourcing”。站在“發(fā)包方”的角度,把“接包方”成為“Vendor(外包服務(wù)商)”。站在“接包方”角度,把“發(fā)包方”成為“Client(客戶)”
軟件外包與其他外包其實(shí)沒有本質(zhì)區(qū)別,就是雙方合作把一個(gè)很復(fù)雜的、較大的軟件項(xiàng)目分工合作,共同做好。其實(shí)在其他行業(yè),外包已經(jīng)實(shí)施了很長時(shí)間,例如汽車行業(yè),生產(chǎn)汽車的公司(比如一汽集團(tuán))他們先設(shè)計(jì)好汽車的結(jié)構(gòu),完成主要部件的生產(chǎn),把很多零件外包給很多廠家加工,然后采用完成整個(gè)車輛的安裝和制造。
現(xiàn)在人們很關(guān)注軟件外包,就是因?yàn)橥獍谲浖袠I(yè)應(yīng)用的時(shí)間還很短,而且軟件生產(chǎn)存在很多不可見因素,軟件外包的優(yōu)勢和好處,還沒有被普遍了解和感受。
總結(jié)一句話,軟件外包就是軟件生產(chǎn)的分工和合作,主要目標(biāo)就是生產(chǎn)出好的軟件。
[2] - 軟件為什么要外包?
同學(xué)們可能都聽說了,現(xiàn)在印度和中國做軟件外包“火得不得了”,越來越多的歐美大型軟件公司都把軟件外包給印度和中國。為什么會出現(xiàn)這種現(xiàn)象呢?
要回答這個(gè)問題,不能簡單的從發(fā)包方或者接包方一個(gè)方面尋找答案。因?yàn)椤耙粋€(gè)巴掌拍不響”,要實(shí)現(xiàn)軟件外包,必須雙方都有需求、有能力、愿合作才行。而且不能把目光只盯在中國一個(gè)國家,還需要從全球軟件行業(yè)的整體來看待和理解。
為什么軟件外包能發(fā)展的這么快呢?主要原因在于通過軟件外包,發(fā)包方和接包方都獲得了可觀的利益,非常具有現(xiàn)實(shí)意義。說得更簡單一點(diǎn),就是雙方都獲得了好處,大家是互相合作的伙伴。
作為發(fā)包方,可以獲得下列好處:
- 降低軟件項(xiàng)目成本
- 提高軟件質(zhì)量
- 縮短軟件開發(fā)周期
怎么理解軟件外包能較低軟件項(xiàng)目成本呢?
大家可能聽說過,美國的軟件技術(shù)人員的工資比中國同等水平的人員要高5到10倍,所以不少美國的軟件開發(fā)公司都把軟件開發(fā)和測試的工作,發(fā)到中國的軟件外包公司來作,可以大幅度的降低成本。對于中國的軟件外包公司,他們從國外客戶承接外包項(xiàng)目,可以獲得很穩(wěn)定也很好的項(xiàng)目價(jià)格,所以很樂意做軟件外包服務(wù)商(Vendor)。
說到通過軟件外包提高軟件質(zhì)量,可能很多人不理解。舉個(gè)例子就明白了。
美國微軟(Microsoft)公司是全球最大的軟件公司,現(xiàn)在正在開發(fā)的Windows Vista新操作系統(tǒng),需要同時(shí)發(fā)布多個(gè)語言的本地化軟件,例如英語、簡體中文、繁體中文、日語、韓語、德語、法語、阿拉伯語等。這些語言的本地化版本的翻譯、編譯、測試,如果全部在微軟公司內(nèi)部完成,那么微軟需要招聘大量的精通每種語言和軟件技術(shù)的工程師,否則語言質(zhì)量肯定不能保證。如果把這些工作外包給專業(yè)的軟件本地化外包公司,軟件本地化是這些外包公司的強(qiáng)項(xiàng),所以可以顯著的提高軟件質(zhì)量。
軟件外包能縮短軟件開發(fā)周期的道理很容易理解,如果很復(fù)雜的軟件開發(fā)工作都在一個(gè)公司內(nèi)部完成,那么可能耗費(fèi)1年甚至幾年的時(shí)間。例如,如果Microsoft Windows Vista的軟件需求分析、框架設(shè)計(jì)、詳細(xì)設(shè)計(jì)、軟件編碼、軟件測試、軟件多語言本地化等工作都在Microsoft公司內(nèi)部實(shí)現(xiàn),那么微軟可能需要招聘很多的內(nèi)部員工,動用很多的項(xiàng)目經(jīng)理管理這些人員,對這些人員進(jìn)行技術(shù)、語言和流程培訓(xùn),花費(fèi)的時(shí)間肯定比外包更長。這樣的軟件即使開發(fā)出來了,等到能夠發(fā)布這些技術(shù)可能過時(shí)了,其他競爭對手的相似產(chǎn)品肯定已經(jīng)早已占領(lǐng)了市場。
現(xiàn)在是網(wǎng)絡(luò)信息時(shí)代,時(shí)間就是金錢,速度就是效益,“快魚吃慢魚”,實(shí)現(xiàn)搶先推出新產(chǎn)品,誰就可能占領(lǐng)更多的市場份額。
[3] - 為什么要承接軟件外包?
前面提到了軟件開發(fā)商通過軟件外包,可以達(dá)到降低軟件成本、提高軟件質(zhì)量和縮短開發(fā)周期的好處,所以大型軟件開發(fā)商很愿意把軟件的一部分工作外包給專業(yè)的軟件外包公司。
那么軟件外包公司為什么愿意從事這種接包工作呢?
我們可以從以下幾個(gè)方面分析這個(gè)問題。
- 承接軟件外包工作可以獲得穩(wěn)定的、較高的利潤
- 承接軟件外包可以學(xué)習(xí)軟件的先進(jìn)技術(shù)和管理方法
- 承接軟件外包可以加速企業(yè)國際化步伐
下面對這幾點(diǎn)進(jìn)一步說明。
軟件外包的接包方都是人力成本較低的國家和地區(qū),例如中國和印度的軟件開發(fā)和測試工程師的平均工資比歐美同等級別的人員要便宜很多。這樣看來即使發(fā)包方發(fā)來的外包項(xiàng)目的價(jià)格不很高,但是對于這些國家的外包公司看來,還是價(jià)格很高的。
通過舉個(gè)實(shí)際的例子來算算“經(jīng)濟(jì)帳”,假設(shè)美國軟件公司發(fā)給中國軟件外包公司做軟件測試的項(xiàng)目,按照沒個(gè)測試工程師每小時(shí)15美元計(jì)算,每天8小時(shí)公司可以獲得120美元。每個(gè)月按照22天計(jì)算,外包公司可以從每個(gè)測試工程師獲得120*22=2640美元。如果按照1美元=8人民幣元計(jì)算,是21120人民幣元。一般軟件外包公司發(fā)給員工的工資大約4000到8000人民幣元,另外除去運(yùn)營成本和各種稅費(fèi),外包公司獲得的純利潤高于15%到20%。
15%到20%的純利潤是個(gè)什么程度?熟悉中國軟件開發(fā)行業(yè)的同學(xué)可能知道,由于中國開發(fā)的通用軟件受到盜版的影響,利潤非常少,甚至無法收回投資。另外,中國軟件行業(yè)競爭太激烈了,經(jīng)常為了投一個(gè)“招標(biāo)項(xiàng)目”,大家靠拉關(guān)系,拼價(jià)格,即使最后搶到這個(gè)項(xiàng)目,價(jià)格已經(jīng)很低了,再加上內(nèi)部開發(fā)成本逐年上升,經(jīng)常是項(xiàng)目做完了,所賺無幾,甚至賠錢。2005年中國軟件開發(fā)行業(yè)的利潤整體下滑,有媒體報(bào)道說降到了5%。一般企業(yè)正常發(fā)展的凈利潤應(yīng)該高于11%,否則生存就有了問題,更別談什么發(fā)展了。
承接軟件外包可以學(xué)習(xí)軟件的先進(jìn)技術(shù)和管理方法。軟件發(fā)包方都是較為成熟的大型國際化軟件公司,他們在技術(shù)和管理上積累了成功的流程和方法。對于中國軟件公司,很多還停留在100人以下的小規(guī)模,很少具有開發(fā)和管理大型國際化軟件的經(jīng)驗(yàn),也沒有這方面的整體實(shí)力。通過承接大型軟件公司的外包項(xiàng)目,可以鍛煉隊(duì)伍,學(xué)習(xí)各種開發(fā)和測試技術(shù)、項(xiàng)目流程規(guī)劃,項(xiàng)目管理等多方面的技術(shù)。其實(shí)印度規(guī)模較大的外包公司,塔塔咨詢(TCS),InfoSys等最早也是從承接美國的軟件外包測試開始的,現(xiàn)在都超過了5萬人,現(xiàn)在可以承接大型軟件的咨詢和設(shè)計(jì)任務(wù),在美國市場上直接和IBM、HP等大型公司正面競爭。
承接軟件外包可以加速企業(yè)國際化步伐。企業(yè)國際化是現(xiàn)在中國企業(yè)喊的最多的口號,但是真正成功實(shí)現(xiàn)了國際化的中國企業(yè)還不多。多年來缺乏與國外的交流,中國人的頭腦形成了很多僵化的意識。承擔(dān)軟件外包項(xiàng)目,可以與國外客戶直接交流,學(xué)習(xí)行業(yè)國際規(guī)則,維持良好的國際客戶關(guān)系,了解國外市場的現(xiàn)狀,為將來企業(yè)進(jìn)軍國際化做好物質(zhì)和市場準(zhǔn)備。
正是基于承接軟件外包的種種好處,國內(nèi)很多的軟件公司紛紛加入軟件外包測試的大軍,大家就像發(fā)現(xiàn)了新的金礦,樂詞不彼,準(zhǔn)備大干一場。甚至某些以開發(fā)產(chǎn)品或?qū)I(yè)服務(wù)為主的公司,例如用友、東軟和神州數(shù)碼都加大了承接外包項(xiàng)目的力度。
有消息稱,在未來2年內(nèi),中國的軟件外包公司將到納斯達(dá)克上市,成為新的中國外包概念股。
?[4] - 做軟件外包有前途嗎?
俗話說:“男怕入錯(cuò)行”,如果你進(jìn)入了一個(gè)沒有前途的行業(yè),即使你的能力再高,你的發(fā)展空間也很有限。對于,剛剛畢業(yè)的大學(xué)生,第一份工作非常重要,甚至?xí)绊懸簧穆殬I(yè)生涯。
軟件外包是全球軟件行業(yè)新興的行業(yè),是經(jīng)濟(jì)全球化和軟件產(chǎn)業(yè)全球分工的產(chǎn)物。大家知道全球化已經(jīng)深入到我們生活的每個(gè)方面,我國的改革開放就是順應(yīng)了時(shí)代潮流。
對于中國而言,軟件外包的發(fā)展更是如火如荼,屬于典型的IT“朝陽行業(yè)”。每年的增長速度都在50%以上,特別對于中國的軟件外包公司,他們每年的業(yè)務(wù)都是100%的速度增長,發(fā)展勢頭不可阻擋。
從事軟件外包工作的好處之一是可以在短期內(nèi)獲得職業(yè)提升的機(jī)會。現(xiàn)在中國軟件外包行業(yè)如果具有5年以上的工作經(jīng)驗(yàn),就可以成為外包的有經(jīng)驗(yàn)專才了。很多大學(xué)生進(jìn)入軟件外包公司工作2到3年,如果學(xué)習(xí)能力和交流能力好,可以成為項(xiàng)目經(jīng)理或者部門經(jīng)理。
從事軟件外包工作的好處之二是可以學(xué)習(xí)和培養(yǎng)國際化思維方式和工作方式。前面已經(jīng)談到,軟件外包是全球合作的工作方式。做軟件外包工作,有機(jī)會學(xué)習(xí)先進(jìn)的軟件設(shè)計(jì)和測試方法,學(xué)會管理大型的、多個(gè)團(tuán)隊(duì)協(xié)作的軟件項(xiàng)目,要和多個(gè)國家和地區(qū)的技術(shù)人員和管理人員進(jìn)行英語或者日語交流。這樣可以提高語言表達(dá)能力,團(tuán)隊(duì)交流能力,遵守科學(xué)的生產(chǎn)流程,成為熟悉國際市場和技術(shù)的職業(yè)人士,對于將來的職業(yè)發(fā)展大有幫助。
而如果畢業(yè)后到一個(gè)小的軟件公司工作,由于中國的小軟件公司很多都是10多個(gè)或者幾十個(gè)人的手工作坊式公司,企業(yè)內(nèi)部缺乏完善的流程,管理混亂,粗放式經(jīng)營,依靠個(gè)別高手的能力,這樣的環(huán)境很不容易學(xué)習(xí)到關(guān)鍵技術(shù),而且還會養(yǎng)成隨意的、不善交流的獨(dú)立自我的工作習(xí)慣。這種習(xí)慣一旦養(yǎng)成對于今后的職業(yè)發(fā)展是大為不利的。
因此,大學(xué)畢業(yè)生投身做軟件外包,就是進(jìn)入了一個(gè)發(fā)展前途十分可觀的“朝陽行業(yè)”,通過自身的不斷努力,有希望在短期內(nèi),成為熟悉國際化行業(yè)規(guī)則的技術(shù)和管理人才,成為職場上非常有競爭力的軟件專家。
[5] - 外包公司是怎么工作的?
進(jìn)入軟件外包企業(yè)后,為了盡快適應(yīng)新環(huán)境,完成日常工作,需要了解軟件外包公司是如何安排工作的。
從外包的內(nèi)容看,現(xiàn)在大多數(shù)中國軟件外包公司從事兩種內(nèi)容的工作,第一是軟件設(shè)計(jì)和編碼的外包(即開發(fā)外包),第二類是軟件測試外包。
從工作的地點(diǎn)看,軟件外包公司的員工的工作形式分為兩種,第一是被派遣到發(fā)包方(客戶)的公司進(jìn)行工作,這種形式稱為“On-site外包”。第二式在軟件外包公司內(nèi)部工作,稱為“In-house外包”。
如果同學(xué)們到人才招聘網(wǎng)站看看外包公司的招聘廣告,經(jīng)常能看見赴微軟,赴IBM從事軟件開發(fā)或測試的招聘職位。這種形式就是“On-site外包”。舉個(gè)例子,軟件外包公司A招聘了從事軟件外包測試的同學(xué)小李到微軟亞洲工程院從事微軟的軟件測試,雖然小李在微軟的公司工作,但是他隸屬于A公司,工作上受到A公司和微軟公司的領(lǐng)導(dǎo),A公司每個(gè)月按照A公司的工資標(biāo)準(zhǔn)給小李發(fā)工資。一般來說,“On-site外包”的工程師的技術(shù)水平要求的更高些。
在筆者看來,“On-site外包”工作方式只是軟件外包的初級形式,如果軟件外包的服務(wù)模式成熟之后,越來越多的外包將以“In-house外包”的形式實(shí)現(xiàn)。下面介紹“In-house外包”的工作方式。
所有的軟件外包公司都是以“項(xiàng)目”的形式,組建項(xiàng)目團(tuán)隊(duì)開展外包工作。一個(gè)“項(xiàng)目”就是一個(gè)有著明確的任務(wù),明確的開始和結(jié)束時(shí)間,以及明確的質(zhì)量要求的工作。項(xiàng)目團(tuán)隊(duì)就是為了完成一個(gè)項(xiàng)目組建的有不同角色的多個(gè)人的小組,一般安排一個(gè)項(xiàng)目經(jīng)理,一個(gè)或幾個(gè)組長,多個(gè)工程師。
項(xiàng)目經(jīng)理主要制定項(xiàng)目計(jì)劃、資源安排、內(nèi)部交流和外包的客戶交流。組長為每個(gè)工程師分結(jié)和安排具體的任務(wù),跟蹤項(xiàng)目進(jìn)度,解決技術(shù)問題。工程師根據(jù)組長分配的任務(wù)按照進(jìn)度和質(zhì)量完成每天的工作,并且報(bào)告進(jìn)展和遇到的問題。
項(xiàng)目經(jīng)理負(fù)責(zé)周期性的向“客戶”報(bào)告項(xiàng)目進(jìn)展情況,同時(shí)把客戶反應(yīng)的問題和來自客戶的最新文件和要求等傳達(dá)給項(xiàng)目組。
通常項(xiàng)目經(jīng)理和組長都是由具有管理和技術(shù)經(jīng)驗(yàn)的員工擔(dān)任,對于剛剛加入軟件外包公司的大學(xué)生來說,絕大多數(shù)都是從工程師的職位做起的,先經(jīng)過外包公司的內(nèi)部培訓(xùn),然后進(jìn)入項(xiàng)目組實(shí)習(xí),轉(zhuǎn)正之后稱為工程師,負(fù)責(zé)具體的開發(fā)或測試工作。
順便說說,不少優(yōu)秀的大學(xué)生,專業(yè)技術(shù)非常好,學(xué)習(xí)能力由特別強(qiáng),善于思考和總結(jié),也善于與其他人交流和合作,這樣的學(xué)生很快就可以在項(xiàng)目團(tuán)隊(duì)中脫穎而出,經(jīng)過一年或者兩年可以從普通工程師晉升到測試組長甚至項(xiàng)目經(jīng)理。我的不少同事就是這樣過來的,這是因?yàn)檐浖獍l(fā)展得非常快,客戶發(fā)來的軟件外包項(xiàng)目越來越多,項(xiàng)目團(tuán)隊(duì)越來越多,每個(gè)項(xiàng)目都需要項(xiàng)目經(jīng)理,所以從事軟件外包具有很大的職業(yè)發(fā)展空間。
現(xiàn)在總結(jié)一下軟件外包公司的工作方式:
- “On-site外包”或者“In-house外包”方式
- 按照項(xiàng)目團(tuán)隊(duì)的方式工作
- 剛進(jìn)入外包公司的大學(xué)生絕大多數(shù)要從工程師做起
?[6] - 有哪些好的外包公司?
對于正在找工作的同學(xué)來說,都希望到一個(gè)規(guī)模較大的公司工作,一般來說,大公司比較規(guī)范,待遇也較高,倒閉的風(fēng)險(xiǎn)小。對于軟件外包公司來說也是這樣子。
同學(xué)們可以猜猜看,全球著名的高端軟件外包公司有哪些?據(jù)媒體報(bào)道,比較公認(rèn)的全球高端外包公司分別是IBM,HP和EDS,前兩家同學(xué)們肯定耳熟能詳,有些同學(xué)可能懷疑IBM,HP能算是軟件外包公司嗎?它們算不算外包公司不是我說的,反正做軟件外包多年的老外都這么人為,人家可是全球知名的外包專家,可不是信口胡說的呀。
有的同學(xué)經(jīng)常問我,國內(nèi)有哪些規(guī)模較大的外包公司?哪個(gè)外包公司最好?我一般都回答不好。為什么呢?因?yàn)槊總€(gè)人看問題的角度不同。比如,什么是“規(guī)模較大”?是按照正是員工的人數(shù)比較呢還是按照每年的總收入確定?什么樣的外包公司是“好公司”?給員工發(fā)的工資搞就是好公司嗎?給員工提供專業(yè)的技術(shù)培訓(xùn),而且具有很大的職業(yè)發(fā)展空間的是否就是“好公司”呢?
因此,在你問這些問題前,先要搞清楚你心目的好公司應(yīng)該具有什么樣的特征。
我還是從國內(nèi)外包公司的普遍特征來給出這個(gè)問題的一些參考信息。
前面已經(jīng)提到,我國軟件外包公司屬于新興的行業(yè),真正從事軟件外包的員工如果人數(shù)超過1000人在中國就可以算是比較大的外包公司了。據(jù)了解國內(nèi)最大人數(shù)的外包公司現(xiàn)在不超過3000人(這里需要說明一點(diǎn),有些公司一開始是做系統(tǒng)集成的,最近才開始做軟件外包業(yè)務(wù),雖然他們的全體員工超過5000人,但是真正做軟件外包的還不超過3000人)。所以同印度的某些大的軟件外包公司項(xiàng)目,我國的軟件外包公司規(guī)模普遍弱小。印度的軟件外包公司超過10000人的很多,有些超過了5萬人。所以有些國內(nèi)的軟件外包的朋友,把中國軟件外包公司比作“螞蟻”,把印度外包公司比作“大象”。
如果同學(xué)們打算做軟件外包,肯定要問哪個(gè)省市的軟件外包公司最多?我要告訴大家的是,中國的軟件外包在各個(gè)省市的發(fā)展很不平衡。大連、北京、上海、深圳、蘇州、西安等發(fā)展的相對快些。其他各個(gè)地方今年開始從政府到企業(yè)都開始提出要發(fā)展軟件外包了。
關(guān)于國內(nèi)軟件公司的規(guī)模,同學(xué)們可以參考我國政府權(quán)威部門發(fā)布的“中國軟件歐美出口工程”試點(diǎn)企業(yè)名單。這些公司都具有一定的規(guī)模和實(shí)力,有些記者把這些公司比喻成“中國外包的國家隊(duì)”,言外之意其他的外包公司只能算是“地方武裝”了。
。
大連的軟件外包發(fā)展的最為快速,特別是對日外包做的最為成功,因?yàn)榇筮B的政府支持,地理位置靠日本很近,可以找到很多掌握日語的軟件技術(shù)人員。北京和上海的軟件外包發(fā)展的時(shí)間更長,這兩個(gè)直轄市憑借經(jīng)濟(jì)和政治的影響,吸引了大量的國外客戶,人才資源很豐富,所以外包做的很早,很多歐美的大型軟件公司都在這兩個(gè)城市成立的研發(fā)中心。
說到外包公司,很多人首先想到的是中國本土的外包公司,其實(shí)出了本土外包公司,國外外包公司在中國的分公司也不可忽視。這些國外外包公司有的進(jìn)入中國較早,有的最近一兩年才在中國落戶。他們憑借國外市場的良好客戶關(guān)系,全球的專業(yè)品牌,先進(jìn)的外包管理技術(shù),豐富的外包經(jīng)驗(yàn),加上國際化的工作環(huán)境,良好的薪資待遇,吸引著很多大學(xué)生前去應(yīng)聘。
最后給同學(xué)們一點(diǎn)建議,大家在找工作的時(shí)候與要單純追求規(guī)模大的外包公司,中小規(guī)模的外包公司有可能發(fā)展速度更快,有可能提供很大的職業(yè)發(fā)展空間。關(guān)鍵是通過各種方式綜合了解軟件外包公司的發(fā)展前景、工作環(huán)境和個(gè)人發(fā)展空間,可以通過打聽在外包公司工作的同學(xué)、朋友、親戚、老鄉(xiāng),也可以上網(wǎng)看看外界對這家公司的報(bào)道和評論。
[7] - 軟件外包公司需要什么樣的人?
剛畢業(yè)的同學(xué)如果沒有考研或出國留學(xué),都有過找工作應(yīng)聘的經(jīng)歷,不少同學(xué)都感覺找到合適的工作單位不是一件容易的事情。有些同學(xué)雖然得到了軟件外包公司的應(yīng)聘機(jī)會,但是面試后就沒有消息了。
而一些軟件外包公司的招聘人員卻為找不到合適的人員而苦惱,只好發(fā)動一切可以調(diào)動的因素,解決企業(yè)人才困乏的問題。所以有人把這種現(xiàn)象歸納為:“高校有人沒事干,企業(yè)有事沒人干”。
這種現(xiàn)象的本質(zhì)是大部分高校畢業(yè)生的綜合素質(zhì)達(dá)不到軟件外包企業(yè)的用人要求。那么軟件外包公司需要什么樣的人呢?為了能夠進(jìn)入軟件外包企業(yè),在校學(xué)生應(yīng)該如何學(xué)習(xí)和學(xué)習(xí)什么呢?
說的簡單一點(diǎn),企業(yè)需要的是能馬上融入外包項(xiàng)目團(tuán)隊(duì),獨(dú)立承擔(dān)實(shí)際外包項(xiàng)目任務(wù)的人。所以很多企業(yè)在招聘啟事中都有“x年軟件外包相關(guān)工作經(jīng)驗(yàn)”等的硬性指標(biāo),而這些都是在校學(xué)生欠缺的地方。
現(xiàn)在一些外包公司都提供兼職崗位(Freelancer),這是在校學(xué)生(尤其是即將畢業(yè)的學(xué)生)參與社會實(shí)踐的好機(jī)會,應(yīng)該抓住這些實(shí)習(xí)機(jī)會,積累工作經(jīng)驗(yàn)。另外,如果在這些企業(yè)實(shí)習(xí)期間表現(xiàn)優(yōu)秀,畢業(yè)后有機(jī)會成為公司的正式員工。
軟件外包企業(yè)對待大學(xué)畢業(yè)生更看重學(xué)生的學(xué)習(xí)能力。剛畢業(yè)的大學(xué)生就像一塊好的毛坯鋼材,材質(zhì)優(yōu)良,如果這些學(xué)生有較好的主動學(xué)習(xí)能力,進(jìn)入企業(yè)后經(jīng)過幾個(gè)外包項(xiàng)目的實(shí)踐,積極思考,善于總結(jié),成長很快。企業(yè)不歡迎凡事不經(jīng)過大腦思考,大小問題都要向主管求助的“懶漢”員工。
企業(yè)需要具有職業(yè)精神的員工。職業(yè)精神包括很多方面的內(nèi)容,包括對工作的熱情投入,積極與團(tuán)隊(duì)成員交流,具有合作精神,以企業(yè)利益為重。而不歡迎喜歡與企業(yè)討價(jià)還價(jià),抱怨企業(yè)提供的發(fā)展空間不夠大的學(xué)生。
由于軟件外包服務(wù)行業(yè)是為客戶提供服務(wù)的行業(yè),很多外包項(xiàng)目的具體任務(wù)一般比較瑣碎、枯燥,例如按照客戶提供的軟件框架進(jìn)行編碼,按照客戶提供的測試用例執(zhí)行軟件測試。對于剛剛畢業(yè)的學(xué)生他們都需要從這些很基礎(chǔ)的技術(shù)崗位做起,這是對他們職業(yè)精神和做事風(fēng)格的考驗(yàn)。
軟件外包服務(wù)的很多工作就像生產(chǎn)流水線上的公司在擰螺絲釘,需要遵守嚴(yán)格的生產(chǎn)流程和一絲不茍的嚴(yán)謹(jǐn)精神。把這些基本工作做好了,才能取得企業(yè)的管理人員的信任,才有機(jī)會承擔(dān)更復(fù)雜更大責(zé)任的工作。
一些剛畢業(yè)的學(xué)生經(jīng)常心高氣傲,很鄙視這些繁瑣枯燥的工作,感嘆埋沒他們的才華,這是沒有擺正工作心態(tài)的表現(xiàn)。外包公司非常歡迎愿意做看似瑣碎的工作同時(shí)有能力做好的同學(xué)。其實(shí)做好這些看似瑣碎的工作,當(dāng)好擰螺絲的工人,就是不簡單,他的未來就會不平凡。道理很簡單:基礎(chǔ)打好了,萬丈高樓平地起。
總結(jié)起來,外包企業(yè)需要具有一定的外包工作經(jīng)驗(yàn),主動學(xué)習(xí)能力強(qiáng),團(tuán)隊(duì)合作精神好,愿意從瑣碎的技術(shù)工作做起,而且有能力做好“小事”的人。
海爾公司總裁張瑞敏有句名言說得非常好,對于準(zhǔn)備到軟件外包公司工作的同學(xué)非常有啟發(fā),他說:“把一件簡單的事做好就是不簡單,把每一件平凡的事做好就是不平凡”。
?[8] - 哪些人不適合做軟件外包技術(shù)人員?
大千世界,無限精彩。作為軟件行業(yè)的新領(lǐng)域,軟件外包吸引著越來越多的人投入這個(gè)行業(yè)。每個(gè)行業(yè)都有行業(yè)的行規(guī)和準(zhǔn)則,并不是任何人都適合從事軟件外包行業(yè)的。
哪些人不適合從事軟件外包呢?由于本文的讀者針對即將畢業(yè)的大學(xué)生,也適用于準(zhǔn)備加入軟件外包公司的新人,所以我們可以把問題縮小范圍:哪些人不適合做軟件外包服務(wù)的技術(shù)人員?
回答什么人不能做軟件外包,也就是哪些人做不好軟件外包,需要先了解軟件外包服務(wù)行業(yè)的工作性質(zhì)和對人的綜合要求。軟件外包是為客戶提供專業(yè)技術(shù)服務(wù)的行業(yè),而且現(xiàn)在的軟件外包企業(yè)的客戶大都來自國外,客戶對外包公司人員要求比較嚴(yán)格。另外,外包公司的工作非常具體和瑣碎,需要一絲不茍。
軟件外包行業(yè)的這些特點(diǎn),決定了以下三種類型的人不適合做軟件外包的技術(shù)人員:
第一種人是外語不過關(guān)的人。
語言是交流工具。如果客戶是歐美客戶,英語交流是必不可少的。如果客戶是日本公司,對日語要必須熟悉。作為初級的外包技術(shù)人員,需要閱讀和寫作大量的文檔和郵件,這些都需要良好的英語能力。很多英語不過關(guān)的人員不容易通過外包公司的筆試。對英語的要求,需要達(dá)到熟練閱讀英文文檔,寫作專業(yè)的測試缺陷報(bào)告和日常郵件寫作的程度。
外包公司強(qiáng)調(diào)英語的重要性,這是做好工作的基礎(chǔ),因此,請?jiān)趯W(xué)校里、公司里利用一切條件自覺學(xué)習(xí)英語,養(yǎng)成習(xí)慣,從閱讀理解學(xué)習(xí)。把英語閱讀和寫作養(yǎng)成一個(gè)習(xí)慣,終生受益。
第二種人是癡迷于鉆研軟件高深技術(shù)的人。
軟件外包服務(wù)的很多工作都是非常瑣碎的,看上去沒有多少高深新技術(shù)的事務(wù)性工作。例如,對日軟件外包的項(xiàng)目,客戶已經(jīng)編制好了程序框架,需要變成人員根據(jù)他們的規(guī)范編寫代碼和每天工作進(jìn)度日志。不少外包編程人員抱怨客戶限定的過于嚴(yán)格,沒有足夠的自我創(chuàng)造的空間。對于軟件外包測試人員,最常見的工作就是執(zhí)行客戶編寫好的測試用例,報(bào)告軟件缺陷,很少有機(jī)會從軟件項(xiàng)目的全局高度制定測試計(jì)劃,確定測試方案和策略,安排資源和進(jìn)度。
如果你對軟件編程的各種新技術(shù)無限熱愛,習(xí)慣于一個(gè)人無拘無束的從事軟件產(chǎn)品的開發(fā),最好不要去軟件外包公司,否則很難發(fā)揮你的聰明才智。這樣的人更適合自己創(chuàng)業(yè)開發(fā)獨(dú)立的軟件產(chǎn)品,或者到中國中小型軟件公司當(dāng)軟件開發(fā)工程師。
第三種人是大事做不來,小事不愿做的人。
正如前面說過的,很多軟件外包工作非常具體和瑣碎,需要非常好的做事態(tài)度,滿足客戶各種合理的和不合理的要求。有些同學(xué)到軟件外包公司工作不久就感到失望了,抱怨工作枯燥,看不到前途。這些都是剛參加不久的人容易產(chǎn)生的錯(cuò)誤認(rèn)識。
在任何軟件外包公司,如果個(gè)人的工作能力非常突出,很容易被領(lǐng)導(dǎo)賞識和提升,因?yàn)檐浖獍l(fā)展太快了,對人才的需求非常強(qiáng)烈。但是如果不從具體的瑣碎的小事做起,并且把小事做好,怎么能證明你可以把大事做好呢。
任何公司之所以能夠生存、發(fā)展、壯大,必尤其成功之處,不要覺得你必老板高明很多。比較聰明的同學(xué)會放平心態(tài),從學(xué)徒學(xué)起,把每一件工作都做好了,自己的長處得到發(fā)揮,對自己的前途發(fā)展大有幫助。
總結(jié)起來,不善于外與交流的,癡迷于鉆研軟件高新技術(shù),不能踏踏實(shí)實(shí)工作的人,不適合到軟件外包公司從事軟件技術(shù)工作。
[9] - 如何通過軟件外包公司的面試?
如何通過軟件外包公司的面試?這是很多同學(xué)都很關(guān)注的問題。面試成功來自于應(yīng)聘者自身的綜合實(shí)力和運(yùn)氣。為了提高面試成功率,請按照以下幾個(gè)方面進(jìn)行準(zhǔn)備。
(1)制作有吸引力的求職簡歷
外包公司的招聘專員每天都會收到幾十封甚至上百封求職簡歷,如果你的簡歷很平淡,可能很快從招聘專員的眼下溜走,失去了面試的機(jī)會。
什么是有吸引力的簡歷? 簡單地說就是讓看到你簡歷的招聘專員相信你就是他們正在尋找的最合適的人。因此,你的簡歷要簡明扼要,列舉出符合他們要求的條件和相應(yīng)的客觀證據(jù)。要明白求職簡歷目的就是獲得面試的機(jī)會,否則你的水平再高,也不可能進(jìn)入招聘專員的“法眼”。
如何寫出具有吸引力的簡歷,現(xiàn)在很多資料都比較詳細(xì),但是最重要的一點(diǎn)是實(shí)事求是,反對夸張和吹噓。把你的技能和經(jīng)驗(yàn)按照招聘職位的要求進(jìn)行內(nèi)容和形式的組織即可。
(2)準(zhǔn)備面試
- 了解要去面試的公司,可以瀏覽公司的網(wǎng)站,媒體報(bào)道,同學(xué)和朋友的介紹。
- 了解公司的行業(yè),規(guī)模,現(xiàn)狀和發(fā)展概況。
- 技術(shù)準(zhǔn)備,準(zhǔn)備應(yīng)聘職位要求的技能
- 模擬面試場景(包括英語自我介紹和書面答題)
- 準(zhǔn)備自我介紹、各種證書、筆試和面試解答問題
- 計(jì)劃乘車路線和穿著打扮等外表形象
(3)參加面試
- 準(zhǔn)時(shí)
- 誠實(shí)
- 積極
- 友好
- 不必不亢
- 注意細(xì)節(jié)
- 沉著冷靜
- 避免爭論
- 小心“陷阱”
- 充分發(fā)揚(yáng)長處
- 展示個(gè)人綜合能力
2006年10月1日 #
需求:
1. session 傳值初始化時(shí)鐘,格式 hh:mm:ss
2. 時(shí)鐘在頁面上顯示倒計(jì)時(shí)功能
3. 時(shí)間到觸發(fā)點(diǎn)擊按鈕事件

































































