敏捷中不能說的祕密

                                                                                                                                                                                                       ---Scrum淺析

1.     Team

          Scrum是跨職能團隊以迭代、增量的方式開發產品或項目的一種開發框架,區別於其他開發框架最突出的方面應該體現在“跨職能團隊”這幾個關鍵字。由此,Team這個單詞可謂是Scrum中的萬能鑰匙,幾乎可以解決一切難題。

        在Scrum中有三個角色:產品負責人、團隊和ScrumMaster,他們在一起被稱爲Scrum團隊。

        團隊中的每個成員都只是團隊成員。請注意在採用Scrum的團體中沒有任何固定的專業頭銜。不會有系統分析師,沒有數據庫管理員,沒有架構師,沒有團隊組長,沒有開發人員,也沒有測試人員,他們在每個Sprint中以任何恰當的方式一起工作來達到他們爲自己設置的目標。

       這種團隊不只是跨職能的,而且還會表現出多重學習的特點。每個人當然都有特長,但仍繼續學習其他專長。每個人都會有主要的、次要的甚至是第三位的技能,並準備好到工作所需要的地方去。每個人都可能承擔自己並不熟悉領域的任務來幫助完成一個事項。例如,一個主要技能是交互設計的人可能以自動化測試爲次要技能。以技術文檔寫作爲主要技能的人可能同時幫助做分析和編程。

       Scrum難免會與傳統的職能團隊衝突,因爲他的團隊是跨職能的。既然我們目標是相同的,那麼我們就應該站在統一戰線上一起前進。    

       另外,Scrum團隊提倡是一個自組織的團隊,團隊成員要羣策羣力,無領導模式下協作工作,工作激情和效率會大大提升。

 

2.    透明(可視化)

       在Scrum中提出了3個工件:產品待辦列表(PBI),迭代待辦列表(SBI),燃燒圖/燃盡圖。比起傳統的需求文檔,產品待辦列表會對業務期望進行分解,迭代待辦列表更是精細到開發可執行程度,同時用戶故事鼓勵把用戶真實期望與緊急程度暴漏給開發實施人員,這對實現用戶最大價值和向用戶快速交付產品都起到決定性作用。燃燒圖/燃盡圖是對進度及風險監控的更加可視化的工具。“表”與“圖”無疑大大增加了可視化程度。

看板更不是Scrum中的特有產物,上到科研實驗室,下到生產車間,都會使用看板作爲進度及風險監控工具。實踐證明,看板是生產過程中目標管理、進度監控、風險預知的最優秀的可視化工具。所以看板是一定要時刻置於公衆面前隨時起到提醒作用的,他的作用可決不僅僅是站會地點的標誌。

總的來說,Scrum主張將生產流程的每個環節的透明、可視化程度的做到最佳;當然,如果你有一個新的可視化的好點子,完全可以大膽的應用到敏捷實踐工作中來。

 

3.     PDCA循環

        引入一個管理學的模型叫“PDCA循環(戴明環)”。PDCA的含義如下:PPLAN-計劃;DDo-執行;CCheck-反饋;AAdjust-調整。PDCA循環就是先制定計劃,然後按照計劃實施,最後通過檢查和總結來反思從計劃到實施的差距,最後把自己體會放到實施中去。

      縱觀Scrum框架中的流程分佈,都可以歸列到PDCA循環每一步:

       PPLAN):計劃會

       DDo):迭代

       CCheck):站會、評審會

       AAction):反思會

       其中,站會、評審會只是體現了不同頻率的反饋。在Scrum簡章中還存在產品代辦事項列表梳理會,也只是在爲下一個迭代做更充分的計劃而已。

       經常聽到有人抱怨說,敏捷實踐中會議太多,形式主義嚴重。其實不然,只要在遵循PDCA循環的基礎上,開會頻率、會議名稱都是可以自定義的,你想怎麼稱呼他都可以。Scrum5個會議事件只是PDCA循環在整個軟件開發過程中的最佳實踐。

 

4.     GTDGet Things Done

       GTD是英文Getting Things Done的縮寫,是一門無壓力高效的時間管理方法學,其核心思想與Scrum不謀而合,提倡優先完成優先級較高且有價值大的工作,並要做到真正完成。

我們經常發現開發人員常常說一些工作已經完成了,但事實並非如此。即使你有一個很明確的對完成的定義,開發人員也會經常忘掉。我們這些編程的人都不怎麼有耐心,一心想着儘快去做下一個條目。

Daniel Greenfeld的文章《請不要打斷開發人員》有說:“當看到一個程序員冥思苦想的時候,不要過去打擾,甚至在極端的情況下,一句友好的問候都是多餘的。”

當開發人員沒有真正意義上的完成某些開發任務時,後續的再開發將是影響產品產出效率和質量的最大阻礙。工作內容的頻繁切換,大大增加了時間成本,降低產品質量。

所以,在敏捷開發流程中,要盡力規避這些問題。測試前置、嚴格控制每個迭代與迭代中各個環節的出口標準,是尤爲重要的。同時只有產品增量做到真正意義的完成,才能實現擁抱變化,快速交付

 

5.    實幹

       “空談誤國,實幹興邦是當下國家領導集體的治國方針,其應用在軟件開發中同樣適用。  傳統的軟件工程官僚,枯燥,束手束腳,而敏捷卻變得十分活潑,有趣,但更難把握。重點在於,我們能否從兩個世界中取其精華。

 

綜述

        Scrum只是把一些被廣爲認可的方法打包到簡單的開發框架中,並不是那麼脫離羣衆。只要在Team的指導思想下,借用透明(可視化)的工具,做到快速順暢的PDCA循環,掌握GTD等的實踐方法,實幹到底,持續改進,那麼每個團隊都會成爲最佳敏捷團隊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章