職業化的軟體工程師

2022-02-23 04:03:34 字數 3065 閱讀 1297

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

下面是軟體工程師十個「不職業」行為。在一些特定領域工作的人們可能會認為這些不具有非常廣泛的代表性。例如,ieee和acm聯合發布的關於軟體工程師職業道德規範裡,認為軟體工程師首先要遵守的是社會公眾原則,即所開發的軟體要給人類帶來福利,不能製造類似於計算機病毒那樣的具有危害性的軟體。由此,製作病毒顯然是最大的「不職業」。然而,在一般的商業型公司裡這個問題不是最突出的,因此製作病毒並沒有包含在本文列舉的十大不職業行為之內。

行為一:對外交付半成品

我們的態度反映在我們的工作上,職業化的人士從不從自己手上交出不合格的工作產品。那些不職業的軟體工程師滿足於把工作做成半成品,等著讓別人來糾正他們的錯誤。

開發者總是不好好做單元測試,沒有確認自己的**符合不符合要求,就盲目自信地認為沒有問題,提交給別人供整合和測試。殊不知,沒有經過單元測試的**,往往在整合和系統測試階段發現大量的問題,要修復這些問題需要付出更大的代價,這個代價比你自己發現並修復要大得多,給組織造成了巨大損失。

行為二:不遵守標準和規範

職業化的重要特徵是遵守行業標準,不能肆意按照自己的想象來發揮。每個行業都有自己的技術規範,軟體行業也同樣如此,如ieee發布的國際軟體工程標準等;各個軟體開發組織也有相應的**規範、文件模板、**審查清單等;有一定管理水平的軟體開發組織還有相應的過程檔案。

這些都是軟體工程師在軟體開發過程需要遵守的規定。特別強調的是,自人們認識到軟體危機以來,無論是學術界還是工業界都在不斷地總結出軟體開發的失敗教訓和成功經驗,並把他們總結成為最佳實踐,進而形成標準,這些最佳實踐是在大量實踐的基礎上提煉而成的,要充分利用這些最佳實踐和標準指導自己的行動。

行為三:不積極幫助他人

技術人員最容易犯的錯誤是「保守秘密」,覺得自己開發的成果屬於自己,不喜歡和別人共享。生怕影響自己在組織內的地位。

幫助別人也是幫助自己,這個簡單的道理卻被高智商的軟體開發人士忽視。在其他行業中,幫助別人可能僅僅是乙個美德,但在軟體開發組織中,幫助別人還能為組織降低成本、縮短開發周期、提高產品質量,所有這些正是軟體工程學科所研究、並試**決的問題。

行為四:版權意識不敏感

我們既是軟體的製造者,也是軟體最積極的使用者。如果我們自身不遵守版權,就會給其他人造成極大的、負面的示範作用,也是對我們自己勞動成果的不尊重。在實際生活中我們看到太多的例子,大量的軟體工程師盜版使用了其他公司的產品,並以此炫耀自己的能力。

不尊重版權的另乙個例子是:不認真閱讀開源**的使用限制條款就隨意使用;隨便找到乙個開發包,不問來龍去脈就嵌入到自己的系統;錯誤地認為它在組織內所做的工作成果是自己的,在離職後轉讓給他人;看到別人使用盜版軟體不制止,而且還繼續傳播。

行為五:對待計畫不嚴肅

軟體工程強調計畫性。在軟體專案管理裡,任何專案都要經過策劃(planning),策劃的結果是專案計畫。專案管理者跟蹤專案計畫的執**況,記錄計畫執行過程中存在偏差的地方,對任何與計畫有出入的想法都要事先經過評審和批准,然後才能付諸行動。

因此計畫是嚴肅的。計畫是大家溝通的平台,是檢查專案狀態(project status)的依據,也是控制專案變更的手段。計畫還是一種承諾,因為策劃過程是所有開發者都參與的,或者是徵求過開發者意見的,承認了計畫中的各種安排,就意味著你已經對外承諾了這些。

