1. 程式人生 > >Chapter 6 敏捷流程

Chapter 6 敏捷流程

實施 cor 產品 如何 優勢 要求 軟件開發 價值觀 spa

Chapter 6 敏捷流程

1.敏捷的定義:

敏捷是一系列價值觀和方法論的集合。

2.敏捷開發的原則:

盡早並持續地交付有價值的軟件以滿足顧客的需求。

②敏捷流程歡迎需求的變化,並利用這種變化來提高用戶的競爭優勢。

③經常發布可用的軟件,發布間隔可用從幾周到幾個月,能短則短。

④業務人員和開發人員在項目開發過程中應該每天共同工作

⑤以有進取心的人為項目核心,充分支持信任他們。

⑥無論團隊內外,面對面的交流始終是最有效的溝通方式。

可用的軟件是衡量項目進展的主要指標。

⑧敏捷流程應能保持可持續的發展。領導、團隊和用戶應該能按照目前的步調持續下去。

⑨只有不斷關註技術和設計,才能越來越敏捷。

保持簡明——盡可能簡化工作量的技藝——極為重要。

?只有能自我管理的團隊才能創造優秀的架構、需求和設計。

?時時總結如何提高團隊效率,並付諸行動。

3.敏捷的步驟:

①找出完成產品需要做的事情——Product Backlog。

Backlog:“積壓的工作”、“待解決的問題”、“產品訂單”等。

產品負責人領導大家對於這個Backlog中的條目進行分析、細化、理清相互關系、估計工作量等工作,單位為“天”。

②決定當前的沖刺(Sprint)需要解決的事情——Sprint Backlog。

產品的任務唄進一步細化

了,且單位為“小時”。

訂單上的任務是團隊成員根據自己的情況來認領

團隊成員能主導任務的估計和分配,他們的能動性得到較大的發揮。

③沖刺(Spring)。

外部人士不能直接打擾團隊成員。

較好的平衡了“交流”和“集中註意力”的矛盾。

沖刺期間,團隊通過每日例會來進行面對面的交流,大多都是站著開的因此又稱為“每日立會”,強迫每個人向同伴報告進度,迫使大家把問題擺在明面上。

我昨天做了啥?

我今天要做啥?

我碰到了哪些問題?

用簡明的圖表展現整個項目的進度。

eg1.燃盡圖

(想象我們把一堆Backlog的木頭給燒光)。

2.看板圖(把一堆任務從最初的“待定”推動到“工作中”等各個狀態,直至“完成”)。

沖刺階段是時間驅使的,時間一到就結束,有效的切斷了各種延期想法的後路,很高明。

④得到軟件增量版本,發布給用戶。在此基礎上進一步計劃增量的新功能和改進。

4.敏捷流程的問題和解法:

①怎樣在計劃(Backlog)中體現依賴關系?

②把一個任務從產品層級的描述逐步細化到技術實現層面,是很需要技術能力和交流能力的。

③每日立會不能流於形式,應該定義好任務究竟是什麽。並在每個任務中記錄我們完成這個任務還需要多少時間。

④程序員在寫完功能後,還有的一些比較艱難和底層的長期任務。

⑤測試人員在一個沖刺中怎麽工作呢?

⑥在得到一個增量的軟件發布,但是誰來驗證這個增量是否滿足了事先的計劃?如果程序猿們在沖刺的過程中發現了新問題,要改進原來的計劃,是好事還是壞事?

5.敏捷的團隊:

敏捷對團隊的要求:

自主管理:

自己挑選任務,完成後還要總結不足,提出改進,並且自己要實施這些改進。

自我組織:

每個人要聯合起來對項目負責,有人工作落後了還要幫助他改進,項目缺少某類資源還要自己頂上去。

多功能型:

每個人都要全面的負責就是啥都會一點。

6.敏捷總結:

敏捷是一股思潮,或者說是一種價值觀,它涵蓋了好幾種軟件開發的方法論;這些方法論又是建立在許多行之有效的作家實踐方法之上的。

敏捷不是萬能的,敏捷的方法能幫助你更早的誰知道你是否能如期完成任務。

敏捷的方法(叠代的方式)能幫你盡快讓用戶看到項目的部分價值。

Chapter 6 敏捷流程