做職業化的軟體工程師

2021-04-18 04:09:14 字數 4775 閱讀 1963

做職業化的軟體工程師

■ 文 / 陳尚義 與

20年前不一樣,現在軟體正發揮著越來越重要的作用,而且以越來越快的速度影響著國家、公司、甚至是每乙個人。作為軟體工程師,我們從事的事業正在影響著世界的每乙個角落,我們應該感到無上光榮和自豪,與此同時,我們的工作質量與職業水準變得更重要。軟體開發已成為乙個職業,職業規範和標準正在逐步形成和完善,工程師的職業化也已經提到議事日程。尤其在我國,軟體業的振興在很大程度上依賴於軟體從業人員職業水平的提高,不幸的是,我們目前的職業化水平還很低,與美國相比,我們擁有的軟體工程師數量可能和美國相近,但我們合格的軟體工程師卻是鳳毛麟角。這嚴重制約了我們軟體行業的發展。

「職業化」是軟體工程師的必然選擇

職業化是經濟發展、社會分工的產物。大到全球經濟鏈條,國與國之間形成了明顯的分工:誰提供能源,誰提供服務,誰製造產品,發展中國家和發達國家扮演著不同的角色。工業和經濟的高度發展,需要人們「術有專攻」;流水線的發明和推廣應用使這種分工得以明確和固化,工程化程度越高,分工就越明確,由此而來的就是對各種專業人才的需求越來越強烈。大到乙個國家、乙個地區和乙個企業,小到乙個人,只有在這種明確分工的環境中找到自己的位置,才能適應未來的發展。

職業化能帶來財富。世界在變化,變得到處充滿競爭,不再有穩定的工作。中國軟體人才的現狀是,一方面,所謂的「軟體工程師」到處可見,大學畢業生找不到工作,乙個招聘廣告引來一堆應聘者簡歷;另一方面,真正合格的軟體工程師卻不多見,公司找人難。於是大量的培訓機構搞起了「就業培訓」、「崗前訓練」、「定製培訓」、「實訓基地」等等,籍此彌補專業人士的不足。

綜上所述,職業化是市場經濟和社會發展的必然要求;市場呼喚職業化人才;職業化能給自己帶來光明的職業前途和財富。毫無疑問,對於軟體工程師而言,職業化是必然選擇。

怎樣才是職業的?

職業化的軟體工程師應該是這樣一些人:他們擁有紮實的基礎知識,有能力在軟體開發的工作中找到自己的位置,他們以正確的方式做事,他們遵守這個行業的遊戲規則,信守和公司的合約,他們會盡努力使自己的工作成果盡可能地符合這個行業的標準或規範,他們知道國內外同行都在做些什麼,他們比較了解所從事的這個行業的發展趨勢。

對職業化的更高要求是遵守行業標準和不斷創新。但是,職業化的概念也正在經歷著變遷。上個世紀

80年代,我國的軟體業還剛剛興起,那個時候的軟體簡單,規模也很小,軟體生產還是乙個手藝,軟體工程師還是乙個匠人,軟體工程缺乏相應的標準和規範。但是,時代在變化,對軟體工程師的要求也在不斷提高。開源**社群裡湧現很多很高職業水準的軟體工程師,他們不僅技術精湛,而且遵守軟體行業標準、規範和最佳實踐,同時他們將這些技術、標準、規範和最佳實踐,通過網際網路,向全世界的軟體開發同行傳播,帶動這整個軟體行業的發展。他們是最職業化的一批人。

不同的組織對職業化有不同的理解,有人對職業化的定義是:職業化的軟體工程師應該解決有意義(有益於社會和大眾利益)的問題;應該盡最大努力滿足客戶的需要;應該盡可能提供高質量的產品;應該富有創新精神;等等。

ieee cs則通過

11個方面的認證,包括職業道德規範和技能訓練,通過考試者將被

ieee

授予「軟體開發職業工程師」(

certified software development professional)。

