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