自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

敏捷開發(fā)實(shí)踐 擁抱變化的產(chǎn)品開發(fā)流程

開發(fā) 項(xiàng)目管理
文從實(shí)踐的角度介紹筆者所在團(tuán)隊(duì)的產(chǎn)品敏捷開發(fā)過程和作者的敏捷開發(fā)體會(huì)。作者的開發(fā)團(tuán)隊(duì)在兩年前開始采用敏捷開發(fā)方法,一直實(shí)踐到現(xiàn)在,并取得不錯(cuò)的成果。

隨著Agile敏捷開發(fā)的流行,越來越多的公司采用敏捷開發(fā)用于軟件產(chǎn)品和應(yīng)用的開發(fā)。筆者的產(chǎn)品開發(fā)團(tuán)隊(duì)在兩年前開始采用敏捷開發(fā)方法,一直實(shí)踐到現(xiàn)在,并取得不錯(cuò)的成果,包括:產(chǎn)品功能更加符合市場和業(yè)務(wù)人員的需求,開發(fā)效率獲得提高。本文從實(shí)踐的角度介紹筆者所在團(tuán)隊(duì)的產(chǎn)品敏捷開發(fā)過程和作者的敏捷開發(fā)體會(huì)。

敏捷開發(fā)體會(huì)

實(shí)施敏捷開發(fā)近兩年來,我對在產(chǎn)品開發(fā)中應(yīng)用敏捷方法有著深刻的體會(huì)。首先說下產(chǎn)品背景。我參與的產(chǎn)品是面向行業(yè)的產(chǎn)品,在全世界都有客戶,有10年歷史,和一百多個(gè)基于不同版本的客戶,我們的團(tuán)隊(duì)完全負(fù)責(zé)產(chǎn)品的未來發(fā)展方向、發(fā)布計(jì)劃、架構(gòu)、設(shè)計(jì)、開發(fā)進(jìn)度、測試、客戶支持等。在這樣一個(gè)面向全球的產(chǎn)品和自主的團(tuán)隊(duì)環(huán)境中進(jìn)行敏捷開發(fā)體會(huì)尤其深刻。

1) 注重概念和架構(gòu)設(shè)計(jì),而輕詳細(xì)設(shè)計(jì)

敏捷開發(fā)中,注重概念和架構(gòu)設(shè)計(jì),而輕詳細(xì)設(shè)計(jì)。這里的概念設(shè)計(jì),可以看成是為什么要做這個(gè)產(chǎn)品或模塊,強(qiáng)調(diào)的是產(chǎn)品的路線規(guī)劃、市場趨勢、客戶價(jià)值、技術(shù)趨勢等。架構(gòu)設(shè)計(jì),可以看成從整體上看,概念設(shè)計(jì)應(yīng)該用什么方式實(shí)現(xiàn)、分幾個(gè)層次、多少組件、不同層次和組件之間關(guān)系是什么。詳細(xì)設(shè)計(jì),則是具體的設(shè)計(jì)和做法、API接口等。

一個(gè)產(chǎn)品,特別是面向行業(yè)的產(chǎn)品,概念設(shè)計(jì)和架構(gòu)設(shè)計(jì)非常重要,需要考慮行業(yè)未來的發(fā)展方向,產(chǎn)品在市場中橫向和縱向的比較,技術(shù)的發(fā)展方向,和每個(gè)模塊的投入和收益的比例等,這樣才能盡可能保證產(chǎn)品沿著正確的方向前進(jìn)。在產(chǎn)品中新增或刪除一個(gè)模塊需要非常謹(jǐn)慎,因?yàn)橐坏┬略瞿K被客戶使用,以后就很難在產(chǎn)品中去掉這個(gè)模塊。還需要考慮產(chǎn)品各個(gè)版本之間的兼容性,以及客戶的升級(jí)遷移。所以,在開始正式開發(fā)之前,通過概念設(shè)計(jì)和架構(gòu)設(shè)計(jì),梳理思路是非常必要的。

