5.2 軟體團隊的模式
主治醫師模式、明星模式、社群模式、業餘劇團模式、秘密團隊、**團隊、交響樂團模式、爵士樂模式、功能團隊模式、官僚模式
5.3 開發流程
①寫了再改模式
②瀑布模型(wate***ll model) 是乙個專案開發架構,開發過程是通過設計一系列階段順序展開的,從系統需求分析開始直到產品發布和維護,每個階段都會產生迴圈反饋,因此,如果有資訊未被覆蓋或者發現了問題,那麼最好 「返回」上乙個階段並進行適當的修改,專案開發程序從乙個階段「流動」到下乙個階段,這也是瀑布模型名稱的由來。
瀑布模型的適用範圍:產品的定義非常穩定但正確性非常重要、產品模組之間的介面能很好地定性定義和驗證、使用的技術很成熟、子團隊不能做到頻繁的交流。
③瀑布模型的變形:生魚片模型(各個相鄰模組像生魚片那樣部分重疊)以及大瀑布帶著小瀑布(各個子系統統一到最後進行系統測試)
5.4 統一流程rup
統一流程rational unified process,團隊的各種成員在乙個複雜的軟體專案中的不同階段做不同的事。這些不同型別的工作在rup中叫做規程或者工作流。簡介:
業務建模、需求、分析和設計、實現、測試、部署、配置和變更管理、專案管理。
分為四個階段:初始階段(達到生命週期目標里程碑)、細化階段(達到生命週期結構里程碑)、構造階段(達到初始功能里程碑)、交付階段(達到產品發布里程碑)
6.1 敏捷的流程
①敏捷開發原則:
(1)盡早並持續地交付有價值的軟體以滿足顧客需求
(2)敏捷流程歡迎需求的變化,並利用這些變化來提高使用者的競爭優勢
(3)經常發布可用的軟體,發布間隔可以從幾周到幾個月,能短則短
(4)業務人員和開發人員在專案開發過程中應該每天共同工作
(5)以有進取心的人為專案核心,充分支援信任他們
(6)無論團隊內外,面對面的交流始終是最有效的溝通方式
(7)可用的軟體是衡量專案進展的主要指標
(8)敏捷流程應能保持可持續的發展。領導、團隊和使用者應該能按照目前的步調持續合作下去
(9)只有不斷關注技術和設計,才能越來越敏捷
(10)保持簡明——盡可能簡化工作量的技藝
(11)只有能自我管理的團隊才能創造優秀的架構、需求和設計
(12)時時總結如何提高團隊效率並付諸行動
②敏捷流程概述:找出完成產品需要做的事情→決定當前的衝刺(sprint)需要解決的事情→衝刺(衝刺期間每天開每日例會)→得到軟體的乙個增量版本並發布
6.3 敏捷的團隊
自主管理:自己挑選任務、自己提出改進並實施改進
自我組織:每個人聯合起來對專案負責
多功能型:每個人都全面負責,自己搞定規格說明書,和別人溝通,自己搞定測試
6.4 敏捷總結
在迭代開始時,團隊審視擺在他們面前的任務,選擇他們認為可以在迭代期間完成的那些任務(plan)。然後團隊獨立地盡最大努力完成這些任務(do)。在迭代結束時,團隊給利益關係人展示成果(check),並對開發流程進行調整(act/adjust)。
這裡有一些實踐者的經驗教訓:
(1)敏捷宣言表明的是一些優先順序,不必當作聖旨或者教條來爭論。
(2)scrum master不是乙個官,而是乙個沒有行政權力的溝通者,就像微軟的pm那樣。他/她同時還要在團隊中做具體的工作。直接把原來的「經理」變成scrum master,大多行不通。
(3)一些專案需要很多暗箱操作和政治角力才能搞定,scrum會把這些矛盾都擺到明處。這有好處,也有風險。
(4)在複雜的專案裡,要讓一線團隊成員做決定。
(5)創業公司的團隊其實經常是執行在scrum 的模式中(只不過大家太忙,沒工夫論證自己到底有多麼scrum)。
(6)在scrum計畫階段的估計不是乙個「合同」,領導們不要把它當成乙個合同。估計總是不准的。堅持短期的sprint,這樣即使不准的估計也不會有大的損害。
(7)不要和管理層談「流程」,他們只關心「結果」。
(8)在大型團隊、跨地區的團隊,或者複雜專案中,scrum並沒有非常完美的答案,scrum的創始人也承認這一點.
快速閱讀《構建之法》 構建之法閱讀筆記01
自己從3月4日開始讀 構建之法 在粗讀一遍後,自己產生如下疑問 1.風格真的很重要嗎?總覺得清晰易讀即可 2.編寫軟體時,是程式簡潔高效但不易讀好?還是程式冗餘效率低下但是方便別人閱讀易維護好?3.使用者體驗主要體現在哪些方面?介面美觀,反映速度快,功能齊全足夠了嗎?4.本書只說了團隊模式,並未對如...
《構建之法》閱讀筆記
第五章的內容是團隊的話題。團隊一直是乙個不可或缺的話題,球場上,網遊中都有著若干個團隊。個人離開團隊無法健康成長,團隊離開個人無法存在。團隊在我們軟體工程中是乙個非常重要的內容。團隊的特點 團隊有一致的集體目標,團隊要一起完成這個目標。乙個團隊的成員不一定要同時工作。團隊成員有各自的分工,互相依賴合...
構建之法閱讀筆記
本週先看了 構建之法 的第一章。這一章介紹的理論和知識點有電腦科學的領域 軟體的特性 軟體工程 軟體工程與電腦科學的關係,還向我們詳細介紹了軟體工程的定義與組成部分。其中有三個推論 程式 資料結構 演算法 軟體 程式 軟體工程 軟體企業 軟體 商業模式 由此可知,程式 演算法 資料結構 是基本功,但...