讀書筆記——讀《構建之法:現代軟件工程》第13~17章

第13章  軟件測試html

      昔者韓昭候醉而寢,典冠者見君之寒也,故加衣於君之上,覺寢而說,問左右曰:「誰加衣者?」左右對曰:「典冠。」君因兼罪典衣與典冠。其罪典衣,覺得失其事也;其罪典冠,覺得越其職也。非不惡寒也,覺得侵官之害甚於寒。架構

——《韓非子·二柄第七》ide

      侵官之害甚於寒——咱們不是不鼓勵開發人員主動幫助測試,而是咱們是要避免致使職責不清的越界行爲。咱們在測試經驗交流的過程當中,總會與其餘同伴有不一樣的看法。在測試的過程當中,能夠選定一個典型用戶(Persona),而後按照典型人物的思路和看問題的角度,把整個系統的各項功能都經歷一遍。若是有什麼你以爲典型用戶不滿意的,那就能夠考慮開一個Bug。我有時知道這個功能的設計想法,可是說真的,在測試的時候不必替別人考慮太多,要把本身當成用戶,而不是設計者,這樣咱們才能更多地爲用戶着想,作出更好的做品。工具

     在軟件項目中,有這樣一個拐點存在——在這一點以前,新的Bug產生的數量大於Bug解決的數量;在這一點以後,Bug的解決數量大於新的Bug產生的數量。這樣Bug的曲線就向下移動。 這是在大型複雜項目中,測試人員和開發人員所有經過一個系統管理bug纔會出現的現象。咱們不能等待拐點的到來,對於咱們這樣的日期驅動型的小項目,拐點必須在發佈日以前的若干時間發生,若是咱們的Bug數量仍是繼續向上攀升,則沒法保證之後曲線會像懸崖同樣掉下來。學習

      問題:咱們應該如何讓這個拐點發生?測試

第14章  質量保證idea

      •  在初始階段(新項目,團隊進入一個新領域,人員剛進入一個項目),每一個團隊成員都要儘可能打通各個環節,多負責,把全部事情都搞懂,培養通才。spa

     •  當項目/產業發展到必定階段(進入陣地戰的時候),要大力提倡分工合做,培養專才。同時,要把好的工具和流程集成起來,從每日構建,到基本功能的自動化,都要儘快實現。設計

     •  把本身項目的架構和流程作好,讓全部人都能比較容易地進行QA工做,這樣,團隊的「軟件工程質量」纔會有提升。htm

     •  培養「你們都要作QA,專人負責量化的Test,有條件多作測試自動化」的文化。

     •  要明白本身項目的特色,避免照搬別人的作法。不要據說某某偉大的項目的開發/測試比例是多少,所以就哭着喊着也要一樣的比例。

     •  若是一個團隊是認真嚴肅地作軟件,那他們必定要考慮如何保證程序的質量/軟件工程的質量,以及達到這些質量,須要多少成本。

     問題:分工以後,每人負責一小塊東西,怎麼才能體現出我的的獨特而巨大的價值呢?

第15章  穩定和發佈階段

     兩個學生項目的例子,推斷出這些團隊的血型:

     STG遊戲的跳票(爲了完美,推遲了7天,可是7天以後也沒有發佈……)

     英語學習軟件(說了「明早發佈」,可是明早一直沒到)

     咱們在最後穩定階段不一樣的團隊每每會有如下兩種不一樣的作法:

     ♠  根據事情的輕重緩急,安排大部分事情在下一個版本作。正由於咱們對項目、團隊、商業模式有信心,纔會把不少事情安排在之後的版本中。

     ♣  拼一下,把全部事情搞定,後果是你們都累得夠嗆,而後人也走了,沒有人有興趣作下一個版本。

     問題:爲何在項目的最開始的時候團隊們不拼一下,把全部事情在初版搞定?這樣在最後的穩定階段就有更多的詩句衝刺了。

第16章  IT行業的創新

     In the summer of 2003 while still working for my first startup I've got a "big idea": social news reader. Imagine something like Google Reader with Priority Inbox and social recommendations.  I was thinking about it day and night. I couldn't sleep and was working through it in my head while lying awake in bed...

    問題:在創業的過程當中,市面上和你的朋友圈同時流傳更cool 的想法和創新,是應該堅持己見仍是隨波逐流?

第17章  人,績效和職業道德

      用專業知識教育人是不夠的。經過專業教育,他能夠成爲一種有用的機器,可是不能成爲一個和諧發展的人。要使學生對價值有所理解而且產生熱烈的感情,那是最基本的。他必須得到對美和道德上的善惡鮮明的辨別力。不然,他 —— 連同他的專業知識 —— 就更像一隻受過很好訓練的狗,而不像一個和諧發展的人。爲了得到對別人和對集體的適當關係,他必須學習去了解人們的動機、他們的幻想和他們的疾苦。

 

    ---- 愛因斯坦

 

     筆者在這一章中用了三個角色——豬、雞和鸚鵡來講明瞭現代軟件工程開發團隊中的三種典型例子——全身投入參與圍觀。在與人交往的過程當中,我發現仍是有不少同窗只是關注「自我」和「當下」,不善於跟別人合做,也不會估計別人會怎麼想,或者估計「咱們的團隊未來會發生什麼,我要如何應對」。形成這種現象的一部分緣由是,很多同窗從小就被灌輸「搞好本身的學習就能夠了」,「把眼下的考試考好,之後就行了」,另外一部分緣由是,同窗們歷來沒有練習如何與別人合做,估計別人會想什麼,估計團隊之後會發生什麼。科學家認爲,人類有別於其餘動物的最大特色是人類大腦裏有發達的部分在處理「別人在作什麼」和「將來會發生什麼」(Interpersonal Awareness & Social Awareness)這些事情。能擺脫[自我/當下]而考慮到[別人/未來],從而主動爲羣體和未來行動,這是人和其餘動物不一樣的地方。在成功的大型企業中,人際交流能力和人際覺察(Interpersonal  competence, and Interpersonal Awareness)是員工素質培訓的一個重要部分,它包括如何與別人創建平等而融洽的合做關係,如何處理矛盾與衝突,如何影響同事,如何給別人的工做作評價,如何能瞭解別人表面行動下的言外之意、隱含的動機等等。在前文提到的「黃金點遊戲」這個場景中,一位參賽者須要瞭解一屋子的同窗大概的思路 ,如何影響他們,本身才能增長獲勝的但願。若是每一個人獨自埋頭推導公式,而無論其餘人在想什麼,是得不出獲勝的數字的。

 

     問題:軟件工程師在企業中是勞動密集型的工人麼,仍是有首創性的專業人士? 他們對軟件企業的成敗負多大的責任?

相關文章
相關標籤/搜索