1. 程式人生 > >《構建之法》讀書筆記w5

《構建之法》讀書筆記w5

eight 環境 臨時 問題 收集數據 的人 承諾 社區 人的

從第4章中所描述的“雙人合作”中的一個2個組合進化成一群人的團隊,本第5章則介紹不同軟件團隊可能擁有的工作模式和常用的開發流程。

團隊並不會是一群烏合之眾臨時聚集所組成的,一個標準團隊有一致的團體目標,團隊要一起完成這目標。而且一個團隊的成員不一定要同時工作,成員間有各自的分工,互相依賴合作,共同完成任務。

軟件團隊有各種形式,適用於不同的人員和需求。有不成熟的“一窩蜂模式”,一人主管的“主治醫師模式”和“明星模式”,誌願合作的“社區模式”和“業余劇團模式”,團隊自由度高且沒有幹擾的“秘密團隊”,專門解決棘手時間的“特工團隊”,軟件處於穩定成長階段且大多軟件公司采用的“交響樂團模式”(門類齊全,各司其職,聽從指揮,重在執行),強調個性化,有創意的回應的“爵士樂模式”(與“交響樂團模式”對立)。還有,很多軟件團體最後往往都變為“功能團隊模式”,就是具備不同能力的同事平等協助,共同完成一個功能。項目完成後又重新組織,去完成下一個功能。最後,一個“官僚模式”使得團隊有了組織上領導和被領導的關系,使得合作變難。

除了團隊結構模式,一個軟件團隊的開發工作流程也各有不同,各有好壞。其中,最出名的就是在軟件剛興起時從別的成熟行業(硬件設計、建築工程)借鑒改成的“瀑布模型”。其遵循“前期程序設計、分析、程序設計、編碼、測試、使用”這個基本模式步驟。因為用戶的及早介入、討論、復審都是很重要的,應該讓顧客正式的、深入的、持續的參與到項目中來,但瀑布模式要完成後才能發現一些問題 ,使回去修改會很困難。使用瀑布模式要對軟件定義明確,每一步都要驗證,技術成熟且成員熟悉流程和技術。

統一流程(RUP),想瀑布模式一樣重計劃,重事先設計、重文檔表達,特點是把軟件開發的各個階段整合在一個統一的框架裏。RUP的規程(工作流)分為業務建模、需求、分析和設計、實現、測試、部署、配置和變更管理、項目管理、環境。

RUP的流程分為初試階段、細化階段、構造階段和交付階段。(叠代開發圖P99)還有漸漸開發的流程,MVP(最小可行產品)和MBP(最強最美產品)。都是為了從“開發、發布、聽取反饋、根據反饋做改進”循環中走出來。

團隊軟件工程的原則是:

1.使用妥善定義的流程,流程中的每一步都是可以重復,可以衡量結果的。

2.團隊的各個成員對團隊的目標、角色、產品都有統一的理解。

3.盡量使用成熟的技術和做法。

4.盡量多收集數據,並用數據為團隊做理性決定。

5.制定切合實際的計劃和承諾,團隊計劃要由負責具體執行的角色來制定

6.增加團隊的自我管理能力

7.專註於提高質量,爭取在軟件開發早期發現問題,做全面且細致的設計工作。

《構建之法》讀書筆記w5