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