軟體計畫具有難以精確估計並動態變化的特性,因此需要我們軟體工程師更加嚴肅地對待計畫,而不應該成為我們不按計畫行事的藉口。

行為六:公事私事相混淆

公私分明是職業化的另乙個重要特徵。利用公司裝置做自己的事情;在上班時間瀏覽自己感興趣、和工作無關的**,如上班**票,都是不職業化的行為和習慣,屬於假公濟私。

反過來也一樣是不職業的:用自己私人的裝置處理公司的事務,用免費的郵箱傳送和接收公司的郵件;帶個人的電腦來辦公室處理公司的業務。這樣做,可能給組織的軟體安全性造成危害,也可能對組織的工作造成麻煩、惹出版權官司。在公和私之間畫上一道紅線,做到公私分明,是職業化軟體工程師必備的素質。

行為七:不注意更新自己

職業的與非職業的軟體工程師乙個重要區別就在於職業化的人士經常學習,不斷更新自己的知識,保持自己在本行業的競爭能力。

我接觸到的很多任務程師,他們想走捷徑,對技術淺嚐轍止;知其然不知其所以然;他們畏難而退:不想在一線戰鬥,喜歡搞他們想象的所謂的管理;想做測試,因為他們錯誤地認為測試對技術的要求不高……這些都是和職業化的軟體工程師很不相稱的。

行為八:不主動與人溝通

溝通,在軟體開發領域,是責任問題,不是性格問題。

不主動溝通,其背後隱藏的更為重要的原因是工程師的責任感不夠。主動和上級、同行、下屬溝通是職業化所必需的,因為軟體開發需要團隊協作,任何乙個工程師的工作都可能會影響別人,進而影響全域性。軟體工程的實踐表明,個別人缺乏主動溝通,往往導致整個團隊的技術方案出現偏差,或整個專案的進度受到影響。

報告(report)是溝通的乙個方式,有時顯得特別重要。當你承擔的任務進展順利的時候,要報告;特別當任務進展遇到困難、可能會影響別人或引起變更的時候,更要報告。配合專案經理和qa人員跟蹤專案的計畫執**況,是每乙個工程師分內的職責。

行為九:不遵守職場規則

一些工程師不能很好地遵守軟體行業的職場規則。比如:互相告知或打聽工資和獎金的多少;離職時帶走公司的源**和文件;或急於到新單位工作而不專心交接等等。

軟體計畫的不精確性,導致開發任務的分布不均勻,特別是重要里程碑(如產品發布)之前,往往需要一定程度的加班。對此,職業化的軟體工程師應給予理解和配合。

行為十: 不夠誠實和正直

配合專案經理做好計畫是工程師不可推脫的職責。進度的安排是根據任務承擔者的經驗、水平來確定的,對所安排的任務,工程師本人應該有比較正確的判斷。實際工作中,卻碰到有些工程師一天能完成的任務故意說成是兩天,為自己爭取到過分寬鬆的環境。雖然,也有組織要求軟體工程師對工作量和進度有一定的判斷和估計能力,但這和故意虛報計畫的性質是不一樣的,前者是水平問題,後者是誠信問題。

工程師的正直來自於強烈的社會責任感。只有維護行業的道德水準和職業規範,軟體行業才能持久健康發展。犧牲職業道德和規範水準,換來了暫時的經濟利益,傷害的卻是整個軟體職業的榮譽和信任度。

做職業化的軟體工程師

做職業化的軟體工程師 文 陳尚義 與 20年前不一樣,現在軟體正發揮著越來越重要的作用,而且以越來越快的速度影響著國家 公司 甚至是每乙個人。作為軟體工程師,我們從事的事業正在影響著世界的每乙個角落,我們應該感到無上光榮和自豪,與此同時,我們的工作質量與職業水準變得更重要。軟體開發已成為乙個職業,職...

軟體工程師的職業之路

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

軟體工程師的職業之路

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