敏捷開發 - Scrum框架的誤區
在我們童年時期,我們常常從父母、祖父母以及學校老師那裡聽到許多故事。有關於國王和王后、王子和公主、狗和猴子的故事等等,從虛構、戲劇、動作到帶有道德的故事,各種各樣的故事。其中一個著名的故事叫做“酸葡萄”,故事中狐狸一次又一次地跳起來想從樹上吃葡萄,但當它經過多次嘗試都無法夠到那個高度時,它就宣稱那些葡萄是酸的。

您也可以在我們的企業界看到同樣的情況,我們試圖在現有的系統中實施一個流程或框架,例如Scrum框架,但由於努力不足,我們沒有成功,最終宣稱它不適合我們。很多時候,失敗僅僅是因為我們對Scrum的誤解,這阻止了我們以其真正的意義來採用Scrum。
讓我們討論一下圍繞Scrum的一些常見誤解。
誤區 #1 - Scrum非常容易,可以快速採用
我們可能從很多人那裡聽到一個常見的誤解,那就是Scrum只不過是一個兩到四周的衝刺週期,用於開發和測試一些使用者故事,並在較短的衝刺視窗內完成工作。
實際上,這只是對Scrum的部分採用,這是危險的,因為Scrum有一些原則,要獲得實際的好處,我們需要完全採用它。所有Scrum儀式,如衝刺計劃會議、每日站會、衝刺回顧會議等,都有其自身的意義,並且在誠實地按照其規則和規定遵循時,將成為專案成功的決定性因素。
誤區 #2 - 當專案經理可用時,為什麼還需要Scrum Master?
在許多組織中,人們認為Scrum Master就像一個馴獸師,其工作是從團隊中獲取工作。由於這種誤解,他們不願意招聘專門的Scrum Master,而是傾向於讓專案經理承擔雙重角色。
但根據Scrum,專職的Scrum Master對於專案的成功是必不可少的。Scrum Master不僅維護流程,還教育團隊瞭解Scrum的價值觀和實踐。他或她充當促進者,確保所有Scrum流程和儀式都在進行,並且團隊正在誠實地實踐它們。
實際上,這種誤解違背了Scrum的關鍵價值觀,即Scrum團隊是自我組織的,瞭解他們的責任和所有權,能夠做出決策並對結果負責。因此,如果專案經理承擔Scrum Master的角色並代表團隊做出決策,那麼這與Scrum原則相矛盾。
Scrum Master沒有任何權力,因此他/她不能做出任何決定。他們的工作是保護團隊免受任何外部干擾,促進團隊合作,並確保專案進展的可見性。
誤區 #3 - 當我們遵循Scrum時,為什麼需要文件?
許多人認為不需要任何文件。這純粹是一種誤解;您仍然可以以使用者故事、設計和架構文件以及其他支援文件的形式擁有文件。
產品待辦事項本身就是一個活文件,其中包含使用者故事、功能和非功能任務、約束和線框等。因此,如果文件不當且產品待辦事項管理不善,可能會給您的專案帶來麻煩。
誤區 #4 - 難以管理,因為沒有具體的專案計劃和範圍
對於之前在傳統瀑布模型中工作的專案經理來說,這更為常見。在傳統模型中,我們在初始階段有一個完整的計劃,並且幾乎凍結了範圍(儘管在後期該範圍經常發生變化),這使專案經理能夠預測釋出日期。因此,在沒有任務驅動的方法的情況下,他們感到不安是顯而易見的。
而在Scrum中,我們有產品待辦事項,它不斷新增新的需求,並且這些專案的優先順序不斷變化以適應不斷變化的業務需求。當時重要的功能首先進行開發,並且在每個衝刺結束時,我們都有可靠的工作成果交付給客戶。因此,每個衝刺都為我們提供了專案的實際進展,使專案更具可見性和可預測性。
誤區 #5 - Scrum僅適用於軟體公司
這也是一個普遍的看法,即Scrum框架只為軟體公司設計,其他行業無法採用它。這純粹是一種誤解。
實際上,Scrum可以應用於任何業務,無論是軟體、BPO、服務、教育還是基礎設施。由於每個企業都是動態的,因此採用Scrum框架可以成為在快節奏的商業環境中生存的更好解決方案。
誤區 #6 - 由於快速迭代,對程式碼質量的關注較少
由於衝刺持續時間較短,許多人認為開發人員會降低程式碼質量。儘管這是一種誤解,但在一些組織中確實會發生這種情況,開發人員使用捷徑來快速完成工作,導致程式碼質量低下。
實際上,Scrum是一個用於管理專案的框架,因此,為了檢查編碼標準,可以包含其他最佳實踐,例如自動程式碼質量檢查。
誤區 #7 - Scrum有很多會議,佔用生產時間
這也是一種誤解,實際上Scrum有四個具有預定義時間限制的會議,開始時的衝刺計劃會議、每日站會、衝刺評審會議和衝刺結束時的衝刺回顧會議。只有每日站會每天舉行,但它將持續時間限制在僅 15 分鐘。
關於Scrum的這些誤解不會影響Scrum本身,但會導致專案失敗以及參與的客戶和公司的損失。因此,最好消除誤解並採用真正的Scrum。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP