最近終於完成了鄒欣老師的《移山之道》這本書,說一下自己的一些感受吧。
首先,不得不說的是這本書的書寫風格,以前我印象中關於計算機方面的專業書籍肯定是枯燥乏味的,如果你讀着一本關於計算機的著作而沒有困意,那么這本書寫的就相當不錯了,但是《移山之道》這本書卻不是這樣,最初讀到引子的時候我有點兒摸不着頭腦,怎么會有愚公移山這個語言?而且還是文言文!慢慢往后讀才知道,原來這只是故事的開始,原來這是一個關於“王屋村軟件公司”的故事...
開始看的時候,以為這本書就是一本關於VSTS的介紹或者叫做廣告,越往后看發現越不是這么回事兒,好像越講越脫離了這個軟件,而呈現給我們的是一個系統的關於團隊協作開發軟件的介紹。
這些都是自己對這本書的風格的一些自己的看法和感想,但不得不說我從這本書中學到了很多東西,受益匪淺。
一、關於MSF的8條基本原則
首先摘錄一下MSF的8條基本原則:
(1)、推動信息共享與溝通(Foster open communications);
(2)、為共同的遠景而工作(Work toward a shared vision);
(3)、充分授權和信任(Empower team members);
(4)、各司其職、對項目共同負責(Establish clear accountablity and shared responsibility);
(5)、重視商業價值(Focus on delivering business value);
(6)、保持敏捷,預期變化(Stay agile,expect change);
(7)、投資質量(Invest in quality);
(8)、學習所有的經驗(Learn from all experiences).
不得不說,這些都是專業人士總結出來的真理,當然這些是對一個成型的軟件企業的標准,作為學生,我們需要做必要的了解,但是其中的第1、2、3、4、8條是值得所有與軟件開發相關的人士注意與學習的。
我印象最深的是第2和第4條,首先,要想一個小組的人員能夠同心協力,高效率的完成一個軟件的開發,大家一致的目標是一定要有的,要不等開發到關鍵的時候,發現大家開發的初衷是不同的,比如開發到關鍵時刻發現大家當初設想的用戶都是不一樣的,這個項目也許就這樣夭折了。所以我想一個PM在項目開始的時候應該做的就是讓大家統一思想,讓大家有一個共同的遠景。而且是小組協作開發項目,就應該把工作分給各個組員,大家保持信息的及時溝通即可,然后各自對自己的工作負責,分工的時候不按工作量論英雄,而是按工作完成的質量,我們可以求助其他組員幫忙,但是最后的責任是自己的,各司其職,對項目共同負責才能保證項目進度的高效。
二、關於測試
沒看這本書之前,我以為一個項目的tester的工作時這樣的:大家完成了項目的設計、編程,可以運行之后,在軟件發布之前,由tester對軟件進行安裝試運行,然后把軟件的功能大致走一遍,看看有沒有什么問題,然后就OK了,以為軟件的測試就是這么簡單,現在發現自己的想法真是簡單的可笑。
《移山之道》里有相當的篇幅講了關於tester的工作,講了一些關於測試的方法,讀完我才知道做一個tester並不是想象的那么簡單,測試的種類也是五花八門:
黑箱測試:從軟件的功能而不是內部結構去測試一個軟件,跟我當初的理解大致相同;
白箱測試:在測試的設計過程中,設計者可以看到軟件的內部結構,並且使用軟件的內部知識來指導測試數據及方法的選擇,這說明tester需要知道軟件的內部結構,甚至清楚每一個邏輯,這樣才能保證測試的全面安全。
另外還有許許多多的測試方式,按測試目的可以分為功能測試和非功能測試,還有單元測試、代碼覆蓋率測試、構建驗證測試、驗收測試等等測試方式,為了保證一個軟件發布后盡可能少的產生bug,一個詳細全面的測試是必不可少的,課間一個團隊中tester的重要性。但是再詳細的測試也不能保證發布的版本就是完善的,從各種軟件不斷出現的補丁就可以看出這點。所以,測試可以說是一項很考驗人的耐心、細心和能力的工作。
三、代碼規范
以前我們上任何一門高級程序語言設計課的時候老師總是會強調代碼規范的好處和重要性,但是沒有一個老師在作業中要求這點,只是上課順帶提提,然后學生該怎么寫還是怎么寫,《移山之道》這本書在“代碼規范與代碼復審”這一章,詳細介紹了代碼的規范以及其重要性,把代碼的縮進、行寬、括號、斷行、分行、命名、下划線、大小寫問題、注釋等日常寫代碼需要注意的問題都做了詳細的規定,並且在代碼設計規范中講了怎么處理日常常見的一些問題。另外,還告訴我們為了保證代碼的風格正確,邏輯正確,我們還必須進行代碼復審。
四、關於合作
以前我也沒認識到結對編程的優點,因為以前沒有遇到需要兩個人共同合作的項目,最近老是正好布置了結對編程的作業,在實踐中我漸漸認識到了結對編程的優點,兩人合作更容易迸發出意想不到的火花,而且互相學習對方的長處也是個人進步的一個重要手段,當然並不是任何時候任何人都適合結對合作的,這本書也講了不適合結對的情況,我感覺這些情況都很客觀,也是我們在學習過程中經常會遇到的。
總的來說《移山之道》是一本不出的書,不論是他那種小說的風格還是里面所蘊含的知識,從這本書中,我們可以學到很多前輩們通過不斷實踐所得出的經驗,這對我們來說都是非常寶貴的財富,希望你也能讀一讀這本書,希望你也能有所收獲!