崗位:程序員
程序員(英文programmer)是從事程序開發(fā)、維護(hù)的專業(yè)人員。一般我們將程序員分為程序設(shè)計人員和程序編碼員,但兩者的界限并不非常清楚,特別是在中國。
作一個真正合格的程序員,應(yīng)該具有的素質(zhì)。
1:團(tuán)隊精神和協(xié)作能力
團(tuán)隊精神和協(xié)作能力是作為一個程序員應(yīng)具備的最基本的素質(zhì)。軟件工程已經(jīng)提了將近三十年了,當(dāng)今的軟件開發(fā)已經(jīng)不是編程了,而是工程。獨(dú)行俠可以寫一些程序也能賺錢發(fā)財,但是進(jìn)入研發(fā)團(tuán)隊,從事商業(yè)化和產(chǎn)品化的開發(fā)任務(wù),就必須具備這種素質(zhì)?梢院敛豢鋸埖恼f這種素質(zhì)是一個程序員乃至一個團(tuán)隊的安身立命之本。
2:文檔習(xí)慣
文檔是一個軟件系統(tǒng)的生命力。一個公司的產(chǎn)品再好、技術(shù)含量再高,如果沒有缺乏文檔,知識就沒有繼承,公司還是一個來料加工的軟件作坊。作為代碼程序員,必須將30%的工作時間寫用于技術(shù)文檔。沒有文檔的程序員勢必會被淘汰。
3:規(guī)范化的代碼編寫習(xí)慣
知名軟件公司的代碼的變量命名、注釋格式,甚至嵌套中行縮進(jìn)的長度和函數(shù)間的空行數(shù)字都有明確規(guī)定,良好的編寫習(xí)慣,不但有助于代碼的移植和糾錯,也有助于不同技術(shù)人員之間的協(xié)作。一些所謂的高手甚至叫囂高手寫的代碼一般人看不懂,我只能說他不是一名合格的程序員。
4:需求理解能力
程序員要能正確理解任務(wù)單中描述的需求。在這里要明確一點(diǎn),程序員不僅僅要注意到軟件的功能需求,還應(yīng)注意軟件的性能需求,要能正確評估自己的模塊對整個項目中的影響及潛在的威脅,如果有著兩到三年項目經(jīng)驗(yàn)的熟練程序員對這一點(diǎn)沒有體會的話,只能說明他或許是認(rèn)真工作過,但是沒有用心工作。
5:模塊化思維能力
作為一個優(yōu)秀的程序員,他的思想不能在局限當(dāng)前的工作任務(wù)里面,要想想看自己寫的模塊是否可以脫離當(dāng)前系統(tǒng)存在,通過簡單的封裝在其他系統(tǒng)中或其他模塊中直接使用。這樣做可以使代碼能重復(fù)利用,減少重復(fù)的勞動,也能是系統(tǒng)結(jié)構(gòu)越趨合理。模塊化思維能力的提高是一個程序員的技術(shù)水平提高的一項重要指標(biāo)。
6:測試習(xí)慣
測試是軟件工程質(zhì)量保證的重要環(huán)節(jié),但是測試不僅僅是測試工程師的工作,而是每個程序員的一種基本職責(zé)。程序員要認(rèn)識測試不僅是正常的程序調(diào)試,而要是要進(jìn)行有目的有針對性的異常調(diào)用測試,這一點(diǎn)要結(jié)合需求理解能力。
7:學(xué)習(xí)和總結(jié)的能力
程序員是很容易被淘汰的職業(yè),所以要善于學(xué)習(xí)總結(jié)。許多程序員喜歡盲目追求一些編碼的小技巧,這樣的技術(shù)人員無論學(xué)了多少語言,代碼寫起來多熟練,我們只能說他是一名熟練的代碼民工,他永遠(yuǎn)都不會有質(zhì)的提高。一個善于學(xué)習(xí)的程序員會經(jīng)常總結(jié)自己的技術(shù)水平,對自己的技術(shù)層面要有良好的定位,這樣才能有目的地提高自己。這樣才能逐步提高,從程序員升級為軟件設(shè)計師、系統(tǒng)分析員。
作為高級程序員,乃至于設(shè)計師而言,除了應(yīng)該具備上述全部素質(zhì)之外,還需要具備以下素質(zhì):
1、 需求分析能力
2、 整體框架能力
3、 流程處理能力
4、 模塊分解能力
5、 整體項目評估能力
6、 團(tuán)隊組織管理能力
崗位:項目經(jīng)理
主要職責(zé):
1、 計劃:
a)項目范圍、項目質(zhì)量、項目時間、項目成本的確認(rèn)。
b)項目過程/活動的標(biāo)準(zhǔn)化、規(guī)范化。
c)根據(jù)項目范圍、質(zhì)量、時間與成本的綜合因素的考慮,進(jìn)行項目的總體規(guī)劃與階段計劃。
d)各項計劃得到上級領(lǐng)導(dǎo)、客戶方及項目組成員認(rèn)可。
2、 組織:
a)組織項目所需的各項資源。
b)設(shè)置項目組中的各種角色,并分配好各角色的責(zé)任與權(quán)限。
c)定制項目組內(nèi)外的溝通計劃。(必要時可按配置管理要求寫項目策劃目錄中的《項目溝通計劃》)
d)安排組內(nèi)需求分析師、客戶聯(lián)系人等角色與客戶的溝通與交流。
e)處理項目組與其它項目干系人之間的關(guān)系。
f)處理項目組內(nèi)各角色之間的關(guān)系、處理項目組內(nèi)各成員之間的關(guān)系。
g)安排客戶培訓(xùn)工作。
3、 領(lǐng)導(dǎo):
a)保證項目組目標(biāo)明確且理解一致。
b)創(chuàng)建項目組的開發(fā)環(huán)境及氛圍,在項目范圍內(nèi)保證項目組成員不受項目其它方面的影響。
c)提升項目組士氣,加強(qiáng)項目組凝聚力。
d)合理安排項目組各成員的工作,使各成員工作都能達(dá)到一定的飽滿度。
e)制定項目組需要的招聘或培訓(xùn)人員的計劃。
f)定期組織項目組成員進(jìn)行相關(guān)技術(shù)培訓(xùn)以及與項目相關(guān)的行業(yè)培訓(xùn)等。
g)及時發(fā)現(xiàn)項目組中出現(xiàn)的問題。
h)及時處理項目組中出現(xiàn)的問題。
4、 控制
a)保證項目在預(yù)算成本范圍內(nèi)按規(guī)定的質(zhì)量和進(jìn)度達(dá)到項目目標(biāo)。
b)在項目生命周期的各個階段,跟蹤、檢查項目組成員的工作質(zhì)量;
c)定期向領(lǐng)導(dǎo)匯報項目工作進(jìn)度以及項目開發(fā)過程中的難題。
d)對項目進(jìn)行配置管理與規(guī)劃。
e)控制項目組各成員的工作進(jìn)度,即時了解項目組成員的工作情況,并能快速的解決項目組成員所碰到的難題。
f)不定期組織項目組成員進(jìn)行項目以外的短期活動,以培養(yǎng)團(tuán)隊精神。
結(jié)語:
項目經(jīng)理是在整個項目開發(fā)過程中項目組內(nèi)對所有非技術(shù)性重要事情做出最終決定的人。
崗位:系統(tǒng)架構(gòu)師(技術(shù)總監(jiān))
主要功能及職責(zé):
1、系統(tǒng)架構(gòu)師是軟件項目的總體設(shè)計師,是軟件組織新產(chǎn)品的開發(fā)與集成、新技術(shù)體系的構(gòu)建者。
2、系統(tǒng)架構(gòu)師是在技術(shù)上對所有重要事情做出決定的人。(系統(tǒng)架構(gòu)師在整個軟件開發(fā)過程中都起著重要作用,并隨著開發(fā)進(jìn)程的推進(jìn)而其職責(zé)或關(guān)注點(diǎn)不斷地變化。)
3、需求階段,軟件架構(gòu)師負(fù)責(zé)理解和管理非功能性系統(tǒng)需求,比如軟件的可維護(hù)性、性能、復(fù)用性、可靠性、有效性和可測試性等。審查客戶和市場人員所提出的需求,確認(rèn)開發(fā)團(tuán)隊所提出的設(shè)計;組織開發(fā)團(tuán)隊成員和開發(fā)過程的定義;協(xié)助需求分析師完成《用戶需求說明書》、《需求變更說明書》。
4、設(shè)計階段,架構(gòu)師負(fù)責(zé)對整個軟件架構(gòu)、關(guān)鍵構(gòu)件、接口的設(shè)計。協(xié)助系統(tǒng)分析師完成《系統(tǒng)概要設(shè)計說明書》
5、編碼階段,架構(gòu)師則成為程序員的顧問,并且經(jīng)常性地要舉行一些技術(shù)研討會、技術(shù)培訓(xùn)班等;
6、測試及實(shí)施階段,隨著軟件開始測試、集成和交付,集成和測試支持將成為軟件架構(gòu)師的工作重點(diǎn);
結(jié)語:
系統(tǒng)架構(gòu)師也可以理解成技術(shù)總監(jiān)。系統(tǒng)架構(gòu)師是在部門內(nèi)所有軟件項目中,對技術(shù)上所有重要的事情做出決定的人。
崗位:需求分析師
主要職責(zé):
1、在項目前期根據(jù)《需求調(diào)研計劃》對客戶進(jìn)行需求調(diào)研。
2、收集整理客戶需求,負(fù)責(zé)編寫《用戶需求說明書》。
3、代表項目組與用戶溝通與項目需求有關(guān)的所有事項。
4、代表客戶與項目組成員溝通項目需求有關(guān)的所有事項。
5、負(fù)責(zé)《用戶需求說明書》得到用戶的認(rèn)可與簽字。
6、負(fù)責(zé)將完成的項目模塊給客戶做演示,并收集對完成模塊的意見。
7、完成《需求變更說明書》,并得到用戶的認(rèn)可與簽字。
8、并協(xié)助系統(tǒng)架構(gòu)師、系統(tǒng)分析師對需求進(jìn)行理解。
結(jié)語:
需求分析師是項目前期與客戶方打交道最多的人,對于客戶來說,他可以代表整個項目組,對與項目組成員來說他的意見可以代表客戶方的意見,項目組內(nèi)所有與客戶需求相關(guān)的事情必需得到他的認(rèn)可。
崗位:系統(tǒng)分析師
主要職責(zé):
1、 協(xié)助需求分析師進(jìn)行需求調(diào)研。
2、分析、解析《用戶需求說明書》,將系統(tǒng)需求整理成《軟件需求規(guī)格說明書》;
3、負(fù)責(zé)解決《軟件需求規(guī)格說明書》被評審后發(fā)現(xiàn)的問題;
4、在分析系統(tǒng)前,負(fù)責(zé)向架構(gòu)設(shè)計師解釋《軟件需求規(guī)格說明書》的內(nèi)容。
5、協(xié)助架構(gòu)設(shè)計師進(jìn)行架構(gòu)設(shè)計,并協(xié)助其完成《系統(tǒng)架構(gòu)說明書》。
6、根據(jù)《系統(tǒng)架構(gòu)說明書》對系統(tǒng)進(jìn)行建模;
7、系統(tǒng)分析及建模完成后,負(fù)責(zé)將建模成果轉(zhuǎn)化為《系統(tǒng)概要設(shè)計》;
8、協(xié)助數(shù)據(jù)庫設(shè)計師按《系統(tǒng)概要設(shè)計說明書》進(jìn)行數(shù)據(jù)庫邏輯設(shè)計和物理設(shè)計,完成數(shù)據(jù)庫CDM及pDM圖,并協(xié)助其完成《數(shù)據(jù)庫設(shè)計說明書》
9、協(xié)助軟件設(shè)計師按《系統(tǒng)概要設(shè)計說明書》進(jìn)行《系統(tǒng)詳細(xì)設(shè)計說明書》。
10、指導(dǎo)軟件工程師按《系統(tǒng)詳細(xì)設(shè)計說明書》進(jìn)行代碼實(shí)現(xiàn)。
11、 負(fù)責(zé)重點(diǎn)代碼檢查;
12、協(xié)助項目經(jīng)理進(jìn)行配置管理,并提供優(yōu)化改進(jìn)建議;
13、定期對項目組成員進(jìn)行技術(shù)方面的培訓(xùn)。
結(jié)語:
系統(tǒng)分析師是項目組中的首席執(zhí)行官,他涉及項目的所有方面,是項目進(jìn)度的推動者,也是項目成功的關(guān)鍵。
崗位:數(shù)據(jù)庫設(shè)計師
主要職責(zé):
1、根據(jù)《系統(tǒng)架構(gòu)說明書》與系統(tǒng)架構(gòu)師、系統(tǒng)分析師一同進(jìn)行數(shù)據(jù)庫建模。
2、根據(jù)數(shù)據(jù)庫建模結(jié)果,繪制數(shù)據(jù)庫CDM與pDM圖。
3、 根據(jù)數(shù)據(jù)庫pDM圖進(jìn)行數(shù)據(jù)庫建庫。
4、 對數(shù)據(jù)庫進(jìn)行維護(hù)、備份、恢復(fù)、同步。
5、 負(fù)責(zé)客戶數(shù)據(jù)的導(dǎo)入導(dǎo)出。
6、 對數(shù)據(jù)庫進(jìn)行初始化操作。
7、協(xié)助軟件設(shè)計師完成《系統(tǒng)詳細(xì)設(shè)計說明書》中與數(shù)據(jù)庫相關(guān)的部分。
8、根據(jù)《系統(tǒng)詳細(xì)設(shè)計說明書》編寫對應(yīng)的視圖、存儲過程、函數(shù)、觸發(fā)器等。
9、對項目組其它成員進(jìn)行SQL方面的指導(dǎo)。
10、定期對項目組其它成員進(jìn)行數(shù)據(jù)庫方面知識的培訓(xùn)。
11、為測試經(jīng)理及測試工程師建立測試數(shù)據(jù)。
結(jié)語:
數(shù)據(jù)庫設(shè)計師又稱DBA,是項目組中唯一能對數(shù)據(jù)庫進(jìn)行直接的操作的人。對項目中與數(shù)據(jù)庫相關(guān)的所有重要的事做最終決定的人。
崗位:軟件設(shè)計師(模塊)
1、根據(jù)《系統(tǒng)概要設(shè)計說明書》編寫分模塊的《系統(tǒng)詳細(xì)說明書》。
2、負(fù)責(zé)對軟件工程師講解《系統(tǒng)詳細(xì)設(shè)計說明書》內(nèi)容。
3、協(xié)助軟件工程師按《系統(tǒng)詳細(xì)設(shè)計說明書》進(jìn)行代碼實(shí)現(xiàn)。
4、 控制本模塊的開發(fā)進(jìn)度。
結(jié)語:
軟件設(shè)計師又稱模塊設(shè)計師,協(xié)助系統(tǒng)分析師對分模塊進(jìn)行詳細(xì)設(shè)計,并直接管控
[IT行業(yè)的各崗位職責(zé)]