最近終於完成了周欣老師的《移山之道》這本書,說一下自己的一些感受吧。
首先,不得不說的是這本書的書寫風格,以前我印象中關於計算機方面的專業書籍肯定是枯燥乏味的,如果你讀著一本關於計算機的著作而沒有睏意,那麼這本書寫的就相當不錯了,但是《移山之道》這本書卻不是這樣,最初讀到引子的時候我有點兒摸不著頭腦,怎麼會有愚公移山這個語言?而且還是文言文!慢慢往後讀才知道,原來這只是故事的開始,原來這是乙個關於「王屋村軟體公司」的故事...
開始看的時候,以為這本書就是一本關於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的重要性。但是再詳細的測試也不能保證發布的版本就是完善的,從各種軟體不斷出現的補丁就可以看出這點。所以,測試可以說是一項很考驗人的耐心、細心和能力的工作。
三、**規範
以前我們上任何一門高階程式語言設計課的時候老師總是會強調**規範的好處和重要性,但是沒有乙個老師在作業中要求這點,只是上課順帶提提,然後學生該怎麼寫還是怎麼寫,《移山之道》這本書在「**規範與**複審」這一章,詳細介紹了**的規範以及其重要性,把**的縮排、行寬、括號、斷行、分行、命名、下劃線、大小寫問題、注釋等日常寫**需要注意的問題都做了詳細的規定,並且在**設計規範中講了怎麼處理日常常見的一些問題。另外,還告訴我們為了保證**的風格正確,邏輯正確,我們還必須進行**複審。
四、關於合作
以前我也沒認識到結對程式設計的優點,因為以前沒有遇到需要兩個人共同合作的專案,最近老是正好布置了結對程式設計的作業,在實踐中我漸漸認識到了結對程式設計的優點,兩人合作更容易迸發出意想不到的火花,而且互相學習對方的長處也是個人進步的乙個重要手段,當然並不是任何時候任何人都適合結對合作的,這本書也講了不適合結對的情況,我感覺這些情況都很客觀,也是我們在學習過程中經常會遇到的。
總的來說《移山之道》是一本不出的書,不論是他那種**的風格還是裡面所蘊含的知識,從這本書中,我們可以學到很多前輩們通過不斷實踐所得出的經驗,這對我們來說都是非常寶貴的財富,希望你也能讀一讀這本書,希望你也能有所收穫!
《移山之道》Reading Task
老師布置的閱讀任務雖然是附加的作業,但是對我來說是個很好的學習機會。軟體工程主要是對工程的開發進行學習,畢竟在學校老師教了那麼多的知識,我們課下做了那麼多的練習並沒有提高我們做乙個工程的能力。乙個專案乙個工程不僅僅是編寫 除錯,簡單的測試,通過閱讀 移山之道 這本書我對開發專案有了乙個全面的了解。因...
有源則至清 我讀《移山之道》
引子 還沒想好怎麼個調整法子,書就到了手上 還沒看到第一頁,書就被同事搶去了。有些事往往如此,來也沒個準備,去也沒個準備。不過這被同事搶走的事實,讓我知道 無論如何,這一定是一本受歡迎的書。一 vsts之源 msf 問渠哪得清如許,為有源頭活水來。書的開篇便解了我久久以來的疑惑 如何把一本書寫清楚。...
有源則至清 我讀《移山之道》
引子 還沒想好怎麼個調整法子,書就到了手上 還沒看到第一頁,書就被同事搶去了。有些事往往如此,來也沒個準備,去也沒個準備。不過這被同事搶走的事實,讓我知道 無論如何,這一定是一本受歡迎的書。一 vsts之源 msf 問渠哪得清如許,為有源頭活水來。書的開篇便解了我久久以來的疑惑 如何把一本書寫清楚。...