1. 程式人生 > >敏捷開發系列之旅 第四站(透明的Crystal水晶方法)

敏捷開發系列之旅 第四站(透明的Crystal水晶方法)

上一站,我們簡單的談了談FDD,瞭解了什麼是特徵驅動開發,以及它核心的整體模型,在我看來,它是一種有效但有一些複雜的敏捷開發方法,對於小團隊來說,實施起來有些困難。然而,今天我們要認識的是一種新的開發過程——Crystal透明水晶方法。

概述

水晶方法,Crystal ,是由 Alistair Cockburn 和 Jim Highsmith 建立的敏捷方法系列,其目的是發展一種提倡“機動性的”方法,包含具有共性的核心元素,每個都含有獨特的角色、過程模式、工作產品和實踐。Crystal 家族實際上是一組經過證明、對不同型別專案非常有效的敏捷過程,它的發明使得敏捷團隊可以根據其專案和環境選擇最合適的 Crystal 家族成員。

與XP的對比

水晶系列與XP一樣,都有以人為中心的理念,但在實踐上有所不同。Alistair 考慮到人們一般很難嚴格遵循一個紀律約束很強的過程,因此,與XP的高度 紀律性不同,Alistair探索了用最少紀律約束而仍能成功的方法,從而在產出 效率與易於運作上達到一種平衡。也就是說,雖然水晶系列不如XP那樣的產出效率,但會有更多的人能夠接受並遵循它。

具體方法

Crystal系列開發方法,分為Crystal Clear,Crystal Yellow, Crystal Orange和Crystal Red分別適用於不同的專案。專案可以按照參加的人員和重要性劃分。 重要性根據專案中的錯誤引發的後果分為:
  • C   :Loss of comfort (某些不舒適)
  • D  :Loss of discretionary money (經濟損失)
  • E   :Loss of Essential Money (嚴重經濟損失)
  • L   :Life Critical (生命危險)
一個專案稱為C6說明參加人員在6人以下,重要性是C級,D20說明人員在6-20人,重要性是D級。 Crystal系列開發方法中,所適用的開發人員數量以及重要等級如下:
  • Crystal Clear適用於 C6,D6專案
  • Crystal Yellow適用於 C20,D20,E20專案
  • Crystal Orange 適用於 C40,D40,E40專案
  • Crystal Red 適用於 C80,D80,E80專案
在這裡,主要是介紹一下Crystal Clear——透明水晶方法。透明水晶方法,適合於一個小團隊來進行敏捷開發,人數在6人以下為宜。

七大體系特徵

  • 經常交付
任何專案,無論大小、敏捷程度,其最重要的一項體系特徵是每過幾個月就向用戶交付已測試的執行程式碼。如果你使用了此體系特徵,你就會發現,“經常交付”的作用還是很讓人吃驚的。 專案主辦者根據團隊的工作進展獲得重要反饋。使用者有機會發現他們原來的需求是否是他們真正想要的,也有機會將觀察結果反饋到開發當中。開發人員打破未決問題的死結,從而實現對重點的持續關注。團隊得以調整開發和配置的過程,並通過完成這些工作鼓舞團隊的士氣。
  • 反思改進
在我們的開發中,時常會出現這樣那樣的問題,技術難題、各種煩心事等等,這會在很大的程度上影響專案的進展。而且,如果其他任務對這項任務有依賴的話,那麼其他的任務也會被推遲,這就很可能會導致專案的失敗。 換句話說,如果,我們能夠經常在迭代會中及時的反思和改進,那麼,這種事情應該是不會發生的,或者說發生了,也能夠很快的找到解決方案去應對它。事實上,從慌亂的日常開發中,抽出一點時間來思考更為行之有效的工作方法就已經足夠了。
  • 滲透式交流
滲透交流就是資訊流向團隊成員的背景聽覺,使得成員就像通過滲透一樣獲取相關資訊。這種交流通常都是通過團隊成員在同一間工作室內工作而實現的。若其中一名成員提出問題,工作室內的其他成員可以選擇關注或不關注的態度,可以加入到這個問題的討論當中來,也可以繼續忙自己的工作。
  • 個人安全
個人安全指的是當您指出困擾您的問題時,您不用擔心受到報復。個人安全非常重要,有了它,團隊可以發現和改正自身的缺點。沒有它,團隊成員們知而不言,缺點則愈發嚴重以致於損害整個團隊。個人安全是邁向信任的第一步。有了信任,團隊協作才能真正的實施,開發效率也就會直線上升的。
  • 焦點
所謂“焦點”,就是確定首先要做什麼,然後安排時間,以平和的心態開展工作。確保團隊成員清楚的瞭解他們自己最重要的任務是什麼,確保他們能夠有充分的時間去完成這些任務。
  • 與專家使用者建立方便的聯絡
與專家使用者持續建立方便的聯絡能夠給團隊提供:對經常交付進行配置以及測試的地方,關於成品質量的快速反饋,關於設計理念的快速反饋,最新的(使用者)需求。
  • 配有自動測試、配置管理和經常整合功能的技術環境
自動測試可以為開發人員在程式碼修改後就可以進行自動測試,並且能夠發現存在的一些bug,以至開發人員能夠及時的進行修改,對於他們來說,節省了時間,提高了效率,而且還不用為煩人的測試而苦惱。 配置管理系統允許人們不同步地對工作進行檢查,可撤消更改,並且可以將某一系統設定儲存後進行新系統的釋出,當新系統出現問題,即可還原原系統的設定。 經常整合可以使得團隊在一天之內對系統進行多次整合。其實,團隊越頻繁地對系統進行整合,他們就能夠越快地發現錯誤,堆積到一起的錯誤也會越少,並使他們產生更新的靈感。 最好的團隊是將將這三大技術結合成“持續測試整合技術”。這樣做他們可以在幾分鐘內發現因整合所產生的錯誤。

推薦策略

儘管透明水晶方法並不要求掌握或者運用某些特定的策略或方法,但倘若在啟動階段能熟識一套有效的方法體系則是件有利的事情。透明水晶推薦的,非常具有意義且廣為現代敏捷開發團隊所採用的策略有:
  • 360度全方位考察
  • 早期勝利
  • 靈活程式框架
  • 增量重建
  • 資訊傳播器