1. 程式人生 > >敏捷開發與個人管理

敏捷開發與個人管理

1、概論

        敏捷開發,其實道理很簡單,但是太多的事情是道理簡單卻做不到。

        敏捷開發(Agile)的核心是去中心化,扁平化結構,擁抱變化,習慣不確定性,當然,還有最重要的迭代。


2、三種角色

        在上面這張圖中可以看到,在Scrum中有三種角色,產品負責人(scrum owner)、Scrum master和menbers。

        產品負責人在某種意義上,就是一個足球教練。在敏捷開發的思想中,產品負責人做出的干預越少越好,當然,在大方向錯誤的時候,需要跳出來cancel一些事情,一面團隊最後變得像癌細胞一樣不可控制。

         而scrum master就是一個team的leader,但是這個leader其實並沒有那麼多的權利,更多的是和上層溝通,組織team的重要會議,如此而已。

3、Backlog

        在一個Scrum專案中,首先是制定product backlog,這就像是一個長期目標,顆粒度比較大。每一個Sprint的開始從Product backlog中選擇需要在當期Sprint中完成的任務,然後分解為Sprint backlog,這次分解就是一個顆粒度的細化。

        任務的劃分就是這麼兩級,很靈活,而且隨時可控。

4、Scrum的會議

        關於Scrum的會議也是有特色。

        每個Sprint開始必然需要開會,目標是計劃這一次的Sprint,每一個menbers選擇自己負責的backlog;每天需要固定時間開站立會,目的是大家交流工作,提出問題,瞭解全組的當前工作情況;然後就是評審會議,這個會議的目的是展示本次Sprint的成果,只展示成果,而不展現技術細節;最後是回顧會議,這是一個對過去總結,對當前認識,對未來設想的回憶。某種意義上們十分重要。

        每個會議的目的單一,目標明確。

5、Tools&thoughts

        當然,還有跟產品Backlog有關的會議,這個會議則一般是由Scrum Master和上一層的人員參加。
        其實所謂敏捷開發,所謂Scrum說白了就是簡化了、平面化、去中心化了的IT專案管理。
        在整個管理的過程中,還有幾個重要的特點以及一些工具、方法。
a.在專案開始前,大家都要先溝通好溝通的方法,也就是統一資訊傳達的渠道。
b.如何評判story point:story point就是工作量,通常單位是“人天”,就是需要多少個一人一天的工作量。
c.買土豆的兩個員工的思考:這個故事,大家都聽過,積極的員工可以問好價格,把出售土豆的人帶回來;而另外一個則只會告訴老闆,市場上有土豆。這個故事本意是要告訴我們,工作中應該多一些積極性,但是,從agile的角度來看,這個積極的員工做的有點多了,因為他付出了成本(時間,公司信譽),如果目標改變了,這些都將是浪費。

d.團隊自我管理的同時要衡量上層領導的感受,給老闆一個scrum的賬號,讓他能看到所有menber當前的工作,讓他有縱觀全域性的感覺,或者說錯覺。

e.高度視覺化:Scrum的一個特點就是高度視覺化,也就是上面說的透明。團隊中的每一個人都可以看到其他人的工作狀況,於是會趕進度,以免自己拖後腿。

f.planning poker:這是一個評價spriint中backlog所需花費時間的方法。每個人都把認為需要的時間寫在卡片上,然後出牌。然後選出最大的和最小的,分別說明理由。接下來繼續出牌,直到大家的時間評估都大致相同。這樣的方法可以避免群體決策的錯誤和個體決策的偏見。

g.燃盡圖陷阱:燃盡圖在某種意義上有傳統管理方式的KPI的作用,明白KPI陷阱的想必對燃盡圖陷阱也是可以理解。工作、生活中很多事情都是不能看單一指標的。指標如果比較單一,那麼無論多麼科學,都只能作為參考,因為可以造假,無論有意無意。
6、個人管理的Scrum理念
        關於Scrum大致就是這麼多的感悟和理解。其實Agile這一套完全可以用於自我管理。

        譬如粗顆粒任務和細顆粒任務並行的方式,就是長期目標和短期目標並行的自我管理方式。我們把自己想做的事情羅列出來,成為一張長期目標的backlog,然後在每一個Sprint,可以是一週為單位。

        在一週開始,選擇最迫切、重要的事情,來分割。然後在一個Sprint結束之後,反思自己任務完成的情況。

        同時,把自己的任務視覺化,雖然只有自己看到,但是視覺化的視覺效果本來就是一種監督。