Posted on 2009-07-11 17:37
mingj 閱讀(3787)
評論(0) 編輯 收藏 所屬分類:
agile 敏捷 、
PM 項目管理
在日常生活中,有各種各樣的法律規則和道德準則來約束、指導行為。比如在初次的商業合作中,雙方都會選擇制定一份詳盡的合約來規約雙方,包括雙方擁有的具體權利、以及單方出錯時對方享有的權利等。軟件開發,在商業上面也必然會有詳盡的合約,處理的是兩個組織之間的利害關系。但是,軟件開發同時作為緊密involve商業客戶與開發團隊的活動,正如Alistair Cockburn把它比喻稱為game——由客戶、管理層和開發人員共同play的game,其中也需要由參與play game的各方利害人來共同制定規則,讓大家都能玩得開心、盡興,甚至長久。這樣,圍繞著多贏長贏的出發點來play game,就同樣需要這樣一份“權利法案”,對開發過程中的三方利益利害人的權利做出基本的原則上的規定。在敏捷軟件開發方法中,特別是極限編程中,就存在這樣一份“權利法案”。
其實,我一直不知道原來極限編程里面還存在這樣一個“權利法案”,問一些朋友,也有不清楚的。正巧,在翻譯《ThoughtWorks Anthology》中的“What is an Iteration Manager Anyway?”一章時,原文寫到:
the IM(注:Iteration Manager) must facilitate, enforce, and defend the team member's rights. For many agile teams, these rights come from the developers' Bill of Rights.
多虧一位資深同事透明指出,其中的Bill of Rights就是前面所講極限編程中的“權利法案”,并給出了出處
Extreme Programming 'Bill of Rights'。該文由Steve Hayes發表,對play game的客戶、開發人員和管理層都規定了各自的基本原則,試圖對各方都定義一份清楚的職責和權利范圍,減少各方因為認知不同造成的混亂。
Customer rights
- The customer has the right to plan on a large scale with costs and options.
- The customer has the right to set development priorities weekly.
- The customer has the right to see progress in the form of a working system at the end of the first week, and to see a little more functionality every week thereafter.
- The customer has the right to updates of the schedule, good or bad, as soon as the information is available.
- The customer has the right to change his/her mind without paying exorbitant costs.
Programmer rights
- The programmer has the right to estimate work and have those estimates respected by the rest of the team.
- The programmer has the right to honestly report progress.
- The programmer has the right to produce high-quality work at all times.
- The programmer has the right to know what is most important to work on next.
- The programmer has the right to ask business-oriented questions whenever they arise.
Manager rights
- The manager has the right to an overall estimate of costs and results, recognizing that reality will be different.
- The manager has the right to move people between projects without paying exorbitant costs.
- The manager has the right to monthly updates of progress, and to help the customer set overall priorities.
- The manager has the right to cancel the project and be left with a working system reflecting the investment to date.
從內容來看,這份法案給客戶、開發人員(這里的開發人員包括項目團隊中主要工作是與軟件開發相關的各種角色,比如BA/DEV/QA)和管理層提出了很高的要求,但也在一定程度上讓各方認清自己享有的權利。各方都有自己的權利,也就是在play game時可以行使的權力,讓game的規則盡可能擺出在桌面上面,減少對規則的誤解。但是,在具體的game中,各方畢竟不是完全對等的,如何避免對權力的誤用,使各方保持一個清晰的遠景?
這些天讀Scott Berkun的《The Art of Project Management》,其中提到權力的來源和掙得頗有意思。撥去籠罩在“權力”一詞上面的褒貶,Random House College Dictionary里對“權力”的解釋是:
權力(power,名詞):做事或行動的能力,進行或完成事情的能力。
Scott指出權力通常分為授予型和掙得型,授予型來自于階級體制或者職銜,而掙得型則必須由效能和行動耕耘而得:“權力在團隊中不斷流動、改變方向,在不同時刻對不同人會有輔助或阻礙。因為權力在使用前縱使晦暗難明,誰有什么權力,很容易搞混”。Scott把權力誤用定義為“只要無法為項目及參與項目的人提供利益,任何行動都是權力誤用”,并指出“因為權力來源是自然的,而使用權力以影響和推動決策則是團隊工作的副產品,這些事情本身并不邪惡”。如何防止權力誤用?Scott也指出“最佳方式就是大量依賴項目遠景所定義的目標,借此推動權力的應用。”