今天繼續(xù)為大家更新《啟示錄-如何打造用戶喜愛的產(chǎn)品》?
第26章? ?合理運(yùn)用敏捷方法
Succeeding?with?Agile?Methods
十大秘訣
不少軟件產(chǎn)品團(tuán)隊(duì)已經(jīng)采納了敏捷方法殃饿,有些正在嘗試婶希。盡管敏捷方法(包括Scrum和極限編程)有許多優(yōu)點(diǎn)梅屉,??但這類方法源自定制軟件(custom?software)?領(lǐng)域哩盲,不完全適用于開發(fā)產(chǎn)品軟件(product?software)庶艾。許多產(chǎn)品團(tuán)隊(duì)歷經(jīng)磨難,才明白如何將敏捷方法應(yīng)用到產(chǎn)品軟件領(lǐng)域况脆。
本章介紹在產(chǎn)品軟件領(lǐng)域使用敏捷方法的訣竅柒爵。不了解敏捷方法的讀者,請參考
注意這些訣竅只適用于產(chǎn)品軟件團(tuán)隊(duì)彤叉,不適用于定制軟件團(tuán)隊(duì)庶柿。
1.產(chǎn)品經(jīng)理即是產(chǎn)品負(fù)責(zé)人(product owner),他代表了客戶的需求秽浇,??因而需要與產(chǎn)品開發(fā)團(tuán)隊(duì)保持密切的聯(lián)系浮庐,協(xié)助督促開發(fā)進(jìn)程,及時(shí)解決出現(xiàn)的問題柬焕。有些產(chǎn)品經(jīng)理以為敏捷方法可以讓工作變得輕松审残,這是大錯(cuò)特錯(cuò)的。如果產(chǎn)品經(jīng)理和產(chǎn)品負(fù)責(zé)人不是由一個(gè)人擔(dān)任斑举,通常會(huì)埋下隱患(參見第2章)搅轿。
2.?使用敏捷方法絕不等于省略產(chǎn)品規(guī)劃。產(chǎn)品經(jīng)理仍然要明白產(chǎn)品的方向和目標(biāo)富玷,設(shè)定衡量產(chǎn)品成功與否的標(biāo)準(zhǔn)璧坟。只不過在敏捷環(huán)境里既穆,規(guī)劃周期應(yīng)該適度縮短,反復(fù)迭代沸柔,采用輕量級的機(jī)會(huì)評估方法替代冗長的市場需求文檔(參見第11章)循衰。
3.產(chǎn)品經(jīng)理和設(shè)計(jì)師的工作進(jìn)度應(yīng)該比開發(fā)團(tuán)隊(duì)領(lǐng)先一兩個(gè)迭代周期,確保你們有足夠的時(shí)間攻克難題褐澎。讓交互設(shè)計(jì)師和視覺設(shè)計(jì)師提前設(shè)計(jì)產(chǎn)品会钝,充分發(fā)揮他們主導(dǎo)設(shè)計(jì)的作用,不能一邊設(shè)計(jì)一邊開發(fā)(參見第19章)工三。另外迁酸,始終讓開發(fā)人員參與評估產(chǎn)品設(shè)計(jì)和產(chǎn)品原型,及時(shí)反饋關(guān)于可行性俭正、成本奸鬓、解決方案的建議。
4.盡量把產(chǎn)品設(shè)計(jì)工作拆分成獨(dú)立的部分掸读,分而治之串远,但也不能拆得太細(xì)——好比設(shè)計(jì)建筑不能一次只設(shè)計(jì)一個(gè)房間。目標(biāo)是設(shè)計(jì)出符合基本要求的產(chǎn)品(參見第20章)儿惫。值得注意的是澡罚,在敏捷環(huán)境里,設(shè)計(jì)師必須加快工作速度肾请,采用迅速制作原型的方法更能適應(yīng)敏捷環(huán)境留搔。
5.產(chǎn)品經(jīng)理的主要任務(wù)是定義有價(jià)值、可用的產(chǎn)品原型和用戶故事(user?story)铛铁,作為開發(fā)的基礎(chǔ)隔显。用產(chǎn)品原型和用戶故事替代厚厚的產(chǎn)品需求文檔和功能說明文檔有三個(gè)優(yōu)勢:①可以請用戶測試;②強(qiáng)迫產(chǎn)品經(jīng)理全面認(rèn)真地思考問題饵逐;③向開發(fā)團(tuán)隊(duì)明確地描述每次迭代周期需要完成的任務(wù)括眠。請用戶測試原型,根據(jù)反饋意見反復(fù)迭代修改原型設(shè)計(jì)梳毙,確保交給開發(fā)團(tuán)隊(duì)的是有價(jià)值的結(jié)果哺窄,避免任何浪費(fèi),哪怕只是一個(gè)迭代周期账锹。
6.??讓開發(fā)人員自主劃分迭代周期萌业。有的產(chǎn)品功能可以在一個(gè)迭代周期完成,有的卻需要好幾次迭代才能完成奸柬。好的原型可以提高估算工作量和開發(fā)時(shí)間的精度生年。??別忘了,開發(fā)團(tuán)隊(duì)必須考慮產(chǎn)品的質(zhì)量廓奕、性能抱婉、擴(kuò)展性档叔,應(yīng)該讓他們自行決定如何劃分迭代周期。
7.產(chǎn)品經(jīng)理和交互設(shè)計(jì)師必須出席每天的晨會(huì)蒸绩。晨會(huì)是一天溝通過程的開始衙四,而不是結(jié)束,關(guān)于產(chǎn)品的討論會(huì)持續(xù)一整天患亿。設(shè)計(jì)師向開發(fā)人員和測試人員展示產(chǎn)品功能传蹈;開發(fā)人員互相展示完成的代碼,讓測試人員測試步藕,請?jiān)O(shè)計(jì)師和產(chǎn)品經(jīng)理過目惦界;測試人員和開發(fā)人員在制作原型的階段識別潛在的問題,協(xié)助產(chǎn)品經(jīng)理制定更合理的決策咙冗,解決產(chǎn)品設(shè)計(jì)沾歪、開發(fā)的問題。
8.除非達(dá)到了產(chǎn)品經(jīng)理的要求雾消,否則不要輕易發(fā)布新版本灾搏。產(chǎn)品經(jīng)理必須確保交給用戶的產(chǎn)品能正常運(yùn)行。過度頻繁更新版本會(huì)讓用戶感到不安(參見第24章)立润。
9.??在每次迭代完成后确镊,產(chǎn)品經(jīng)理應(yīng)該向團(tuán)隊(duì)展示產(chǎn)品現(xiàn)狀,以及下次迭代的產(chǎn)品原型范删,讓大家看到工作成果,同時(shí)加深大家對產(chǎn)品的理解拷肌,增強(qiáng)團(tuán)隊(duì)對這種開發(fā)方式的信心到旦。
10.在團(tuán)隊(duì)內(nèi)展開敏捷培訓(xùn)。聘請敏捷顧問協(xié)助你們完成向敏捷團(tuán)隊(duì)轉(zhuǎn)型的目標(biāo)巨缘,但是要確保敏捷顧問有過類似的工作經(jīng)驗(yàn)添忘,理解產(chǎn)品軟件與定制軟件的差別。只有每位團(tuán)隊(duì)成員都真正理解敏捷方法若锁,你才能把工作重心放在執(zhí)行.上搁骑,否則敏捷方法就只能停留在教條式的理論層面。
問答解疑:迭代初期開發(fā)的產(chǎn)品能用做原型嗎?
有些敏捷方法的倡導(dǎo)者和實(shí)踐者認(rèn)為開發(fā)團(tuán)隊(duì)可以把迭代初期開發(fā)的產(chǎn)品當(dāng)做產(chǎn)品原型用又固。這種做法也許適用于定制軟件仲器,畢竟定制軟件不需要我所說的產(chǎn)品管理,也少有用戶體驗(yàn)設(shè)計(jì)仰冠,然而乏冀,這種做法對產(chǎn)品軟件是行不通的,原因如下洋只。
第一辆沦,用一個(gè)迭代周期來驗(yàn)證產(chǎn)品創(chuàng)意(通常存在缺陷)時(shí)間太長昼捍。花幾個(gè)月時(shí)間驗(yàn)證生產(chǎn)中的產(chǎn)品與用幾天時(shí)間驗(yàn)證可更改的產(chǎn)品原型相比肢扯,后者效率顯然更高妒茬。
第二,在探索(定義)產(chǎn)品的階段蔚晨,開發(fā)團(tuán)隊(duì)還有許多重要的工作要完成乍钻。如果這時(shí)占用開發(fā)團(tuán)隊(duì)的時(shí)間開發(fā)產(chǎn)品原型,會(huì)消耗他們開發(fā)正式產(chǎn)品的精力蛛株。
第三团赁,盡管敏捷方法鼓勵(lì)開發(fā)團(tuán)隊(duì)不斷學(xué)習(xí),快速反應(yīng)谨履,可一旦進(jìn)入開發(fā)階段欢摄,設(shè)計(jì)出軟件架構(gòu)后,再想改變產(chǎn)品設(shè)計(jì)思路笋粟,對開發(fā)團(tuán)隊(duì)來說怀挠,無論是成本還是難度都太高了。
問答解疑:敏捷方法可以用來開發(fā)產(chǎn)品軟件嗎害捕?
像Scrum這樣的敏捷方法的確解決了許多困擾軟件團(tuán)隊(duì)多年的問題绿淋,??但是多數(shù)產(chǎn)品經(jīng)理、用戶體驗(yàn)設(shè)計(jì)師尝盼、測試人員吞滞,對敏捷方法持懷疑態(tài)度,不確定自己應(yīng)該扮演什么角色盾沫。毫無疑問裁赠,實(shí)施敏捷方法絕對離不開這些人,出現(xiàn)這種情況是因?yàn)椤霸肌钡拿艚莘椒ú⒉贿m用于研發(fā)產(chǎn)品軟件赴精。我發(fā)現(xiàn)解釋敏捷方法的起源可以幫助人們理解它的適用范圍佩捞。
敏捷方法的起源? ??
Scrum于1986年誕生于日本,距今已有二十多年的歷史蕾哟,許多人對此感到驚訝不已(這又一次證明了一忱,新觀念要經(jīng)過很長時(shí)間才能被人們廣泛接受)。值得注意的是谭确,這些方法起源于定制軟件領(lǐng)域帘营,而不是產(chǎn)品軟件領(lǐng)域。
長久以來琼富,開發(fā)定制軟件困難重重原因之一是仪吧,雖然需求確實(shí)存在,但客戶通常不知道自己想要什么鞠眉。他們與軟件公司簽訂合約薯鼠,把自己的需求告訴開發(fā)人員择诈,由開發(fā)人員自行開發(fā)。等到交付軟件時(shí)出皇,客戶往往發(fā)現(xiàn)到手的軟件和想象中的相差十萬八千里羞芍,于是又要求開發(fā)人員修改,如此惡性循環(huán)郊艘,客戶屢屢失望而歸荷科。但是由于剛性需求一直存在,所以開發(fā)人員纱注、軟件供應(yīng)商畏浆、相關(guān)專業(yè)服務(wù)機(jī)構(gòu)不必?fù)?dān)心沒有生意做。
另外狞贱,定制軟件領(lǐng)域長期以來很難招聘/留住頂級的程序員刻获。部分原因是頂級的程序員更喜歡為成千上萬的用戶開發(fā)產(chǎn)品軟件,因而選擇在產(chǎn)品軟件公司工作瞎嬉。而且產(chǎn)品軟件公司能提供更具競爭力的薪資待遇蝎毡。產(chǎn)品軟件公司必須開發(fā)出滿足大眾需求的產(chǎn)品,否則就得關(guān)門大吉氧枣,他們懂得只有用高薪吸引頂尖人才沐兵,推出優(yōu)質(zhì)的產(chǎn)品,才能獲得高額利潤便监。所以扎谎,多數(shù)資質(zhì)普通的程序員留在了定制軟件領(lǐng)域。
定制軟件的客戶認(rèn)為自己了解自己的需求烧董,所以不需要什么產(chǎn)品經(jīng)理簿透。他們也不需要用戶體驗(yàn)設(shè)計(jì)師,這個(gè)原因更復(fù)雜解藻,主要是客戶不理解什么是用戶體驗(yàn)(在定制軟件領(lǐng)域幾乎沒人認(rèn)識到用戶體驗(yàn)的重要性),以及對成本過于敏感(讓開發(fā)人員設(shè)計(jì)產(chǎn)品可以節(jié)約成本)葡盗。另外螟左,用戶體驗(yàn)設(shè)計(jì)人才極度短缺也是不能忽視的原因,即便定制軟件公司意識到用戶體驗(yàn)的重要性觅够,也很難招聘到合適的用戶體驗(yàn)設(shè)計(jì)師,因?yàn)樗麄冊缇捅划?dāng)成“香餑餑”被少數(shù)幾家大公司搶去了。同樣伟墙,定制軟件項(xiàng)目里也鮮見測試人員解幽,本該由他們完成的測試工作都被開發(fā)人員包攬了。
定制軟件的另一特點(diǎn)是大多數(shù)項(xiàng)目規(guī)模較小窘拯,一般用來支持公司內(nèi)部運(yùn)營红且,比如人力資源坝茎、財(cái)務(wù)、??生產(chǎn)系統(tǒng)暇番,有限的用戶數(shù)量使得可擴(kuò)展性和性能表現(xiàn)通常不受重視嗤放。
以前,定制軟件領(lǐng)域常使用瀑布式開發(fā)方法壁酬,這樣做是為了便于客戶監(jiān)督漫長的開發(fā)過程次酌。實(shí)際上,瀑布式開發(fā)方法也同樣源于定制軟件領(lǐng)域舆乔。
產(chǎn)品軟件必須在各方面都盡量做到完美岳服,才能贏得市場。所以必須由產(chǎn)品經(jīng)理負(fù)責(zé)收集廣大用戶的需求希俩;由用戶體驗(yàn)設(shè)計(jì)師創(chuàng)造完美的用戶體驗(yàn)吊宋;由測試人員測試產(chǎn)品,保證軟件可以像廣告里說的那樣正常運(yùn)行斜纪。
敏捷方法極大地提高了開發(fā)定制軟件的效率:增進(jìn)了客戶和開發(fā)人員之間的交流贫母;通過更頻繁的迭代來大幅度降低風(fēng)險(xiǎn)(客戶可以更早看到階段性的產(chǎn)品,再不必等到整個(gè)開發(fā)過程結(jié)束)盒刚;引進(jìn)了現(xiàn)代軟件測試的理念腺劣;省去了撰寫連篇累牘的產(chǎn)品說明文檔的麻煩(這些文檔實(shí)際上少有人閱讀,很快就會(huì)被束之高閣) 因块。
我認(rèn)為敏捷方法同樣適用于產(chǎn)品軟件的開發(fā)橘原,但應(yīng)用時(shí)應(yīng)該做出相應(yīng)的調(diào)整。我曾經(jīng)寫過相關(guān)文章(如何在開發(fā)過程中加入用戶體驗(yàn)設(shè)計(jì)涡上,如何管理產(chǎn)品的發(fā)布和部署)趾断。敏捷方法唯一不適合產(chǎn)品軟件開發(fā)的地方是在架構(gòu)設(shè)計(jì)方面。敏捷方法鼓勵(lì)開發(fā)人員不要拘泥于傳統(tǒng)的開發(fā)流程吩愧,要相信簡單重構(gòu)和快速重新設(shè)計(jì)架構(gòu)的優(yōu)勢芋酌。這對多數(shù)定制軟件來說是可行的,但對產(chǎn)品軟件系統(tǒng)(比如針對成千上萬用戶的大眾網(wǎng)絡(luò)服務(wù))而言雁佳,這個(gè)想法就太天真了脐帝。
所以,產(chǎn)品軟件團(tuán)隊(duì)使用敏捷方法時(shí)遇到問題不足為奇糖权,主要是因?yàn)樗麄冋瞻崃硕ㄖ栖浖拿艚菽J蕉赂埂V两穸鄶?shù)介紹敏捷方法的圖書、文章星澳、培訓(xùn)課程依然不涉及產(chǎn)品經(jīng)理和用戶體驗(yàn)設(shè)計(jì)師(交互設(shè)計(jì)師和視覺設(shè)計(jì)師)的作用疚顷,??因?yàn)樗鼈冡槍Φ淖x者群還是定制軟件團(tuán)隊(duì)。
要想成功轉(zhuǎn)型成為敏捷開發(fā)團(tuán)隊(duì),選一位合格的敏捷教練相當(dāng)重要腿堤,他必須理解產(chǎn)品軟件與定制軟件的差別阀坏,了解產(chǎn)品軟件的特殊需求,而這正是多數(shù)人不明白的释液。
更多資料可掃碼關(guān)注“產(chǎn)品經(jīng)理讀書營”全释,百人產(chǎn)品經(jīng)理手把手帶你實(shí)現(xiàn)進(jìn)階。進(jìn)群即可領(lǐng)取產(chǎn)品大禮包误债。