軟件工程師的十個“不職業”行為

職業化是軟件工程師的必然選擇。本文根據我在教學和軟件開發管理方面的實踐,列舉幾個軟件工程師“不職業”的行為或習慣,從另外一個側面進一步探討什么是真正的軟件工程師職業化。
  
  職業化之于軟件工程師非常重要。因為:軟件是看不見也摸不著的,它的進度也看不見摸不著,需要軟件工程師嚴格自律、善于溝通;軟件開發是創造性的勞動,創造性勞動依賴個人主觀能動性,沒有自我激勵是不可能成為出色的軟件工程師的;軟件在國民經濟和人們日常生活中發揮著越來越重要的作用,軟件工程師的道德行為規范成為備受關注的問題。
  下面是軟件工程師十個“不職業”行為。在一些特定領域工作的人們可能會認為這些不具有非常廣泛的代表性。例如,IEEE和ACM聯合發布的關于軟件工程師職業道德規范里,認為軟件工程師首先要遵守的是社會公眾原則,即所開發的軟件要給人類帶來福利,不能制造類似于計算機病毒那樣的具有危害性的軟件。由此,制作病毒顯然是最大的“不職業”。然而,在一般的商業型公司里這個問題不是最突出的,因此制作病毒并沒有包含在本文列舉的十大不職業行為之內。
  
   行為一:對外交付半成品
  我們的態度反映在我們的工作上,職業化的人士從不從自己手上交出不合格的工作產品。那些不職業的軟件工程師滿足于把工作做成半成品,等著讓別人來糾正他們的錯誤。
  開發者總是不好好做單元測試,沒有確認自己的代碼符合不符合要求,就盲目自信地認為沒有問題,提交給別人供集成和測試。殊不知,沒有經過單元測試的代碼,往往在集成和系統測試階段發現大量的問題,要修復這些問題需要付出更大的代價,這個代價比你自己發現并修復要大得多,給組織造成了巨大損失。
  
   行為二:不遵守標準和規范
  職業化的重要特征是遵守行業標準,不能肆意按照自己的想象來發揮。每個行業都有自己的技術規范,軟件行業也同樣如此,如IEEE發布的國際軟件工程標準等;各個軟件開發組織也有相應的代碼規范、文檔模板、代碼審查清單等;有一定管理水平的軟件開發組織還有相應的過程文件。
  這些都是軟件工程師在軟件開發過程需要遵守的規定。特別強調的是,自人們認識到軟件危機以來,無論是學術界還是工業界都在不斷地總結出軟件開發的失敗教訓和成功經驗,并把他們總結成為最佳實踐,進而形成標準,這些最佳實踐是在大量實踐的基礎上提煉而成的,要充分利用這些最佳實踐和標準指導自己的行動。
  
   行為三:不積極幫助他人
  技術人員最容易犯的錯誤是“保守秘密”,覺得自己開發的成果屬于自己,不喜歡和別人共享。生怕影響自己在組織內的地位。
  幫助別人也是幫助自己,這個簡單的道理卻被高智商的軟件開發人士忽視。在其他行業中,幫助別人可能僅僅是一個美德,但在軟件開發組織中,幫助別人還能為組織降低成本、縮短開發周期、提高產品質量,所有這些正是軟件工程學科所研究、并試圖解決的問題。
  
   行為四:版權意識不敏感
  我們既是軟件的制造者,也是軟件最積極的使用者。如果我們自身不遵守版權,就會給其他人造成極大的、負面的示范作用,也是對我們自己勞動成果的不尊重。在實際生活中我們看到太多的例子,大量的軟件工程師盜版使用了其他公司的產品,并以此炫耀自己的能力。
  不尊重版權的另一個例子是:不認真閱讀開源代碼的使用限制條款就隨意使用;隨便找到一個開發包,不問來龍去脈就嵌入到自己的系統;錯誤地認為它在組織內所做的工作成果是自己的,在離職后轉讓給他人;看到別人使用盜版軟件不制止,而且還繼續傳播。
  
   行為五:對待計劃不嚴肅
  軟件工程強調計劃性。在軟件項目管理里,任何項目都要經過策劃(Planning),策劃的結果是項目計劃。項目管理者跟蹤項目計劃的執行情況,記錄計劃執行過程中存在偏差的地方,對任何與計劃有出入的想法都要事先經過評審和批準,然后才能付諸行動。
  因此計劃是嚴肅的。計劃是大家溝通的平臺,是檢查項目狀態(Project Status)的依據,也是控制項目變更的手段。計劃還是一種承諾,因為策劃過程是所有開發者都參與的,或者是征求過開發者意見的,承認了計劃中的各種安排,就意味著你已經對外承諾了這些。
  軟件計劃具有難以精確估計并動態變化的特性,因此需要我們軟件工程師更加嚴肅地對待計劃,而不應該成為我們不按計劃行事的借口。
  
   行為六:公事私事相混淆
  公私分明是職業化的另一個重要特征。利用公司設備做自己的事情;在上班時間瀏覽自己感興趣、和工作無關的網站,如上班炒股票,都是不職業化的行為和習慣,屬于假公濟私。
  反過來也一樣是不職業的:用自己私人的設備處理公司的事務,用免費的郵箱發送和接收公司的郵件;帶個人的電腦來辦公室處理公司的業務。這樣做,可能給組織的軟件安全性造成危害,也可能對組織的工作造成麻煩、惹出版權官司。在公和私之間畫上一道紅線,做到公私分明,是職業化軟件工程師必備的素質。
  
   行為七:不注意更新自己
  職業的與非職業的軟件工程師一個重要區別就在于職業化的人士經常學習,不斷更新自己的知識,保持自己在本行業的競爭能力。
  我接觸到的很多工程師,他們想走捷徑,對技術淺嘗轍止;知其然不知其所以然;他們畏難而退:不想在一線戰斗,喜歡搞他們想象的所謂的管理;想做測試,因為他們錯誤地認為測試對技術的要求不高……這些都是和職業化的軟件工程師很不相稱的。
  
   行為八:不主動與人溝通
  溝通,在軟件開發領域,是責任問題,不是性格問題。
  不主動溝通,其背后隱藏的更為重要的原因是工程師的責任感不夠。主動和上級、同行、下屬溝通是職業化所必需的,因為軟件開發需要團隊協作,任何一個工程師的工作都可能會影響別人,進而影響全局。軟件工程的實踐表明,個別人缺乏主動溝通,往往導致整個團隊的技術方案出現偏差,或整個項目的進度受到影響。
  報告(Report)是溝通的一個方式,有時顯得特別重要。當你承擔的任務進展順利的時候,要報告;特別當任務進展遇到困難、可能會影響別人或引起變更的時候,更要報告。配合項目經理和QA人員跟蹤項目的計劃執行情況,是每一個工程師分內的職責。
  
   行為九:不遵守職場規則
  一些工程師不能很好地遵守軟件行業的職場規則。比如:互相告知或打聽工資和獎金的多少;離職時帶走公司的源代碼和文檔;或急于到新單位工作而不專心交接等等。
  軟件計劃的不精確性,導致開發任務的分布不均勻,特別是重要里程碑(如產品發布)之前,往往需要一定程度的加班。對此,職業化的軟件工程師應給予理解和配合。
  
   行為十: 不夠誠實和正直
  配合項目經理做好計劃是工程師不可推脫的職責。進度的安排是根據任務承擔者的經驗、水平來確定的,對所安排的任務,工程師本人應該有比較正確的判斷。實際工作中,卻碰到有些工程師一天能完成的任務故意說成是兩天,為自己爭取到過分寬松的環境。雖然,也有組織要求軟件工程師對工作量和進度有一定的判斷和估計能力,但這和故意虛報計劃的性質是不一樣的,前者是水平問題,后者是誠信問題。
  工程師的正直來自于強烈的社會責任感。只有維護行業的道德水準和職業規范,軟件行業才能持久健康發展。犧牲職業道德和規范水準,換來了暫時的經濟利益,傷害的卻是整個軟件職業的榮譽和信任度。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/451389.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451389.shtml