2) SWOT分析

以前在做項(xiàng)目時(shí),大多是從技術(shù)角度來考慮哪一些功能模塊需要做,哪一些功能模塊先做,而沒有一個(gè)系統(tǒng)化的分析方法。造成的結(jié)果是有一些功能模塊投入很多資源,卻并不一定是客戶最想要的。

在敏捷開發(fā)中,更加注重客戶需求。如果對產(chǎn)品進(jìn)行SWOT分析,就能選出付出最小工作量,但能獲得最大價(jià)值的模塊。

SWOT分析階段會(huì)在概念設(shè)計(jì)和架構(gòu)設(shè)計(jì)之后進(jìn)行,輸入是概念設(shè)計(jì)和架構(gòu)設(shè)計(jì),輸出是模塊的重要度和需要的時(shí)間。這樣按照性價(jià)比可以進(jìn)行排序,選出最能符合市場的模塊。

一款產(chǎn)品哪個(gè)模塊重要,哪個(gè)先做,需要花多少資源和時(shí)間投入,花這么多時(shí)間和資源的模塊是否在客戶心中有相應(yīng)的重要程度等,這些都是由這款產(chǎn)品的市場策略來決定。所有產(chǎn)品都是為了市場和贏利為目的,Agile方法更好地幫助企業(yè)實(shí)現(xiàn)了這一點(diǎn)。

3) 業(yè)務(wù)和客戶驅(qū)動(dòng),而非技術(shù)驅(qū)動(dòng)

這點(diǎn)說是體會(huì),也可以說是教訓(xùn)。在我們的產(chǎn)品開發(fā)過程中,在某一新版本中重新設(shè)計(jì)了老版本的某一個(gè)重要模塊,而引發(fā)了幾個(gè)問題:一是,新版本的模塊和老版本模塊的兼容性問題,導(dǎo)致老版本客戶無法平滑的遷移到新版本;二是,新版本的改進(jìn)是純技術(shù)方面的重新實(shí)現(xiàn),不管對客戶而言,還是對內(nèi)部的架構(gòu)而言,都沒有明顯好處;最后導(dǎo)致的結(jié)果是我們花了很多資源和人力去重新實(shí)現(xiàn),但是在最后由于種種考慮還是廢棄了重新實(shí)現(xiàn)的模塊,依然沿用老模塊。

在產(chǎn)品的敏捷開發(fā)中,雖說擁抱變化,但不盲目變化。產(chǎn)品的改動(dòng)需要經(jīng)過概念設(shè)計(jì)、架構(gòu)設(shè)計(jì)以及SWOT分析后,三思而后行。敏捷開發(fā)中也強(qiáng)調(diào)"在整個(gè)項(xiàng)目開發(fā)期間,業(yè)務(wù)人員和開發(fā)人員必須天天都在一起工作",確保技術(shù)人員能夠開發(fā)出客戶需要的產(chǎn)品。

4) 時(shí)刻考慮版本兼容性

敏捷開發(fā),廢除了過多冗余的文檔和繁雜的設(shè)計(jì),強(qiáng)調(diào)擁抱變化。但作為產(chǎn)品,敏捷開發(fā)不意味著盲目地去變化。

當(dāng)設(shè)計(jì)變動(dòng)、API接口重構(gòu)、配置文件變更時(shí),要時(shí)刻考慮產(chǎn)品的架構(gòu)、規(guī)劃路線圖,老版本的兼容性,及遷移平滑性。否則,隨著版本的增多,必將面對著大量的維護(hù)工作。

5) 輕文檔,但非無文檔

敏捷開發(fā)強(qiáng)調(diào)溝通的重要性,而輕冗余文檔。但敏捷開發(fā)并不意味著無文檔。在敏捷開發(fā)過程中,適量的文檔還是很有幫助,有助于整理思路,加快溝通和討論。

我們產(chǎn)品中的文檔包括:概念設(shè)計(jì)文檔、架構(gòu)圖、當(dāng)前版本要實(shí)現(xiàn)的功能列表,以及SWOT分析。

