Chapter 6 敏捷流程
Chapter 6 敏捷流程
1.敏捷的定義:
敏捷是一系列價值觀和方法論的集合。
2.敏捷開發的原則:
①盡早並持續地交付有價值的軟件以滿足顧客的需求。
②敏捷流程歡迎需求的變化,並利用這種變化來提高用戶的競爭優勢。
③經常發布可用的軟件,發布間隔可用從幾周到幾個月,能短則短。
④業務人員和開發人員在項目開發過程中應該每天共同工作。
⑤以有進取心的人為項目核心,充分支持信任他們。
⑥無論團隊內外,面對面的交流始終是最有效的溝通方式。
⑦可用的軟件是衡量項目進展的主要指標。
⑧敏捷流程應能保持可持續的發展。領導、團隊和用戶應該能按照目前的步調持續下去。
⑨只有不斷關註技術和設計,才能越來越敏捷。
⑩保持簡明——盡可能簡化工作量的技藝——極為重要。
?只有能自我管理的團隊才能創造優秀的架構、需求和設計。
?時時總結如何提高團隊效率,並付諸行動。
3.敏捷的步驟:
①找出完成產品需要做的事情——Product Backlog。
Backlog:“積壓的工作”、“待解決的問題”、“產品訂單”等。
產品負責人領導大家對於這個Backlog中的條目進行分析、細化、理清相互關系、估計工作量等工作,單位為“天”。
②決定當前的沖刺(Sprint)需要解決的事情——Sprint Backlog。
產品的任務唄進一步細化
訂單上的任務是團隊成員根據自己的情況來認領。
團隊成員能主導任務的估計和分配,他們的能動性得到較大的發揮。
③沖刺(Spring)。
外部人士不能直接打擾團隊成員。
較好的平衡了“交流”和“集中註意力”的矛盾。
沖刺期間,團隊通過每日例會來進行面對面的交流,大多都是站著開的因此又稱為“每日立會”,強迫每個人向同伴報告進度,迫使大家把問題擺在明面上。
我昨天做了啥?
我今天要做啥?
我碰到了哪些問題?
用簡明的圖表展現整個項目的進度。
eg1.燃盡圖
2.看板圖(把一堆任務從最初的“待定”推動到“工作中”等各個狀態,直至“完成”)。
沖刺階段是時間驅使的,時間一到就結束,有效的切斷了各種延期想法的後路,很高明。
④得到軟件增量版本,發布給用戶。在此基礎上進一步計劃增量的新功能和改進。
4.敏捷流程的問題和解法:
①怎樣在計劃(Backlog)中體現依賴關系?
②把一個任務從產品層級的描述逐步細化到技術實現層面,是很需要技術能力和交流能力的。
③每日立會不能流於形式,應該定義好任務究竟是什麽。並在每個任務中記錄我們完成這個任務還需要多少時間。
④程序員在寫完功能後,還有的一些比較艱難和底層的長期任務。
⑤測試人員在一個沖刺中怎麽工作呢?
⑥在得到一個增量的軟件發布,但是誰來驗證這個增量是否滿足了事先的計劃?如果程序猿們在沖刺的過程中發現了新問題,要改進原來的計劃,是好事還是壞事?
5.敏捷的團隊:
敏捷對團隊的要求:
①自主管理:
自己挑選任務,完成後還要總結不足,提出改進,並且自己要實施這些改進。
②自我組織:
每個人要聯合起來對項目負責,有人工作落後了還要幫助他改進,項目缺少某類資源還要自己頂上去。
③多功能型:
每個人都要全面的負責就是啥都會一點。
6.敏捷總結:
敏捷是一股思潮,或者說是一種價值觀,它涵蓋了好幾種軟件開發的方法論;這些方法論又是建立在許多行之有效的作家實踐方法之上的。
敏捷不是萬能的,敏捷的方法能幫助你更早的誰知道你是否能如期完成任務。
敏捷的方法(叠代的方式)能幫你盡快讓用戶看到項目的部分價值。
Chapter 6 敏捷流程