英文地址,請注明出處:http://en.pswp.cn/news/451389.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

fn:substring()函數

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 fn:substring()函數返回字符串中指定開始和結束索引的子串。 語法 fn:substring()函數的語法如下&#xff1a; ${fn:substring(<s…

大數據分析如何創建最佳的移動應用用戶體驗

2019獨角獸企業重金招聘Python工程師標準>>> 如今&#xff0c;越來越多的人使用移動應用程序。而移動應用將在未來成為一個價值數十億美元的產業。大數據可以幫助企業構建最佳的用戶體驗。 多年來&#xff0c;開發移動應用程序的技術一直在不斷發展&#xff0c;這實…

C語言自學的方法

一、C語言入門的基本學習方法 《C語言》的內容很豐富&#xff0c;有的部分涉及到的細節很多&#xff0c;如硬件知識和數據結構知識等&#xff0c;自學時不可能面面俱到&#xff0c;否則必然會顧此失彼&#xff0c;反而抓不住主要矛盾。筆者認為對初學C語言的考生&#xff0c;開…

CAP原理簡單理解

C&#xff1a;集群中所有機器狀態是一致的。 A&#xff1a;客戶端訪問集群中任意一個節點&#xff0c;總能得到"處理成功"的結果。 假設有五個節點&#xff1a;n1~n5 &#xff0c;出現網絡分區被分成兩組&#xff1a;[n1~n2]和[n3~n5]&#xff0c;那么當n1出來客戶端…

Jstorm+Spring+mybatis整合

在現有的jstorm框架下&#xff0c;有一個需求&#xff1a;jstorm要對接mysql數據庫的實時讀取數據&#xff0c; 通過bolt處理&#xff0c;可能要調用service層的框架&#xff0c;最后保存到數據庫。 在網上尋找了一下&#xff0c;發現storm集成spring的資料非常少&#xff0c;有…

無限享受百度文庫,財富值無視

