譯者 | 趙青窕
審校 | 孫淑娟
富有創(chuàng)造力的人(包括我自己)通常對(duì)自己所做的事情非常有激情,沒(méi)有什么比我們自己做更讓人欣喜的事了。然而,在創(chuàng)業(yè)的世界里,這種心態(tài)有時(shí)是有害的,特別是在與新的商業(yè)伙伴或客戶(hù)合作時(shí)。
我把培養(yǎng)產(chǎn)品開(kāi)發(fā)技術(shù)的最好方法歸結(jié)為一個(gè)簡(jiǎn)單的規(guī)則:混合(Hybridization)?;旌习óa(chǎn)品開(kāi)發(fā)的各個(gè)方面,并且囊括了個(gè)人層面和公司層面,從最開(kāi)始的想法,人員組建到開(kāi)發(fā)能力和業(yè)務(wù)增長(zhǎng)。
這個(gè)概念已經(jīng)提出并且運(yùn)用了很多年了,事實(shí)證明混合方法對(duì)現(xiàn)代企業(yè)來(lái)說(shuō)是至關(guān)重要的。
根據(jù)我個(gè)人的經(jīng)驗(yàn),我將要討論:混合產(chǎn)品開(kāi)發(fā)技術(shù)是如何提升可持續(xù)性,并提高效率的。
1.混合軟件產(chǎn)品開(kāi)發(fā)到底是什么?
混合軟件產(chǎn)品開(kāi)發(fā)是一種開(kāi)發(fā)軟件產(chǎn)品的新方法,它結(jié)合了兩種不同模型的優(yōu)點(diǎn)——傳統(tǒng)的瀑布模型和敏捷模型。
典型的瀑布模型有著連續(xù)的階段,例如需求收集、分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試和部署。當(dāng)需求很清晰并且項(xiàng)目范圍不會(huì)發(fā)生變化時(shí),這個(gè)模型將會(huì)工作得很好。
在敏捷模型中,會(huì)有多個(gè)執(zhí)行周期(稱(chēng)為迭代)來(lái)適應(yīng)需求或范圍的變更。
在混合開(kāi)發(fā)模型中,您可以在單個(gè)項(xiàng)目中結(jié)合使用瀑布方法和敏捷方法來(lái)達(dá)到最優(yōu)的結(jié)果。
例如,您可以在項(xiàng)目的開(kāi)發(fā)階段使用敏捷方法,而在其他階段使用瀑布方法?;蛘吣憧梢詫?duì)產(chǎn)品的某些部分使用基于迭代的敏捷方法,而對(duì)其他部分使用瀑布方法。
2.混合產(chǎn)品開(kāi)發(fā)的優(yōu)點(diǎn)
混合方法結(jié)合了瀑布方法的計(jì)劃階段和敏捷方法的迭代方法。當(dāng)采用這種方法時(shí),你會(huì)有一個(gè)明確的工作計(jì)劃,與此同時(shí),你又有足夠的靈活性來(lái)適應(yīng)客戶(hù)的需求變化。具體優(yōu)點(diǎn)如下:
- 使您能夠在多個(gè)維度中工作
- 創(chuàng)建更有效的流程
- 縮短開(kāi)發(fā)周期
- 降低成本和風(fēng)險(xiǎn)
- 產(chǎn)品可以快速上市
- 更多顛覆性的方法
3.采用混合方法來(lái)
進(jìn)行產(chǎn)品開(kāi)發(fā)的4個(gè)原因
(1)混合模型加快了軟件開(kāi)發(fā)的進(jìn)度
混合模式是把更多快速且有效率的方法添加到軟件開(kāi)發(fā)的各個(gè)階段。它旨在解決傳統(tǒng)軟件開(kāi)發(fā)模型可能出現(xiàn)的問(wèn)題,因此,它是開(kāi)發(fā)創(chuàng)新產(chǎn)品的更好選擇。
在敏捷環(huán)境中,用戶(hù)的需求會(huì)被分解成許多小的模塊,然后進(jìn)行開(kāi)發(fā)。這些模塊被分組在2或3個(gè)階段。所有這些階段均是由內(nèi)部團(tuán)隊(duì)開(kāi)發(fā)并由QA進(jìn)行測(cè)試的。產(chǎn)品負(fù)責(zé)人必須在每個(gè)模塊完成并發(fā)布之前確認(rèn)并進(jìn)行批準(zhǔn),從而確保一切都按計(jì)劃進(jìn)行,客戶(hù)最終會(huì)得到他想要的產(chǎn)品。
(2)新特性帶來(lái)的產(chǎn)品差異化可以更快更容易地推向市場(chǎng)
軟件開(kāi)發(fā)是一個(gè)迭代過(guò)程,不同的團(tuán)隊(duì)可以同時(shí)在同一個(gè)產(chǎn)品上工作。終端用戶(hù)可以實(shí)時(shí)更新、添加新特性,并及時(shí)修復(fù)bug,而無(wú)需等待重要版本的發(fā)布。這意味著,新特性帶來(lái)的產(chǎn)品差異化可以比以往更快更容易地推向市場(chǎng),這對(duì)小型企業(yè)來(lái)說(shuō)非常重要。
它還意味著,在產(chǎn)品準(zhǔn)備好之前,沒(méi)有任何理由阻止發(fā)布產(chǎn)品。在過(guò)去,軟件是較為昂貴,且難以發(fā)布的,所以公司只能等到產(chǎn)品比較“完美”時(shí)再發(fā)布,除此之外也別無(wú)他法。但是現(xiàn)在,我們沒(méi)有理由不根據(jù)用戶(hù)的反饋,及早地進(jìn)行版本的發(fā)布并進(jìn)行版本的迭代操作。
(3)降低總擁有成本
對(duì)于大多數(shù)IT組織來(lái)說(shuō),云服務(wù)提供商的運(yùn)營(yíng)成本遠(yuǎn)遠(yuǎn)低于在傳統(tǒng)數(shù)據(jù)中心運(yùn)行工作負(fù)載的成本。除此之外,云服務(wù)還可以減少或者消除資本支出。
無(wú)論您選擇哪種云模型(公共、私有或混合),如果您訂閱的是軟件即時(shí)服務(wù)(Software-as-a-Service, SaaS)或基礎(chǔ)結(jié)構(gòu)即服務(wù)(Infrastructure-as-a-Service, IaaS),TCO都將有所降低。
即使您將應(yīng)用程序托管在私有云的服務(wù)器上,您也可能因高效的操作而顯著的節(jié)省成本。
(4)更靈活:對(duì)自定義代碼的依賴(lài)更少
我們都有過(guò)這樣的經(jīng)歷:項(xiàng)目進(jìn)行到一半,客戶(hù)想要添加一個(gè)需要定制化插件的功能。除了同該插件相關(guān)的主題外,其余部分幾乎不用改動(dòng)。但當(dāng)他們因?qū)υO(shè)計(jì)不滿(mǎn)意,想更換主題時(shí),因?yàn)槎ㄖ苹牟寮患嫒菽銥樗麄儤?gòu)建的主題,你不想更換主題。在這種情況下,最好的解決方案幾乎總是重構(gòu)代碼,使自定義功能存在于其插件中。這樣,你就可以繼續(xù)完善你的主題,而不用擔(dān)心破壞其他任何東西。
如果您想要更大的靈活性,依賴(lài)更少的定制化代碼,那么這種方法是比較有用的。您可以為特定的功能構(gòu)建插件,然后在許多項(xiàng)目中重復(fù)使用,而不是每次都必須重寫(xiě)它們。
4.如何應(yīng)對(duì)混合產(chǎn)品開(kāi)發(fā)所面對(duì)的挑戰(zhàn)
(1)創(chuàng)造一種支持凝聚力和集思廣益的文化
如果你害怕失控或擔(dān)心自己的想法得不到認(rèn)可,那么你將不會(huì)成功。你需要?jiǎng)?chuàng)造一種鼓勵(lì)開(kāi)放和尊重彼此的文化,在這種文化中,人們可以輕松地分享自己的想法。
這里有一些方法可以確保你的混合創(chuàng)新方法走向成功:
- 承擔(dān)風(fēng)險(xiǎn)。即使第一次您感到擔(dān)憂(yōu)或者失敗,也要相信您的團(tuán)隊(duì)可以從失敗中總結(jié)經(jīng)驗(yàn)。
- 讓你的過(guò)程變得有趣。如果頭腦風(fēng)暴會(huì)議變得更有強(qiáng)制性而不是具有創(chuàng)造性的思維,那么沒(méi)有人會(huì)喜歡它(即使他們保持清醒)。
- 工作時(shí)嘗試適當(dāng)?shù)男菹?,這是一種建立員工間信任,并鼓勵(lì)他們愉快的分享他們的觀點(diǎn)和想法的方法,而并非是在感受到來(lái)自績(jī)效考核或者其他形式的管理壓力的情況下。
(2)注重過(guò)程,特別是對(duì)于大型項(xiàng)目
構(gòu)建一個(gè)新產(chǎn)品、新功能或新流程是一個(gè)令人生畏的過(guò)程。面對(duì)如此多的風(fēng)險(xiǎn),最重要的是有一個(gè)指導(dǎo)標(biāo)準(zhǔn)來(lái)幫助我們確保完成特定的工作。
同樣重要的是要記住,這個(gè)指導(dǎo)標(biāo)準(zhǔn) (或過(guò)程)不是固定不變的,而是可以根據(jù)項(xiàng)目適當(dāng)調(diào)整的。會(huì)有許多不同的指南,但它們的本質(zhì)都是一樣的:如果我們使用一個(gè)可靠的流程,它可以有效地幫助我們避免潛在的陷阱,如破壞范圍擴(kuò)大,更容易獲得隊(duì)友的支持。
(3)混合產(chǎn)品開(kāi)發(fā)有利于將團(tuán)隊(duì)凝聚在一起
混合產(chǎn)品開(kāi)發(fā)的關(guān)鍵是將內(nèi)部團(tuán)隊(duì)和遠(yuǎn)程團(tuán)隊(duì)有效的組合在一起。
正如我們?cè)诒疚闹兴懻摰?,擁有一個(gè)內(nèi)部團(tuán)隊(duì)是有一些明顯好處的。然而,如果你知道自己需要什么,以及如何正確管理遠(yuǎn)程團(tuán)隊(duì),將會(huì)比以往任何時(shí)候更容易招聘異地辦公的人員。在這兩種方法之間找到平衡,你就可以為每個(gè)職位雇傭?qū)I(yè)人才,并且不管這些人才身處何地,均可以讓他們參與到公司的項(xiàng)目中。
創(chuàng)新就是找到做事的新方法。
(4)敏捷開(kāi)發(fā)團(tuán)隊(duì)確保產(chǎn)品快速上市
混合方法應(yīng)該包括與敏捷團(tuán)隊(duì)合作。
下面是一些使用敏捷開(kāi)發(fā)團(tuán)隊(duì)帶來(lái)好處的例子:
- 因?yàn)槊艚輬F(tuán)隊(duì)是在傳統(tǒng)的公司層次結(jié)構(gòu)之外運(yùn)作的,所以他們不會(huì)被那些會(huì)阻礙內(nèi)部項(xiàng)目快速發(fā)展的約束所束縛。
- 敏捷團(tuán)隊(duì)習(xí)慣于一起工作,并且擁有快速開(kāi)發(fā)軟件的流程。
下面是一些你在使用敏捷團(tuán)隊(duì)時(shí)可能會(huì)遇到的挑戰(zhàn):
- 股東或者投資方很難理解該如何把需求和團(tuán)隊(duì)的工作流程,迭代周期進(jìn)行融合。
- 對(duì)于外部組織來(lái)說(shuō),讓他們放棄對(duì)項(xiàng)目的一些控制,并相信敏捷團(tuán)隊(duì)會(huì)有效地處理事情,這本身可能就是一個(gè)挑戰(zhàn)。
(5) 混合團(tuán)隊(duì)可能需要以不同于以往所有內(nèi)部團(tuán)隊(duì)的方式進(jìn)行管理
我們學(xué)到的一些重要經(jīng)驗(yàn)是:
- 不要試圖控制過(guò)程。這樣做只會(huì)降低效率,同時(shí)也會(huì)讓你的同事降低積極性。
- 提供一個(gè)框架,但是允許你的團(tuán)隊(duì)按照他們認(rèn)為合適的方式來(lái)解釋它。建議你提供一些指導(dǎo),但不要過(guò)于規(guī)定性,以免限制他們的創(chuàng)造力。
- 一定要解釋你想要達(dá)到的目標(biāo)——即使別人不了解你所在的領(lǐng)域,他們?nèi)匀豢梢酝ㄟ^(guò)分享其他領(lǐng)域或行業(yè)的經(jīng)驗(yàn)來(lái)激發(fā)新的想法。
(6)用戶(hù)是關(guān)于哪個(gè)項(xiàng)目值得進(jìn)行的最佳信息來(lái)源
你應(yīng)該傾聽(tīng)用戶(hù)的意見(jiàn)。他們可以給你快速的反饋,告訴你他們喜歡什么和不喜歡什么,幫助你決定哪些項(xiàng)目值得繼續(xù),哪些應(yīng)該放棄或重做。與用戶(hù)進(jìn)行遠(yuǎn)程協(xié)作是快速有效地分析用戶(hù)反饋的好方法(特別是通過(guò)視頻會(huì)議)。
用戶(hù)是關(guān)于哪個(gè)項(xiàng)目值得進(jìn)行的最佳信息來(lái)源。如果一個(gè)項(xiàng)目沒(méi)有被你的客戶(hù)使用,那將不太可能提供任何有用的信息——所以在向任何給定的項(xiàng)目投入太多資源之前,理解如何改善用戶(hù)體驗(yàn)是很重要的。
讓員工能夠方便地向您提供他們每天使用的工具。除了實(shí)施正式的反饋計(jì)劃,你還可以這樣說(shuō):“你對(duì)改進(jìn)我們的產(chǎn)品有什么想法?”或“您希望添加或刪除哪些功能?”,可以根據(jù)你的組織習(xí)慣使用的溝通工具建立一個(gè)匿名的Slack通道或電子郵件地址,創(chuàng)造一種文化,在這種文化中,任何人都可以不加評(píng)判地發(fā)表自己的意見(jiàn)。
(7)找到將開(kāi)放式創(chuàng)新與其他方法相結(jié)合的方法如眾包
尋找與其他擁有互補(bǔ)技能、資源和能力的公司合作的機(jī)會(huì)。這通常比在內(nèi)部完成整個(gè)項(xiàng)目更有效。
建立項(xiàng)目,這樣你就可以與另一家公司協(xié)同工作,甚至只是與一個(gè)客戶(hù)或供應(yīng)商進(jìn)行合作。你會(huì)從他們的見(jiàn)解中受益,如果他們參與并提出了建設(shè)性的意見(jiàn),他們會(huì)更加盡力地促成這個(gè)項(xiàng)目。
不要認(rèn)為你的公司最適合在內(nèi)部解決所有問(wèn)題——想辦法讓外部合作伙伴盡早參與到這個(gè)過(guò)程中來(lái),幫助你制定解決方案,而不是你的團(tuán)隊(duì)自己可能提出的解決方案。不要害怕尋求幫助!
(8)新產(chǎn)品、創(chuàng)新和想法需要從大腦中的構(gòu)思盡快的落實(shí)并交付到用戶(hù)手中
當(dāng)你推出一個(gè)新產(chǎn)品、創(chuàng)新或想法時(shí),盡快進(jìn)入市場(chǎng)對(duì)你的成功是至關(guān)重要的?;旌袭a(chǎn)品開(kāi)發(fā)就可以幫助我們。
混合產(chǎn)品開(kāi)發(fā)是一種結(jié)合內(nèi)部開(kāi)發(fā)和外部開(kāi)發(fā)的方法。近年來(lái),它變得越來(lái)越受歡迎,因?yàn)樗菇M織能夠利用他們所需的特定專(zhuān)業(yè)知識(shí),而成本只是招聘新全職員工的一小部分。
雖然混合產(chǎn)品開(kāi)發(fā)可以用于廣泛的項(xiàng)目和計(jì)劃,但它最大的好處可能是,它為公司配備了正確的工具,以比以往任何時(shí)候都更快的速度推出新產(chǎn)品和進(jìn)行創(chuàng)新。
5.結(jié)論
決定哪種策略最適合您的需求取決于您和您的公司文化。如果一個(gè)公司有一個(gè)以工程為中心的產(chǎn)品開(kāi)發(fā)方法,那么混合方法可能會(huì)更好。初創(chuàng)公司可以從這樣的創(chuàng)新技術(shù)中獲益良多。
此外,物聯(lián)網(wǎng)趨勢(shì)還處于萌芽階段,可能需要企業(yè)采用敏捷方法,因?yàn)樗麄儗?duì)軟件的更新及該領(lǐng)域內(nèi)的技術(shù)變化均有依賴(lài)。
原文鏈接:https://dzone.com/articles/right-way-to-hybridize-your-product-development-technique
譯者介紹
趙青窕,51CTO社區(qū)編輯,從事多年驅(qū)動(dòng)開(kāi)發(fā)。研究興趣包含安全OS和網(wǎng)絡(luò)安全領(lǐng)域,發(fā)表過(guò)網(wǎng)絡(luò)相關(guān)專(zhuān)利。