軟件工程思想2

  文件類別:其它

  文件格式:文件格式

  文件大?。?6K

  下載次數(shù):54

  所需積分:2點

  解壓密碼:qg68.cn

  下載地址:[下載地址]

清華大學卓越生產運營總監(jiān)高級研修班

綜合能力考核表詳細內容

軟件工程思想2
第二章 程序員與程序經理 工作在第一線的軟件開發(fā)人員是程序員和程序經理,他們決定著軟件的命運。良好的 程序員隊伍和出色的管理是軟件項目成功的必要條件。管理不是管制,不是去卡住人家 的脖子,因為程序員不是一群野鴨子。管理的目的是讓大家一起把工作做好,并且讓各 人獲得各自的快樂和滿足。當一個組織被出色地領導時,雇員甚至不知道他們已被領導 。在項目完成時,他們會自豪地說:“看看我們通過努力取得的成績吧”。所以管理者不 能老惦記著自己是一個官,而應時刻意識到自己是責任的主要承擔者。 我們經常會聽到有經理頭銜的人在高談闊論:“編程我不會,做個項目還不easy?派 個人去搞系統(tǒng)分析,回頭再叫幾個程序員把需求譯成程序,不就OK了嗎?” 不懂英語的人準以為easy和OK是貶義詞。要讓軟件項目失敗很容易,只要符合下列條 件之一即可: (1)項目經理對軟件一無所知; (2)技術負責人對編程不感興趣; (3)真真編寫代碼的程序員是臨時雇用的。 如果上述三個條件同時具備,就請放心失敗好了。 讓我們少幻想自己是比爾·蓋茨,先當好程序員和程序經理再說。 2.1 了 解 程 序 員 早期的程序員干活能從軟件直通硬件,個個生猛無比。又因他們的作息時間、言行舉 止與常人不太一樣,久而久之就給人們留下了“神秘”、“孤僻”的印象。如今軟件行業(yè)被 炒得熱火朝天,有能耐的程序員即便躲在大山岙的軍工廠里也能被挖出來。而更多原本 不是程序員的人操起幾本“速成”、“二十一天通”等書籍也加入了這個行業(yè)。現(xiàn)在國內號 稱有上百萬程序員,這支大軍魚龍混雜,已搞不清那些是正規(guī)軍,那些是民兵游擊隊了 。 真正的程序員都有如下秉性: 一、誠實 程序員在學習與工作期間幾乎天天與機器打交道,壓根就沒有受欺騙或欺騙人的機會 。勤奮的程序員在調試無窮多的程序Bug時,已經深深地接受了“誠實”的教育。不誠實的 人,他肯定不想做、也做不好程序員。 有一名市場營銷員和一名程序員都在新聞發(fā)布會上發(fā)言,將一項新技術的消息公布于 眾。 市場營銷員說:“這項技術比電話、晶體管和原子彈三項發(fā)明加起來對世界文明的影 響都要大?!?程序員說:“這項技術在有限的領域內,在有限的程度上,解決了一些技術性的問題 ?!?看來為了讓我們的民族更加誠實,學電腦真的要從娃娃抓起。 二、簡單——實用主義 有人問一個數(shù)學家,一個物理學家和一名程序員:“一個盒子有幾個面?” 數(shù)學家回答說:“有六個面,因為盒子是長方體?!?物理學家回答說:“有12個面,分為6個外表面和6個內表面 ?!?程序員回答說:“只有兩個面,里面放電路板和硬盤,外面放顯示器和鍵盤。” 目前即使最先進的計算機也不具備智能,程序員的基本工作就是把復雜的問題轉化為 計算機能處理的簡單的程序。如果一個問題復雜到連程序員自己都不能理解,他就無法 編出程序讓更笨的計算機來處理。所以程序員信奉“簡單——實用”主義。 也有不少做計算機“學問”的人顛倒行事。本來幾句話、幾行程序就能說明白的事,非 得要抬高到理論創(chuàng)新的程度,寫成玄乎的文章去評教授或者弄個博士學位。所幸在第一 線工作的程序員大多是實干的。 三、愛憎分明 程序員大都喜歡技術挑戰(zhàn),不喜歡搞測試與維護。高水平的程序員喜歡與高水平的程 序員一起工作,因為他們怕“與臭棋佬下棋,棋越下越臭”。程序員大都厭惡拉幫結派、 耍政治手腕。不信,數(shù)一數(shù)你認識的程序員,有幾個是黨派人士? 四、工作單調但不乏味 有人問編程大師:“程序設計的真正含義是什么 ?” 大師回答說:“餓了的時候就吃,困的時候就睡,只要時機恰當就進行程序設計。” 其實程序員的生活和工作已融為一體,盡管單調卻不乏味,還能獨享孤獨。有詩為證 : 我編程三日 兩耳不聞人聲 只有硬盤在歌唱 結論:優(yōu)秀的程序員沒有理由不讓人喜歡,他們遠比怪僻來得可愛。 2.2 了 解 程 序 經 理 這里程序經理是指一支程序員隊伍的領導者,不管他的職務是開發(fā)組長,項目經理, 還是部門經理。程序經理是技術性的基層或中層干部,是軟件企業(yè)得以發(fā)展的生力軍。 程序經理的選拔是不容草率的事。不象有些事業(yè)單位,只要政治口號喊得勤快、能左右 逢緣不犯錯誤就可混個領導當當。也不象一些官僚機構,只有兩個人的辦公室也要設正 主任和副主任。如果碰巧正主任姓傅,副主任姓鄭,還會斗個沒完沒了。 在一個管理混亂的軟件公司里,如果某個程序員能大喊大叫并且干勁十足,那他就能 成為一名程序經理。微軟公司在選擇經理人員時,總是把他們的技術知識和運用技術去 賺錢的能力放在首位。程序經理一般就是程序員隊伍中最聰明的那個家伙。比爾·蓋茨曾 這樣描述聰明人[Cusumano1996]: 聰明人一定反應敏捷,善于接受新事物。他能迅速進入一個新領域,給你一個頭頭是 道的解釋。他提出的問題往往一針見血、擊中要害。他能及時掌握所學知識,并且博聞 強記,他能把本來認為互不相干的領域聯(lián)系在一起使問題得到解決。他富有創(chuàng)新精神與 合作精神…… 好的程序經理應該具備以下幾個條件: 一、技術水平是程序員隊伍中的最高級別 每個程序員骨子里頭都有一股傲氣,如果你不能技壓群雄,他們就不會聽你指揮。一 個技術水平較差的人被任命為程序經理真是個悲劇,就象一個略有權勢的太監(jiān),表面上 有人對他點頭哈腰,背后卻被人鄙視。 二、能做最多且最難的工作 程序經理編程要快且好。別人要干一天的活,他半天就能做完,這樣才會有精力去搞 管理。程序經理應負責系統(tǒng)分析、系統(tǒng)設計這類最難的開發(fā)工作,并指導不同水平的程 序員把各自的工作做好。如果人手不夠,程序經理要能同時干幾個人的活。 三、有人格魅力 軟件開發(fā)是智力創(chuàng)作過程,你不能指望僅通過執(zhí)行規(guī)章制度來產生好的作品。很多軟 件公司的程序經理都不是管理專業(yè)出身的,他們也不可能為了搞好管理而成天玩弄心機 。技術出色的程序經理一般少有心術不正的,所以管理的重點應是“以身作則”、“公正待 人”。如果程序經理在上班時趴在桌上睡覺,其他程序員也會這樣干。如果程序經理發(fā)現(xiàn) 有兩個程序員趴在機器旁睡覺,不能只對其中一個大聲吼叫:“你一編程就想睡覺,看看 人家,在睡覺時都想著編程?!?如果管理者沒有人格魅力,就沒有人信服你,團隊就不會有凝聚力,烏合之眾不可能 開發(fā)出優(yōu)秀的軟件。 結論:一個有活力的軟件公司的各級經理都不會這樣感嘆,“因為我啥也不會干,所 以只好當領導?!?2.3 程序員升為經理后是否還要編程 讓我們先看看Microsoft公司的系統(tǒng)軟件部門與應用軟件部門的領導是怎樣看待這個 問題的[Cusumano1996]。Windows NT 3.0項目的軟件經理婁·帕雷羅里讓他手下的經理們像他一樣每天花一半的時間編寫代碼 : 我在組內制定了許多規(guī)則,其中最重要的一條是每個人都得編程,誰也別想坐在那兒 發(fā)號施令……我發(fā)現(xiàn)管理者很容易失去目標,他們總是無法認識到問題的本質并且反應遲 緩。如果你始終不放棄編寫代碼,你就能對項目的進展情況了如指掌,及時發(fā)現(xiàn)并解決 問題……我大概每天花一半的時間編寫代碼并尋找項目的缺陷。 作為應用軟件領域的經理,克里斯·彼得斯也持同樣的看法。在他任Word項目總經理 時就認為: 在一些大公司內部,各部門經理把具體操作的層次向下移。你一旦當上開發(fā)部門經理 ,很快就會以自己身居高位、日理萬機為由放棄編程;同樣地,開發(fā)小組的組長會以自 己重任在肩而不愿編程;至于程序員也會覺得自己十分繁忙、分身無術而不再多編寫程 序。雖然我是270名員工的領導,似乎不再需要做什么具體的工作了,但我還是為Word新 版本編寫了一個特性。 程序員升為經理后一定要編程,這個道理已經說得很清楚了。最怕的是“虛心接受, 堅決不做”;或者僅是做個樣子,每天花一分鐘時間編程,編譯器還沒運行完就關掉了。 2.4 經理與技術隊伍的建設 如果是經營一個加工廠或一個飯店,經理們可以不必懂技術。因為他們的常識,以及 通過耳聞目睹或者咨詢都能解決實踐中的問題。在軟件領域,技術的力量是無窮的,一 天之內就可使整個產業(yè)發(fā)生巨變。也許你在商業(yè)上很精明,但無法保證自己在技術浪潮 中安然無恙。軟件公司的各級經理最好既精通技術又懂管理。 一個出色的領導,加上一支技術過硬的隊伍,才有可能創(chuàng)造業(yè)績。不能光指望請來孫 子或諸葛亮當教練,就能讓弱不禁風的男足去捧世界杯。不少人總喜歡自吹中國人很聰 明,最適合搞軟件開發(fā)??芍两褚矝]有做出幾個很光彩的軟件來,這與十三億人口不呼 應啊。新中國歷來喜歡與可憐的印度相比較來展現(xiàn)豐富多彩的優(yōu)越性,可是軟件產業(yè)沒 法與人家比。工作在第一線的程序員與程序經理應該意識到:好兵好將都不是天生的, 是后天練出來的;既要學會冷靜地分析問題,又要充滿激情地去工作。 軟件公司總希望能物色到既精通技術又善長商業(yè)的優(yōu)秀人才做經理。但已經出名了的 優(yōu)秀人才難以請到,也難以留住。所以把公司中的普通員工培養(yǎng)成為優(yōu)秀人才是重要的 舉措。公司的老板不要對程序員抱有偏見,以為他們只配與機器打交道。一個高水平的 程序員既然能學好數(shù)字邏輯,能理得清楚軟件中很多象“嵌套”這類“雞生蛋并且蛋又生了 雞”的錯綜復雜的關系,從理論上講當個縣長也不成問題。 現(xiàn)在很多女士不會燒菜,卻能把菜的營養(yǎng)講得頭頭是道。雖然這是個值得哀嘆的社會 問題,但我們應該有信心期待:如果她們非得天天燒菜不可,那么不久就能把菜燒得又 好吃又有營養(yǎng)。許多程序員不懂商業(yè),不是智力上的原因,主要是個人興趣和環(huán)境所致 。軟件公司的老板應該這樣鼓勵有靈氣的員工:“你能把技術做得那么棒,還怕搞不好管 理?放心干吧!”的確,很多技術人員是在工作中領悟如何管理的,他們經過挫折與磨練 ,逐漸升為組長、項目經理,乃至成為公司重要的決策者。 優(yōu)秀的程序員喜歡與優(yōu)秀的程序員一起工作,這是一種理想的愿望。一個普通的軟件 公司不可能有非常多的優(yōu)秀程序員,即便有,他們也不可能天天聚在一起干同一件事并 且和睦得無法形容。中國自封建社會起就有喜好內斗的風俗習慣,幾千年下來早已滲透 到社會各個角落,那怕黃河水流斷了,估計這民風也會延襲下去。要使程序員隊伍穩(wěn)健 ,必須有合理的等級制度來維護。等級制度并不限制自由和民主,它能讓自以為聰明絕 頂、誰也不服的人們懂得如何合作與奮斗。就象有了一架梯子,每個人才有機會爬上墻 頭摘下那向往已久的野花。當梯子散成一堆木棍時,只可能造就幾個賣炭翁。 下面我們嘗試著建立一個程序員隊伍的等級制度。 把技術水平分為四級,第一級最低,第四級最高。第一級技術水平的程序員主要考核 編程基本功,要求質量合格(他們主要來自剛畢業(yè)的大學生)。第二級技術水平的程序 員編程質量要高,做過幾個軟件項目,有數(shù)年的工作經驗,并能指導新手的工作。第三 級技術水平的程序員主要考核系統(tǒng)分析與系統(tǒng)設計的能力,要求其技術有足夠的深度和 廣度。第四級技術水平的程序員是成功的軟件產品的設計師,他不僅技術超群,并且能 使技術轉化為有價值的商品。 把管理(這里僅指軟件業(yè)務的管理,不考慮行政事務)水平也分成四級。第零級最低 ,第三級最高。第零級管理水平的人沒有管理職務,就是普通員工。第一級管理水平的 人是開發(fā)小組的組長,可帶領幾名程序員工作。第二級管理水平的人是項目經理。第三 級管理水平的人決定某些產品是否要開發(fā),以及如何去占領市場。 每個程序員都有明確的技術級別和管理級別。技術級別與管理級別有一定的聯(lián)系。一 般地,第一級技術水平的人只能做普通員工;第二級技術水平的人可以當一名組長;第 三級技術水平的人可以當一名項目經理;第四級技術水平的人可成為公司產品的決策者 。如圖2.1所示。本書作者目前的技術水平當屬第二級,管理水平符合組長的要求。作者 在讀中學和大學時就曾美滋滋地當過課代表,也就是組長級別。 技術級別 管理級別 四級 決策者 三級 項目經理 二級 開發(fā)組長 一級 普通員工 圖2.1 技術級別與管理級別 2.5 向錯誤與失敗學習 不管是生活或工作,人們都應該向錯誤與失敗學習,目的是讓我們在短暫的健康年華 中少犯錯誤、少失敗,多做幾件正確的對社會有貢獻的事。 導致軟件項目失敗的因素很多,如果不去找借口的話,就會發(fā)現(xiàn)錯誤的根源在自己身 上:知識貧乏、才能低下、經驗不足、驕傲自負……。我們必須正視自身的不足與缺點, 才會學到經驗教訓。可人們常有太多的虛榮,為了克服心理障礙,白白浪費了很多本該 用于創(chuàng)造的精力。 假...
軟件工程思想2
 

[下載聲明]
1.本站的所有資料均為資料作者提供和網友推薦收集整理而來,僅供學習和研究交流使用。如有侵犯到您版權的,請來電指出,本站將立即改正。電話:010-82593357。
2、訪問管理資源網的用戶必須明白,本站對提供下載的學習資料等不擁有任何權利,版權歸該下載資源的合法擁有者所有。
3、本站保證站內提供的所有可下載資源都是按“原樣”提供,本站未做過任何改動;但本網站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。
4、未經本網站的明確許可,任何人不得大量鏈接本站下載資源;不得復制或仿造本網站。本網站對其自行開發(fā)的或和他人共同開發(fā)的所有內容、技術手段和服務擁有全部知識產權,任何人不得侵害或破壞,也不得擅自使用。

 我要上傳資料,請點我!
COPYRIGT @ 2001-2018 HTTP://fanshiren.cn INC. ALL RIGHTS RESERVED. 管理資源網 版權所有