相信大家在百度上找東西時&#xff0c;遇到有的文庫需要財富值&#xff0c;可是自己又沒有&#xff0c;是不是很頭疼啊。請看&#xff1a; 找到自己要的文庫&#xff0c;如我找的文庫鏈接為&#xff1a;http://wenku.baidu.com/view/7db6 ... html?l5.1.5.1&&#xff08;…

JavaScript onerror 事件( window.onerror = )

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 使用 onerror 事件是一種老式的標準的在網頁中捕獲 Javascript 錯誤的方法。 實例 onerror 事件 如何使用 onerror 事件捕獲網頁中的錯誤…

上海云棲:金融政企行業的CDN最佳實踐

2019獨角獸企業重金招聘Python工程師標準>>> 摘要&#xff1a; 在剛剛結束的上海云棲大會飛天技術匯分論壇上&#xff0c;阿里云視頻云產品架構師羅小飛進行了《阿里云CDN——面向金融政企的CDN最佳實踐》主題分享&#xff0c;為上海的嘉賓介紹CDN的解決方案與技術服…

lunix基本命令

安裝lunix 批量創建文件 whoami查看當前用戶 sudo adduser lilei創建用戶 groups lilei 查看用戶所屬用戶組 sudo usermod -G root lilei 賦予root權限 sudo deluser lilei --remove-home ls -l 顯示目錄的文件 ls -a 顯示隱藏文件 PWD 獲取當前目錄 cd .. 返回上層目錄 cd 進入…

開啟Swarm集群以及可視化管理

為什么80%的碼農都做不了架構師&#xff1f;>>> 在搭建的兩臺coreos服務器上開啟swarm集群 前置條件&#xff1a; docker均開啟2375端口同一個局域網內主服務器上安裝Portainer容器安裝Portainer容器執行&#xff1a; docker run -d -p 9000:9000 --restartalways …

python基本語法:序列

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 序列的基本操作&#xff1a; 2.用例&#xff1a; 3.序列包含字符串、元組、列表。

移動互聯網開始降溫:“人才熱”退燒

去年的瘋狂搶人變成了今年的裁員甚至關門歇業&#xff0c;漫天要價變成了工作難找&#xff0c;移動互聯網市場正回歸理性 工作不好找了。 “去年這個時候&#xff0c;一個剛畢業的Android開發工程師&#xff0c;就能輕松拿到七八千一個月&#xff0c;而今年&#xff0c;很難找到…

MAP存儲數據

map可以裝多種類型的值&#xff0c;當然鍵不能重復&#xff0c;值可以重復。可以使用多種類型的父類&#xff0c;來指定值的類型。比如Object是其他類的父類。例如&#xff1a;HashMap<Object,Object>&#xff0c;它的鍵和值都可以存儲多種類型&#xff0c;反正都是Objec…

IMDb、爛番茄、MTC、各種電影行業評分名字整理

這篇不是技術文章&#xff0c;就是對總是看到但是不知道具體是什么的一些電影名詞、評分、來源&#xff0c;學習一下。 IMDb 互聯網電影資料庫&#xff08;Internet Movie Database&#xff0c;簡稱IMDb&#xff09;是一個關于電影演員、電影、電視節目、電視明星和電影制作的在…

iOS應用:成功就像中彩票,大半開發者虧本

移動是座大金礦&#xff0c;從來都不乏一飛沖天的成功故事&#xff08;Draw Something、憤怒的小鳥等&#xff09;。但是大家往往只看到光鮮的一面&#xff0c;對于移動開發者來說&#xff0c;現實是殘酷的&#xff0c;根據市場營銷機構App Promo的一項調查&#xff0c;絕大多數…

python基本語法:元組

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 元組說明&#xff1a; 元組和列表類似&#xff0c;只不過元組和字符串一樣是不可變的&#xff0c;即你不能修改元組。 元組通過圓括…

docker安裝nginx容器小記

前言: 使用docker安裝了nginx容器&#xff0c;很久才成功跑起來&#xff0c;對安裝過程做下記錄 linux系統&#xff1a;centos7.4 docker安裝不闡述&#xff0c;直接記錄安裝創建nginx容器的過程 1. 拉取nginx的鏡像&#xff0c;此處拉取的最新版 docker pull nginx2. 創建ngin…

long==int

int 與 long 進行比較時&#xff0c;int 會自動進行隱式的類型轉換&#xff0c;將int提升為 long 類型。

Mybatis 攔截器介紹

Mybatis 攔截器介紹1.1 目錄1.2 前言1.3 Interceptor接口1.4 注冊攔截器1.5 Mybatis可攔截的方法1.6 利用攔截器進行分頁攔截器的一個作用就是我們可以攔截某些方法的調用&#xff0c;我們可以選擇在這些被攔截的方法執行前后加上某些邏輯&#xff0c;也可以在執行這些被攔截的…

python基本語法:列表(列表和元組的區別)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1.基本說明 2.用例&#xff1a; 3.列表類似于java中的list. 與元組不同&#xff0c;定義單個元素對象時不用加逗號&#xff0c;且元素值…