各大軟體廠商也有自己的資格認證。但這些認證不是從整體上評價乙個軟體工程師是否職業化,而是對他們各自產品和服務的一種熟悉程度的測評和認證。

成為職業化的軟體工程師

自律、溝通和技能是成為職業化軟體工程師的必要條件,

ieee csdp

是通向職業化的有效途經。

自律

軟體區別於其它傳統產品,因為它是看不見摸不到。軟體只有安裝執行後,人們才看見它的介面;開發進度也是肉眼看不見的,你根本無法準確知道你的下屬完成了任務的

80%還是

30%;質量更是不可見的,只有通過非常認真、全面的測試和度量,你才能了解你下屬的**的質量。乙個程式設計師認真思考問題時的模樣和他發呆時的表現一樣,外人很難判斷。因此說,「自律」對軟體工程師來說更為重要。

自律不僅表現在認真工作上,還表現在與公眾(

the public

)利益的一致性上,表現在和雇主、同行、上級等的關係處理上。

ieee

和acm

聯合發布了乙個軟體工程師職業道德規範,規範涉及

8個方面

[1],軟體工程師應以此來約束和規範自己的行為。

自律還表現是否為客戶著想。你的軟體是為客戶開發的,只有心中裝著客戶,才能不斷改進產品,不斷提高客戶滿意度。更廣義的客戶,不僅是掏錢買你產品的人,還有你所服務的所有物件,包括你的經理、你的下屬和你周圍的同事和合作夥伴,讓他們的工作順利進行,和他們一起共同完成任務,是職業化軟體工程師的最起碼的職責。

溝通

溝通的目的是使得軟體本身變得可理解。軟體既看不見,也摸不著,軟體越來越複雜,而且處在不斷的變化過程中。因此需要軟體工程師進行大量書面的、口頭的、或面對面的溝通。大到產品的整體功能要求和效能要求,小到程式的結構,甚至乙個函式和乙個變數的含義和使用方法。

溝通的方法有很多。既有標準化的、結構化的工具語言,如

uml,也有文件化的表達方式,軟體工程強調文件的重要性就是以文件作為溝通的工具,用它和客戶溝通(

requirement specification

);用於工程師和工程師溝通

(design document)

,用於市場人員和工程師溝通

(product definition

或system specification)

;用於開發人員和測試工程師溝通

(design document, requirement specification)

等。口頭溝通是必不可少的,儘管文件的重要性在軟體工程中被反覆強調,但是,口頭溝通是文件的必要補充,既可以用於文件形成之前,也可以用於文件形成之後。

溝通的技巧也有很多。文字表達技巧、科技寫作技巧和口頭表達技巧都屬於溝通技巧範圍之內。不幸的是,軟體工程師在這方面普遍呈現能力不足。同時對本領域知識的理解和實踐經驗是溝通的基礎。更為重要的是軟體工程師對所負責開發的軟體的責任感。主動和上級、和同行、和下屬溝通是職業化所必須的,因為軟體開發需要團隊協作,任何乙個工程師的工作都可能會影響全域性。軟體工程的實踐表明,個別人缺乏主動溝通,往往導致整個團隊的技術方案出現偏差,或整個專案的進度受到影響。

技能

在中國,一線的軟體工程師都很年輕。這些年輕的工程師都很年輕。這些年輕的工程師過於關心自己掌握的技能是否達到一定水準,卻忽視了使用者需求,甚至很多時候也忽視軟體開發的規範,諷刺的是,他們理所當然地認為這並不重要。

ieee

的職業化認證,要求職業化的軟體工程師不僅要掌握必要的專業知識和專業技能,如編譯原理、作業系統原理、資料結構、資料庫、程式語言和演算法,

ieee

更強調以下幾個方面:需求的引導和分析、軟體設計、軟體構造、軟體測試、軟體維護、配置管理、軟體工程管理、軟體過程管理、軟體工具和方法以及軟體質量保證等

