資源描述:
《敏捷開發(fā)實踐_擁抱變化的產(chǎn)品開發(fā)流程管理》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、敏捷開發(fā)實踐擁抱變化的產(chǎn)品開發(fā)流程管理 隨著Agile敏捷開發(fā)的流行,越來越多的公司采用敏捷開發(fā)用于軟件產(chǎn)品和應(yīng)用的開發(fā)。筆者的產(chǎn)品開發(fā)團隊在兩年前開始采用敏捷開發(fā)方法,一直實踐到現(xiàn)在,并取得不錯的成果,包括:產(chǎn)品功能更加符合市場和業(yè)務(wù)人員的需求,開發(fā)效率獲得提高。本文從實踐的角度介紹筆者所在團隊的產(chǎn)品敏捷開發(fā)過程和作者的敏捷開發(fā)體會?! ∶艚蓍_發(fā)體會 實施敏捷開發(fā)近兩年來,我對在產(chǎn)品開發(fā)中應(yīng)用敏捷方法有著深刻的體會。首先說下產(chǎn)品背景。我參與的產(chǎn)品是面向行業(yè)的產(chǎn)品,在全世界都有客戶,有10年歷史,和一百多個基于不
2、同版本的客戶,我們的團隊完全負責(zé)產(chǎn)品的未來發(fā)展方向、發(fā)布計劃、架構(gòu)、設(shè)計、開發(fā)進度、測試、客戶支持等。在這樣一個面向全球的產(chǎn)品和自主的團隊環(huán)境中進行敏捷開發(fā)體會尤其深刻?! ?)注重概念和架構(gòu)設(shè)計,而輕詳細設(shè)計 敏捷開發(fā)中,注重概念和架構(gòu)設(shè)計,而輕詳細設(shè)計。這里的概念設(shè)計,可以看成是為什么要做這個產(chǎn)品或模塊,強調(diào)的是產(chǎn)品的路線規(guī)劃、市場趨勢、客戶價值、技術(shù)趨勢等。架構(gòu)設(shè)計,可以看成從整體上看,概念設(shè)計應(yīng)該用什么方式實現(xiàn)、分幾個層次、多少組件、不同層次和組件之間關(guān)系是什么。詳細設(shè)計,則是具體的設(shè)計和做法、API接口等
3、?! ∫粋€產(chǎn)品,特別是面向行業(yè)的產(chǎn)品,概念設(shè)計和架構(gòu)設(shè)計非常重要,需要考慮行業(yè)未來的發(fā)展方向,產(chǎn)品在市場中橫向和縱向的比較,技術(shù)的發(fā)展方向,和每個模塊的投入和收益的比例等,這樣才能盡可能保證產(chǎn)品沿著正確的方向前進。在產(chǎn)品中新增或刪除一個模塊需要非常謹慎,因為一旦新增模塊被客戶使用,以后就很難在產(chǎn)品中去掉這個模塊。還需要考慮產(chǎn)品各個版本之間的兼容性,以及客戶的升級遷移。所以,在開始正式開發(fā)之前,通過概念設(shè)計和架構(gòu)設(shè)計,梳理思路是非常必要的?! ?)SWOT分析 以前在做項目時,大多是從技術(shù)角度來考慮哪一些功能模塊需要
4、做,哪一些功能模塊先做,而沒有一個系統(tǒng)化的分析方法。造成的結(jié)果是有一些功能模塊投入很多資源,卻并不一定是客戶最想要的?! ≡诿艚蓍_發(fā)中,更加注重客戶需求。如果對產(chǎn)品進行SWOT分析,就能選出付出最小工作量,但能獲得最大價值的模塊?! WOT分析階段會在概念設(shè)計和架構(gòu)設(shè)計之后進行,輸入是概念設(shè)計和架構(gòu)設(shè)計,輸出是模塊的重要度和需要的時間。這樣按照性價比可以進行排序,選出最能符合市場的模塊?! ∫豢町a(chǎn)品哪個模塊重要,哪個先做,需要花多少資源和時間投入,花這么多時間和資源的模塊是否在客戶心中有相應(yīng)的重要程度等,這些都是由
5、這款產(chǎn)品的市場策略來決定。所有產(chǎn)品都是為了市場和贏利為目的,Agile方法更好地幫助企業(yè)實現(xiàn)了這一點?! ?)業(yè)務(wù)和客戶驅(qū)動,而非技術(shù)驅(qū)動 這點說是體會,也可以說是教訓(xùn)。在我們的產(chǎn)品開發(fā)過程中,在某一新版本中重新設(shè)計了老版本的某一個重要模塊,而引發(fā)了幾個問題:一是,新版本的模塊和老版本模塊的兼容性問題,導(dǎo)致老版本客戶無法平滑的遷移到新版本;二是,新版本的改進是純技術(shù)方面的重新實現(xiàn),不管對客戶而言,還是對內(nèi)部的架構(gòu)而言,都沒有明顯好處;最后導(dǎo)致的結(jié)果是我們花了很多資源和人力去重新實現(xiàn),但是在最后由于種種考慮還是廢棄了
6、重新實現(xiàn)的模塊,依然沿用老模塊。 在產(chǎn)品的敏捷開發(fā)中,雖說擁抱變化,但不盲目變化。產(chǎn)品的改動需要經(jīng)過概念設(shè)計、架構(gòu)設(shè)計以及SWOT分析后,三思而后行。敏捷開發(fā)中也強調(diào)"在整個項目開發(fā)期間,業(yè)務(wù)人員和開發(fā)人員必須天天都在一起工作",確保技術(shù)人員能夠開發(fā)出客戶需要的產(chǎn)品。 4)時刻考慮版本兼容性 敏捷開發(fā),廢除了過多冗余的文檔和繁雜的設(shè)計,強調(diào)擁抱變化。但作為產(chǎn)品,敏捷開發(fā)不意味著盲目地去變化。 當(dāng)設(shè)計變動、API接口重構(gòu)、配置文件變更時,要時刻考慮產(chǎn)品的架構(gòu)、規(guī)劃路線圖,老版本的兼容性,及遷移平滑性。否則,隨著
7、版本的增多,必將面對著大量的維護工作?! ?)輕文檔,但非無文檔 敏捷開發(fā)強調(diào)溝通的重要性,而輕冗余文檔。但敏捷開發(fā)并不意味著無文檔。在敏捷開發(fā)過程中,適量的文檔還是很有幫助,有助于整理思路,加快溝通和討論?! ∥覀儺a(chǎn)品中的文檔包括:概念設(shè)計文檔、架構(gòu)圖、當(dāng)前版本要實現(xiàn)的功能列表,以及SWOT分析?! ∵@些文檔在每個產(chǎn)品版本開始之前會有產(chǎn)生,在每個迭代的過程中根據(jù)業(yè)務(wù)人員和市場的反饋也會有一些變更。通過我們實踐證明,這對產(chǎn)品的思路、溝通討論都非常有幫助?! 《疫@些文檔,大多是幾頁PPT,書寫和維護工作都很小?! ?/p>
8、敏捷開發(fā)過程 敏捷開發(fā)改進了產(chǎn)品的開發(fā)流程,提高了整個團隊的效率。下面分析敏捷開發(fā)前和敏捷開發(fā)后的產(chǎn)品開發(fā)的各個階段?! ?)敏捷開發(fā)"前"的產(chǎn)品開發(fā)過程圖1敏捷前開發(fā)流程? 上圖是敏捷開發(fā)前我們產(chǎn)品一個版本的開發(fā)流程,整個開發(fā)大概持續(xù)一年左右。從圖中可以看出,流程中的大多數(shù)活動都是串行進行。這樣的一種類似瀑布的開發(fā)流程,前提是需求在產(chǎn)品的