敏捷建模何時是有(沒有)意義的?
何時合適AM運作?
但這不是我的情形...
何時不合適AM運作?
何時敏捷建模是適合你的?
敏捷建模不是萬能的,它并不適合于每一個人、每一種情況。即使是你的條件非常適合于AM,也不能保證它就能良好的運行——你在組織內實施AM時還是有可能犯下錯誤。我的經驗是,在以下條件滿足時,AM極有可能發揮其效力:
軟件開發采用了敏捷方法。AM不是一門完整的方法學,它只是某個軟件開發流程中的一部分應用。要成功應用AM,你所采用的開發流程的觀念必須要與AM的觀念相匹配(譯注:XP與AM匹配,而CMM與AM就不匹配)。否則,你只是在片面的運用AM中的幾項技術,而不是真正的配置了AM。
采用迭代式、遞增式的開發方式。做為AM的兩項實踐,有效的溝通(communication)和反饋(feedback)要求軟件開發采用迭代和漸增的方法。
需求不確定或不穩定。Martin Fowler在他的新方法學中指出,如果你的項目就像是自然探險(大多數項目都如此),那最佳的選擇就是采用敏捷方法來開發軟件。當需求不明或易變時,你就應該采用一種能夠適應這種情況的開發方式。AM擁抱變化,它采用遞增的開發方式,尋求快速的反饋,并且一貫堅持Project Stakeholder的積極參與,這就是AM對付需求變化的法子。使用AM,你就能夠迅速而有效地發覺客戶的需求。
開發軟件是你的主要目標。這是AM的核心原則之一,但對很多項目來說,這并不是他們的目標。例如,有時候一個項目團隊的主要目標是從客戶那里圈錢(在外部采購中時有發生),或是簡單的制定系統規范,因為系統要交付給另一個團隊去實現。更糟的是,一些項目僅僅是出于政治上的考慮,它的目的就是讓別人感到他們正在做這件事,至于要做出來什么東西卻根本沒有考慮。軟件開發的目標應該是生產出滿足客戶需求的有效的軟件系統-如果你的目標不是這樣,AM就不適合你。
你需要有stakeholder的積極支持和參與。Fowler同樣認為,敏捷軟件開發工作要想成功,需要有project stakeholder的積極支持和參與。Project Stakeholder是那些受軟件項目的開發和/或部署潛在的影響的人。包括直接用戶,非直接用戶,經理,高級經理,操作人員,支持人員,測試者,和這個系統有關(整合或交互)的其它系統的開發人員,以及維護人員。AM要想成功,你需要了解你的Project Stakeholder是誰,你還要能夠和Stakeholder保持日常的接觸,Stakeholder能夠及時的為你提供信息、做出決策。此外,還應該要有管理層的大力支持。
開發團隊能夠自我決策。敏捷軟件開發,特別是敏捷建模,對大多數的組織來講都是新生事物。接受敏捷方法對大多數的組織來講都是一件很難的事,因為它對大多數人來說都是一種新的工作方式。想要成功,我的經驗是,不管成功還是失敗,要根據項目團隊的優點,給他們機會。鼓勵他們嘗試新技術,給他們資源(包括時間),讓他們開始學習。應該盡量杜絕玩弄權術的現象,這就意味著組織中的管理層和一些部門要改掉原來的做法。
要有真正的AM斗士。不論何時,接受新的事物總會面臨著挑戰。人們不愿意改變,他們喜歡、他們也習慣了以前那種繁瑣的慢節奏的工作方式。他們和你看事情的角度不同,你希望引入敏捷方法來解決問題,而他們不認為那是問題。也許他們會改進自己喜愛的開發方法,但這些方法和AM格格不入。也許,AM威脅到他們在組織內的權力分配。即使不考慮這些情況,也還是會有人抗拒變化。要想成功的改變,必須要有真正的AM斗士。他們支持AM,為AM奮斗,他們愿意去收集Project Stakeholder的支持,他們愿意進行AM思想的宣傳和培育,讓AM能夠在組織內生根發芽。改變需要時間,這些斗士就是在爭取時間。
你需要負責、主動的開發人員。Fowler指出敏捷軟件開發強調開發人員的紀律性,要求開發人員能夠協同工作,開發高質量的軟件。這意味著你需要一個健康的團隊環境,人們能夠相互信任,相互幫助,共同邁向成功。和那些敏捷開發方法的詆毀者告訴你的完全相反,你需要的人并不是一個個都要求能上天入地。根據我的經驗,你的要求很簡單:愿意完成工作,有合作精神,能夠有效工作。
你需要有足夠的資源。你現在知道了敏捷建模需要人們的緊密合作。就是說你需要“協同開發的空間”,例如能夠使人專注于工作的建模室,一堵能夠演示模型的公用墻,最好還能給每對開發人員配置一臺共享工作站。除此之外,你還需要有足夠的建模工具,例如白板、索引卡片、標記、和其它必須的CASE工具。我就曾經看過由于基本資源(像樣的椅子,桌子,食物,飲料,和高端工作站)的缺乏,使軟件開發工作的進展受到阻礙。如果你的項目團隊因為這些錙銖之事導致失敗,那我倒是想問問你這項目對你的組織是不是真的那么重要。如果不是,那就cancel它,把你的精力投入到其它更有價值的項目中去吧。
但這不是我的情況....
那么,當其上的一個或某些條件和你目前的情況有出入的時候,你該怎么辦?試著去改變你目前的情況。缺乏AM的擁護者嗎?那你自己就可以成為一個擁護者。不允許以迭代式和遞增的方式工作,和你的老板們談談,讓他們相信這是一種更好的工作方式,要求他們給你一個機會去證明。沒有足夠的資源?和你的頭兒說明它們的重要性。如果你已經盡力改變了所有的情況,但是仍然還有一些條件是你無能為力的,你可以試試以下的選擇:
文章來源于領測軟件測試網 http://www.kjueaiud.com/