這些文檔在每個(gè)產(chǎn)品版本開始之前會(huì)有產(chǎn)生,在每個(gè)迭代的過程中根據(jù)業(yè)務(wù)人員和市場的反饋也會(huì)有一些變更。通過我們實(shí)踐證明,這對產(chǎn)品的思路、溝通討論都非常有幫助。

而且這些文檔,大多是幾頁P(yáng)PT,書寫和維護(hù)工作都很小。#p#

敏捷開發(fā)過程

敏捷開發(fā)改進(jìn)了產(chǎn)品的開發(fā)流程,提高了整個(gè)團(tuán)隊(duì)的效率。下面分析敏捷開發(fā)前和敏捷開發(fā)后的產(chǎn)品開發(fā)的各個(gè)階段。

1) 敏捷開發(fā)"前"的產(chǎn)品開發(fā)過程

 

圖1 敏捷前開發(fā)流程

上圖是敏捷開發(fā)前我們產(chǎn)品一個(gè)版本的開發(fā)流程,整個(gè)開發(fā)大概持續(xù)一年左右。從圖中可以看出,流程中的大多數(shù)活動(dòng)都是串行進(jìn)行。這樣的一種類似瀑布的開發(fā)流程,前提是需求在產(chǎn)品的初始階段就完整的被捕獲并正確的分析,這樣才能保證最后交付的產(chǎn)品是客戶所需要的產(chǎn)品,但通常這樣的理想狀況很難實(shí)現(xiàn)。

類瀑布的開發(fā)流程缺乏靈活性,無法通過開發(fā)活動(dòng)來發(fā)現(xiàn)不夠確切的需求,導(dǎo)致產(chǎn)品無法隨著業(yè)務(wù)人員和市場的反饋而隨需應(yīng)變,開發(fā)出符合業(yè)務(wù)人員需求的產(chǎn)品。

2) 敏捷開發(fā)"后"的產(chǎn)品開發(fā)過程

圖2 敏捷后開發(fā)流程

上圖是敏捷開發(fā)"后"我們產(chǎn)品一個(gè)版本的開發(fā)流程,整個(gè)開發(fā)大概也是持續(xù)一年左右,但每個(gè)迭代都是1個(gè)月時(shí)間。和敏捷開發(fā)前相比,有很多的區(qū)別和優(yōu)點(diǎn),下面是其中幾點(diǎn):

市場和需求驅(qū)動(dòng),擁抱變

在我們產(chǎn)品敏捷開發(fā)中,每個(gè)迭代結(jié)束,都會(huì)有一個(gè)產(chǎn)品迭代演示大會(huì),把這個(gè)月的開發(fā)結(jié)果演示給組員、業(yè)務(wù)人員、售前,甚至客戶,并收集反饋。此外,在開發(fā)的過程中,產(chǎn)品的業(yè)務(wù)人員和售前時(shí)刻保持與產(chǎn)品開發(fā)團(tuán)隊(duì)的溝通和工作,保證開發(fā)出來的產(chǎn)品是符合業(yè)務(wù)需求。

充分利用資源和時(shí)間

敏捷開發(fā)前,產(chǎn)品的需求設(shè)計(jì)階段占用整個(gè)開發(fā)流程35%左右的時(shí)間,這段時(shí)間只需要幾個(gè)核心的架構(gòu)師和設(shè)計(jì)人員,無法充分地利用開發(fā)和測試人員。敏捷開發(fā)后,迭代開發(fā)、強(qiáng)調(diào)溝通、縮減文檔,在每個(gè)迭代初期就可以充分地利用開發(fā)、測試人員的時(shí)間,達(dá)到效率最大化。

每日交付

產(chǎn)品開發(fā)過程中,每天都會(huì)做自動(dòng)化Build,并生成可以交付的產(chǎn)品。業(yè)務(wù)人員、客戶都可以試用并提供反饋和新需求。

