大多數象我這樣對軟體有濃厚興趣的人,畢業後義無反顧地走進了企業,開始了程式設計師的生涯。那
時,我們迷戀「大全」、「秘籍」一類的書籍,心中只有**。當我看到一行行枯燥的**變成了
能夠打**的裝置,變成了螢幕上漂亮的**,變成了動聽的**,成就感油然而生。我覺得自己
也是乙個出色的程式設計師了。
在使用者的機房中苦熬三晝夜解決軟體的bug,也成了一種可以誇耀的資歷。五年前的某一天,
我把曾經讓我興奮自豪的大量**和少得可憐的文件移交之後,來到了華為。這裡有更多的年輕
人,我如魚得水,可以充分發揮自己的想象力。
依然是**,依然是匆匆地在紙上記下稍縱即逝的靈感(我們把它稱作文件),依然是無休止
地和bug作鬥爭。當有一天,乙個新來的同事拿著署著我的大名的文件,小心翼翼地來問我時,我
發現自己好象有點不認識它了。我心裡有點沮喪,再看看**,發現文件上記錄的一些靈感已面目
全非。我當時不知道那位新來的同事感受如何,但我從那時起,好象意識到什麼。現在來看,那時
的很多事情都是事倍功半。
去年年底,公司派我到印度從事專案開發,學習印度的軟體開發管理方法。一種久違的衝動在
心底公升起。印度,我已去過兩次,雖說是走馬觀花,但是,印象還是比較深刻。我在訪問過程中和
印度的工程師交流過,他們言談中透著自信。他們給我講解正在做的軟體的測試環境,給我看他們
寫的單元測試文件。當我看到乙個軟體模組的單元測試用例有三百多頁時,我覺得心裡很是沉重。
當我第三次踏上這片土地時,我又見到了熟悉的人們,明亮的眼睛,溫和的笑容,隨意的穿
著,風馳電掣的摩托,還有大學校園中穿著拖鞋,手抱書本的年輕人。
我也見到了我的專案經理,乙個個子較高,瘦瘦的年輕人,據說剛從美國回來,已工作了五、
六年。我聽了心裡很高興,這回要一招一式地學兩手。
需求分析的時間是乙個月,專案經理和我們(實際上代表客戶)討論了proposal中的內容,確
定每一項都是需要的。然後他把模組大致劃分了一下,開始進入計畫中的學習階段。每個人在學習
階段要寫出功能描述的膠片,給其他人講解,不知不覺中,專案組的所有人對專案有了整體的了
解。 他還安排了一些培訓,如他們公司的軟體開發模型、專案組中各角色的定義,以後及時的培訓
不斷,只要專案組中有需求,他總是把qa或相關的人請來,培訓很專業。需求分析完成後提交了一
份四十多頁的文件,當我看到這份英文文件中我寫的部分整整齊齊地列在其中時,我的感覺很復
雜,有些喜悅,但更多的是苦澀,我以前怎麼就從來沒有這樣做過需求分析呢。在我寫文件的過程
中,qa給我們培訓過srs的寫作模板,後來我還是不放心,讓他們乙個有經驗的工程師寫了一段,
我們再琢磨著照著寫。這份srs雖然是多個人合寫,但風格一致,內容詳實。更為可貴的是,一直
到最後,這份需求分析的內容都沒有改過,以至於我們沒有機會走一下他們的需求更改流程。
需求分析是專案的第一階段,第二階段的開發時間要根據需求分析的結果來確定。當對方的首
席技術官(相當於我們業務部的總體組長)來和我們討論計畫時,他們已列出了對每個模組的**
行數的**,可能存在的風險。根據他們公司的生產率--300行/人月,他得出了專案第二階段需
要多少周。我們當時就提出了異議:1)公司對該專案需求很急;2)每月300行是否太少;3)我們
到有源**參考,生產率最多不能超過350行/人月。當他問我們公司的生產率時,我腦袋裡轉了三
個圈,沒敢多說,大概
六、七百行吧。他沉默了一會兒,然後堅定地說,我們這個計畫是建立在確
保質量的基礎上的,我想你們到印度來開發軟體,首先看中的應該是我們印度公司的質量保證。我
隨後的開發活動有條不紊,我們老老實實地跟著做。系統測試計畫、用例,概要設計,整合測
試計畫、用例,詳細設計,單元測試計畫、用例,編碼,單元測試,整合測試,系統測試。乙個完
整的v模型開發過程,其中每個過程都有review。當我們對一些設計的方法不太明白時,專案經理
給我們發來了相關的資料,我不知道他當時是怎麼想的,一些基本的分析、設計方法是十年,甚至
二十年前的軟體工程書中就講到的,印度每個計算機專業的人員都是必修這些內容的。而我們除了
對一些具體協議的**很熟之外,對這些常用的方法似乎一無所知。我感到一些羞愧,進城直奔書
店,把他給我開列的書找了出來,晚上躺在床上,仔細研讀,我彷彿突然又遇到了能給我指點迷津
的良師益友。現在印度所已形成了強烈的學習風氣。我回來後也推銷了700多本書,這些書教我們
如何用工程化的方法開發軟體,是成為乙個軟體工程師必讀的資料。
我們的專案經理的計畫控制能力很強,當有什麼影響到專案計畫的事情發生時,如人員辭職、
實驗室搬家、某一模組**不准(該模組是我們**的),他總是採取必要的措施,減少延期,調
整計畫。剛開始,我們對他們每天上午11點,下午4點下樓喝咖啡還有點意見,後來也跟著喝去
了,原來,喝咖啡時的交流非常豐富,從專案管理到設計方法,從技術發展到風土人情,無所不
包,對我們互相之間的理解,對團隊的氣氛很有幫助。我們專案的qa也在適當的時候出現在我們的
面前,我們對她的工作只有一些感性認識。她每次參加會議時,手裡時常拿著乙個check list,項
目經理準備相應的資料,回答一些問題,她打著勾,或寫著專案經理的解釋。她給我們做培訓時也
很耐心,體現出很好的職業素養,我至今還在懷念她給我們的幫助。
我從事軟體開發已有九個年頭了,可我現在仍然不能說自己是個合格的軟體工程師,更不用談
什麼合格的管理者。我看到乙份報道說,瑞士洛桑一權威機構把中國的科技綜合競爭力從原來的第
十三位調到二十多位,原因是他們調整了一些評估標準,其中有一條是中國合格工程師的可獲得性
非常低。想著弟兄們熬紅的雙眼,四處奔波公升級的疲憊身影,我有乙個強烈的願望:快把我們自己
公升級成合格的工程師吧。
從程式設計師公升級到工程師
大多數象我這樣對軟體有濃厚興趣的人,畢業後義無反顧地走進了企業,開始了程式設計師的生涯。那時,我們迷戀 大全 秘籍 一類的書籍,心中只有 當我看到一行行枯燥的 變成了能夠打 的裝置,變成了螢幕上漂亮的 變成了動聽的 成就感油然而生。我覺得自己也是乙個出色的程式設計師了。在使用者的機房中苦熬三晝夜解決...
從程式設計師到測試工程師(一)
這篇是2002年底 程式設計師 雜誌上的一篇文章,雖然時間早了點,但值得一看。前言 軟體測試一門非常嶄新的學科,目前研究的內容還很不深入,仍然處於嬰兒階段。軟體測試需要什麼樣的專業基礎還沒有定論,而且目前還沒有一種很好的標準來衡量測試人員。但無可置疑,軟體測試越來越受到軟體公司的重視,軟體測試工程師...
從程式設計師到測試工程師(轉貼)
這篇是2002年底 程式設計師 雜誌上的一篇文章,雖然時間早了點,但值得一看。前言 軟體測試一門非常嶄新的學科,目前研究的內容還很不深入,仍然處於嬰兒階段。軟體測試需要什麼樣的專業基礎還沒有定論,而且目前還沒有一種很好的標準來衡量測試人員。但無可置疑,軟體測試越來越受到軟體公司的重視,軟體測試工程師...