[2]。這是業界專家學者從大量實踐中總結出來的,是面對「軟體危機」時人們提出的工程化思想的具體體現。

結 語

著名的數學家和

it教育專家袁傳寬教授,在認真比較了中美兩國的軟體工程師之間的差別之後,認為中國目前最緊迫需要的是佔整個軟體工程師隊伍的

35%的高階軟體工程師

[3],認為這

35%應該有良好的溝通能力和國際化的文化交流能力,能夠看清大局,能夠把握專案實施的方向,保證產品開發優有序進行。袁教授對我國目前的軟體人才隊伍表示擔憂:中國軟體業正是缺少懂技術、會管理的這

35%,才導致有想法無法落實,有資源無法組織,水平不高,發展不快。而這一切的根本原因,是我們教育體系不夠健全。袁教授所說的

35%,大致就是我這裡所說的職業化的軟體工程師。

袁教授認為,必要的系統訓練,並獲得權威部門的認證,是通過職業化的最佳途徑。

參考文獻

1. ieee/acm

:《ethical code of software engineer》

2. summivalue

:《software enginneering》,

機械工業出版社,

2005

3. 袁傳寬:「培養關鍵的

35%」

《程式設計師》雜誌,

2023年7

月 陳尚義先生簡介: 

現任中國軟體與技術服務股份****通用產品研發中心總經理。

畢業於北京航空航天大學,獲軟體工程工學碩士學位。十幾年來一直致力於企業資訊化與軟體產品開發,積累了豐富的海內外實踐經驗。先後在國家**機關、金融系統、外資軟體企業擔任專業領導職務,成功領導了很多大型資訊系統的開發和實施。

2023年陳先生接受聞名東南亞的新加坡krdl(kent ridge digital labs)數碼實驗室的邀請,從事資訊保安研究工作。2023年至2023年受聘於美國ipedo inc.,任工程經理,從事新一代資料庫軟體的研發,該公司位於矽谷腹地,其產品處於世界領先地位。

陳先生注重將軟體工程的理論和實踐相結合,在實踐中總結經驗。先後在專業期刊、學術會議上發表學術**多篇,涉及軟體開發方法、軟體維護、企業資訊化建設、資訊保安等眾多領域。

陳先生兼任美國矽谷資訊管理研究院(silicon valley institute of information management)研究員,矽谷中國工程師協會(silicon valley chinese engineer association)會員,北京航空航天大學、中國科學技術大學校外碩士生導師。

ieee授權培訓結構高階講師。

職業化的軟體工程師

職業化之於軟體工程師非常重要。因為 軟體是看不見也摸不著的,它的進度也看不見摸不著,需要軟體工程師嚴格自律 善於溝通 軟體開發是創造性的勞動,創造性勞動依賴個人主觀能動性,沒有自我激勵是不可能成為出色的軟體工程師的 軟體在國民經濟和人們日常生活中發揮著越來越重要的作用,軟體工程師的道德行為規範成為備...

軟體工程師的職業之路

記得看過某篇文章寫到21世紀世界範圍內最好的前十大職業有軟體工程師一項,平心而論,應該說缺少的是良好職業素養的,有經驗的,合格的軟體工程師。從國內招聘 上的資料也能看出來,近些年由於移動網際網路,網際網路的蓬勃發展,以及因為網際網路對傳統行業的整合一系列影響,軟體工程師需求一直很旺盛,另一方面,高校...

軟體工程師的職業之路

原文 記得看過某篇文章寫到21世紀世界範圍內最好的前十大職業有軟體工程師一項,平心而論,應該說缺少的是良好職業素養的,有經驗的,合格的軟體工程師。從國內招聘 上的資料也能看出來,近些年由於移動網際網路,網際網路的蓬勃發展,以及因為網際網路對傳統行業的整合一系列影響,軟體工程師需求一直很旺盛,另一方面...