充分自動(dòng)化

敏捷開發(fā)強(qiáng)調(diào)擁抱變化,這必然帶來動(dòng)蕩的產(chǎn)品代碼變更。每一個(gè)新的功能和修改的功能,都可以影響到其他功能,造成副作用。所以,需要自動(dòng)化去支持變化,在變化的同時(shí)保證質(zhì)量和開發(fā)速度,包括編譯自動(dòng)化、單元測試自動(dòng)化、功能測試自動(dòng)化、UI測試自動(dòng)化、集成測試自動(dòng)化等。#p#

架構(gòu)師和Scrum Master的重要性

流程的變化必將帶來崗位和職責(zé)的變化,架構(gòu)師和Scrum Master是在敏捷開發(fā)中兩個(gè)重要的人物角色:

1) 產(chǎn)品架構(gòu)師

在產(chǎn)品的敏捷開發(fā)中,特別是我所參與的產(chǎn)品是面向行業(yè)的產(chǎn)品,架構(gòu)師是個(gè)舉足輕重的角色,需要有深厚的行業(yè)背景、創(chuàng)新能力,以及架構(gòu)能力。

產(chǎn)品是為了解決一類客戶需求而存在。但是,客戶的需求往往是會(huì)隨著業(yè)務(wù)的發(fā)展而變化,而且競爭對手也會(huì)有類似產(chǎn)品的推出。所以一個(gè)產(chǎn)品推出市場后,所具有的功能模塊慢慢地會(huì)越來越成熟,并擁有越來越多的競爭對手,慢慢地失去競爭力。一個(gè)好的產(chǎn)品,特別是面向行業(yè)的產(chǎn)品,要具有長期的生命力,需要具有下圖所示的產(chǎn)品模型:

圖3 產(chǎn)品發(fā)展模型

成熟的模塊:指的是推出市場有一段時(shí)間,這些功能模塊因滿足客戶的需求而被廣泛使用。隨著市場趨于穩(wěn)定,大量競爭對手的產(chǎn)品也推出類似的功能。這些成熟模塊都是產(chǎn)品的基本模塊,不代表產(chǎn)品的競爭力。產(chǎn)品中如果只具有這些功能模塊,隨著需求和競爭的激烈,慢慢會(huì)走向滅亡。如90年代的BP機(jī)一樣,當(dāng)手機(jī)一旦推出,這個(gè)產(chǎn)品也就走向滅亡。

發(fā)展中的模塊:指的是剛推出市場并且具有強(qiáng)勁的市場生命力、符合客戶當(dāng)前幾年的業(yè)務(wù)發(fā)展需求,正在被大客戶所接受的功能模塊。這些功能模塊是產(chǎn)品占領(lǐng)市場的動(dòng)力,是繼成熟的功能模塊后,產(chǎn)品的新的增長動(dòng)力。

研究中的下一代產(chǎn)品方向:指的是還沒有推出市場、正在研究中的、符合未來行業(yè)五到十年發(fā)展方向的模塊。當(dāng)然如果能創(chuàng)造出未來的發(fā)展方向,則是最高境界。如任天堂的Wii、蘋果公司的iPhone。

一個(gè)行業(yè)軟件產(chǎn)品要保持長期的生命力,在整個(gè)產(chǎn)品的生命周期架構(gòu)規(guī)劃中,需要考慮到這三種模塊和特性,只有這樣才能保持產(chǎn)品的先進(jìn)性和長久生命力。

敏捷開發(fā)也強(qiáng)調(diào)擁抱市場變化,這對產(chǎn)品架構(gòu)師提出了很高的要求——深厚的業(yè)務(wù)背景、創(chuàng)新能力、技術(shù)洞察力和架構(gòu)思想。

2) Scrum Master

Scrum Master雖然是敏捷開發(fā)的新名詞,但其工作內(nèi)容和開發(fā)組長沒什么太大的區(qū)別:安排任務(wù)、協(xié)調(diào)資源、控制進(jìn)度和解決難題。

