團隊的特色:程序員
1.團隊有一致的集體目標,團隊要一塊兒完成這個目標。一個團隊的成員不必定要同時工做。編碼
2.團隊成員有各自的分工,互相依賴合做,共同完成任務。設計
軟件團隊的模式:接口
1.主治醫師模式開發
首席程序員「主刀」(負責處理主要模塊的設計和編碼),其餘成員「爲主刀醫師服務」(從各類角度支持他的工做)。原型
2.明星模式產品
主治醫生模式運用到極致,能夠蛻化爲明星模式。社區
3.社區模式ast
社區不少志願者參與,每一個人參與本身感興趣的項目,貢獻力量,大部分人不拿報酬。效率
4.業餘劇團模式
我的在團隊中遵從一箇中央指揮的指導和安排。
5.祕密團隊
軟件團隊進行一些祕密的軟件項目。
6.特工團隊
軟件行業的一些團隊由一些有特殊技能的專業人士組成,負責解決一些棘手而緊迫性的問題。
7.交響樂團模式
傢伙多,門類齊全;各司其職,各自有專門場地,演奏期間沒有聊天、走動等現象;演奏都靠譜,同時看指揮的;演奏的都是練習過屢次的曲目,重在執行。
8.爵士樂模式
不靠譜;沒有現場指揮;人數較少。
9.功能團隊模式
具有不一樣能力的同事們平等協做,共同完成一個功能。
10.官僚模式
幾我的報告給一個小頭目,幾個小頭目報告給中頭目,依次而上。
開發流程
寫了再改模式適用於如下任務:
1.只用一次的程序
2.看過了就扔的原型
3.一些不實用的演示程序
瀑布模型適用於如下狀況:
1.若是產品的定義很是穩定,可是產品的正確性很是重要,須要每一步的驗證
2.產品模塊之間的接口、輸入和輸出能很好地用形式化的方法定義和驗證
3.使用的技術很是成熟,團隊成員都很熟悉這些技術
4.負責各個步驟的子團隊分屬不一樣的機構,或在不一樣的地理位置,不可能作到頻繁的交流
第6章主要是講敏捷流程,敏捷流程是一系列價值觀和方法論的集合。
敏捷流程相較於傳統的軟件模型來講,更加註重我的和交流,軟件的可用性,與客戶的合做和響應變化。
敏捷開發的原則:1.時間儘早;2.響應變化;3.持續更新;4.共同合做;5.有上進心;6.面對面交流;7.有指標;8.可持續;9.關注更新;10.簡化;11.自我管理;12.提升效率。
敏捷流程概述:
1.找出完成產品須要作的事情--Product Backlog。
2.決定當前的衝刺(Sprint)須要解決的事情--Sprint Backlog。
3.衝刺(Sprint)。
4.獲得軟件的一個增量版本、發佈給用戶。而後在此基礎上又進一步計劃增量的新功能和改進。
敏捷對團隊有三個要求:自主管理、自我組織、多功能型。
敏捷流程的經驗教訓
1.敏捷宣言代表的是一些優先級,沒必要看成聖旨或者教條來爭論。
2.Scrum Master不是一個官,而是一個沒有行政權力的溝通者,就像微軟的PM那樣。他/她同時還要在團隊中作具體的工做。直接把原來的「經理」變成Scrum Master,大多行不通。
3.一些項目須要不少暗箱操做和政治角力才能搞定,Scrum會把這些矛盾都擺到明處。這有好處,也有風險。
4.在複雜的項目裏,讓一線團隊成員作決定。
5.創業公司的團隊其實常常是運行在Scrum的模式中(只不過你們太忙,沒工夫論證本身到底有多麼Scrum)
6.在Scrum計劃階段的估計不是一個「合同」,領導們不要把它當成一個合同。估計老是不許的。堅持短時間的Sprint,這樣即便不許的估計也不會有大的損害。
7.不要和管理層談「流程」,他們只關心「結果」。
8.在大型團隊、跨地區的團隊,或者複雜項目中,Scrum並無很是完美的答案,Scrum的創始人也認可這一點。