架構(gòu)師根據(jù)對行業(yè)的理解和創(chuàng)新,設(shè)計(jì)出產(chǎn)品的架構(gòu)。Scrum Master則是進(jìn)一步分解和實(shí)現(xiàn)這個(gè)架構(gòu)中的每個(gè)組件。如果形容"奧運(yùn)會(huì)開幕式"是一個(gè)產(chǎn)品,架構(gòu)師則設(shè)計(jì)整個(gè)開幕式的主題、創(chuàng)意、架構(gòu)和包含的主要環(huán)節(jié),而Scrum Master就是整個(gè)龐大工程的詳細(xì)設(shè)計(jì)者和協(xié)調(diào)者。

在我們產(chǎn)品中有三個(gè)Scrum Master,各自負(fù)責(zé)架構(gòu)中的不同模塊,并和開發(fā)人員一起把模塊分解成一個(gè)個(gè)單獨(dú)的、可以衡量的用例,然后協(xié)調(diào)開發(fā)人員高質(zhì)量的完成任務(wù)。

此外,每天早上需要主持小組成員進(jìn)行一個(gè)10分鐘左右Scrum會(huì)議。每個(gè)組員匯報(bào)昨天完成的任務(wù),是否完成任務(wù)以及碰到的問題,最后是今天打算完成的任務(wù)。Scrum Master會(huì)協(xié)調(diào)解決每天碰到的問題,確保產(chǎn)品進(jìn)度和質(zhì)量。

總結(jié)

在筆者的理解中,敏捷開發(fā)是一種思維方式和軟件過程方法論,以及一系列的最佳實(shí)踐,它能幫助團(tuán)隊(duì)開發(fā)出更加符合市場需求的產(chǎn)品。我們的團(tuán)隊(duì)在產(chǎn)品兩個(gè)版本的敏捷開發(fā)歷程中,不斷摸索,找到了一條適合自己的產(chǎn)品敏捷開發(fā)流程,我們還將繼續(xù)用敏捷的思想改進(jìn)我們的敏捷開發(fā)流程,希望能與大家討論探索,持續(xù)改進(jìn)。

【編輯推薦】

  1. 敏捷開發(fā)環(huán)境下的領(lǐng)導(dǎo)問題
  2. 對話敏捷專家麥天志:敏捷開發(fā)現(xiàn)狀及發(fā)展之路
  3. 如何向敏捷開發(fā)團(tuán)隊(duì)轉(zhuǎn)型
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

2023-09-04 15:31:54

軟件開發(fā)敏捷開發(fā)工具

2021-07-31 07:54:52

開發(fā)研發(fā)敏捷

2013-02-19 16:00:50

敏捷開發(fā)產(chǎn)品提速

2017-11-29 15:38:45

B端交互設(shè)計(jì)

2024-09-06 10:25:32

人工智能ETL微服務(wù)

2009-07-16 09:52:00

Scrum流程

2017-04-12 10:04:18

Scrum實(shí)踐終結(jié)

2011-01-14 08:35:03

iPhoneiPad敏捷設(shè)計(jì)流程

2019-12-06 11:14:57

Git開發(fā)系統(tǒng)

2009-02-04 15:43:45

敏捷開發(fā)PHPFleaPHP

2020-10-22 10:34:04

APICloud開發(fā)平臺(tái)

2009-03-24 00:04:35

敏捷開發(fā)源代碼分析軟件質(zhì)量

2013-10-29 11:50:11

2012-02-01 14:02:00

蘋果產(chǎn)品開發(fā)

2010-11-16 09:23:13

敏捷開發(fā)Visual Stud

2023-01-04 09:40:32

敏捷開發(fā)

2015-02-02 14:44:19

微軟云計(jì)算移動(dòng)開發(fā)

2009-07-16 16:01:54

WebWork敏捷開發(fā)

2012-10-30 09:44:33

敏捷開發(fā)

2011-03-27 23:10:37

ibmdw敏捷開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)