官术网_书友最值得收藏!

持續交付1.0關注于“從提交代碼到產品發布”的過程,如圖1-6所示,并且提供了一系列工作原則和優秀的實踐方法,可以提升軟件開發活動的效率。

1-6

圖1-6 持續交付1.0的關注點

但是,我在實際咨詢過程中發現,一些軟件功能在開發完成之后,對用戶或者業務來說,并沒有產生什么影響,有些功能根本沒有用戶來使用。可是,這些功能的確花費了團隊的很多精力才設計實現。這是一種巨大的浪費。這種“無用”的功能生產得越多,浪費就越大。我們是否可以找到一些方法,讓我們付出的努力對業務改善更加有效,或者只用很少的成本就可以驗證對業務無效呢?

2011年出版的《精益創業》一書給了我一些啟示。其核心思想是,開發新產品時,先做出一個簡單的原型——最小化可行產品(Minimum Viable Product,MVP),這個原型的目標并不是馬上生產出一個完美的產品,而是為了驗證自己心中的商業假設。得到用戶的真實反饋后,從每次試驗的結果中學習,再快速迭代,持續修正,在資源耗盡前從迷霧中找到通往成功的道路,最終適應市場的需求。

Eric Rise在書中強調,精益創業就是一個“開發—測量—認知”的驗證學習過程,如圖1-7所示。也就是說,把創意快速轉化為產品,衡量顧客的反饋,然后再決定是改弦更張,還是堅守不移。

1-7

圖1-7 “開發—測量—認知”環

該書主要關注于創業初始階段,將精益思想貫穿于產品“從0到1”的過程。事實上,它也可以用于產品“從1到n”的過程中。

1996年,Womack、Jones和Roos在《精益思想》一書中指出:精益思想是指導企業根據用戶需求,定義企業生產價值,按照價值流來組織全部生產活動,使價值在生產活動之間流動起來,由需求拉動產品的生產,從而識別整個生產過程中不經意間產生的浪費,并消除之。

在精益管理理論中,“浪費”是指從客戶角度出發,對優質產品與良好服務不增加價值的生產活動或管理流程。并指出,業務生產中所有活動都可以歸結為以下兩種活動,也就是增加價值的活動和不增加價值的活動,而不增加價值的活動就是浪費。在被歸類為“浪費”的活動中,又可以分為必要的非增值活動和純粹的浪費。必要的非增值活動是指從客戶的角度看雖沒有價值,卻可以避免(潛在的)更大的浪費或降低系統性風險的活動,如圖1-8所示。

1-8

圖1-8 軟件產品開發中的活動浪費

例如,生產流水線上的裝配工作是增值活動,質量檢查是必要的非增值活動,而因材料供應不足產生的生產等待以及因質量缺陷導致的返工都被認為是浪費。在軟件產品服務的全生命周期中,也同樣包含多種“浪費”,例如,無效果的功能特性、各生產環節中的等待(如圖1-9所示)、沒人看的文檔、軟件缺陷、機械性的重復工作等。

1-9

圖1-9 用戶視角的增值活動與浪費

盡管“消除所有浪費”幾乎是不可能的,但是,我們仍舊要全面貫徹“識別和消除一切浪費”的理念,持續不斷地優化流程與工作方式,達到高質量、低成本、無風險地快速交付客戶價值的目的。

自2009年Flickr(一個聚合全球知名熱門圖片分享網站)聲稱其網站每天部署10次之時起,“主干開發+持續集成+持續發布”已成為硅谷知名互聯網公司應對VUCA環境的一種主流軟件研發管理模式。這種變化的原動力并不是來自技術團隊本身,而是來自業務與產品方的訴求。為了在VUCA環境中更快地了解海量用戶,快速驗證大量業務假設和解決方案,他們改變了業務探索的模式,并催生了軟件研發管理模式的改變,兩種模式相互促進,從而形成了互聯網軟件產品研發管理的雙環模式,即“持續交付2.0”,如圖1-10所示。

1-10

圖1-10 持續交付2.0的雙環模型

“持續交付2.0”是一種產品研發管理思維框架。它將精益創業與持續交付1.0相結合,強調業務與IT間的快速閉環,以“精益思想”為指導,全面貫徹“識別和消除一切浪費”的理念,通過一系列工作原則與實踐,幫助企業以一種可持續方式,高質量、低成本、無風險地快速交付客戶價值。

對企業來說,開發軟件產品的目標是創造客戶價值。因此,我們不應該僅僅關注快速開發軟件功能,同時還應該關注我們所交付的軟件的業務正確性,以及如何以有限的資源快速驗證和解決業務問題。也就是說,不斷探索發現真正要解決的業務問題,提出科學的目標,設計最小可行解決方案。通過快速實現解決方案并從真實反饋中收集數據,以驗證該問題是否得以解決。這是一個從業務問題出發,到業務問題解決的完整業務閉環,簡稱為持續交付“8”字環。

它由兩個相連的環組成(見圖1-10):第一個環為“探索環”,其主要目標是識別和定義業務問題,并制訂出最小可行解決方案進入第二個環;第二個環為“驗證環”,其主要目標是以最快速度交付最小可行方案,可靠地收集真實反饋,并分析和驗證業務問題的解決效果,以便決定下一步行動。

探索環包含4個可持續循環步驟,分別是提問、錨定、共創和精煉。

(1)提問,即定義問題。通過有針對性的提問,找出客戶的具體需求,并找出具體需求后的原因,即具體需求后要解決的根本問題。在提問中形成團隊期望達成的業務目標或者想要解決的業務問題。如果問題無法清晰定義,那么找到的答案自然就會有偏差。因此,在尋找答案之前,應該先清晰地定義問題。

(2)錨定,即定義結果目標指示器。針對問題進行信息收集,經過分析,去除干擾信息,識別問題假設,得到適當的衡量指標項,并用其描述現在的狀況,同時討論并定義我們接下來的行動所期望的結果。

(3)共創,即共同探索和創造解決或驗證該問題的多種具有可行性的解決方案。

(4)精煉,即對所有的可行試驗方案進行選擇,找到最小可行性解決方案,它既可能是單個方案,也可能是多個方案的組合。

驗證環也包含4個可持續循環的步驟,分別是構建、運行、監測和決策。

(1)構建,是指根據非數字化描述,將最小可行性解決方案準確地轉換成符合質量要求的軟件包。

(2)運行,是指將達到質量要求的軟件包部署到生產環境或交到用戶手中,并使之為用戶提供服務。

(3)監測,是指收集生產系統中產生的數據,對系統進行監控,確保其正常運行。同時將業務數據以適當的形式及時呈現出來。

(4)決策,是指將收集到的數據信息與探索環得出的對應目標進行對比分析,做出決策,確定下一步的方向。

探索環就像是一部車子的前輪,把握前進方向。驗證環則像車子的后輪,使車子平穩且驅動快速前進。它們之間相互促進,探索環產生的可行性方案規模越小,越能夠提高驗證環的運轉速度;如果價值驗證環能夠提高運轉速度,則有利于探索環盡早得到真實反饋,有利于快速決策,及時對前進方向進行驗證或調整。

“持續交付2.0”是指企業能夠以可持續發展的方式,在高質量、低成本及無風險的前提下,不斷縮短持續交付“8”字環周期,從而與企業外部頻繁互動,獲得及時且真實的反饋,最終創造更多客戶價值的能力。下面逐一介紹縮短持續交付“8”字環周期的4個核心工作原則。

1.堅持少做

在咨詢的過程中,最常聽到的一句話就是:“我們最大的問題是人力不足。”無論公司實力如何,想做的事情永遠超過自己的交付能力,需求永遠做不完。然而,做得多就一定有效嗎?我們應該抵住“通過大量計劃來構建最佳功能”的誘惑,堅持少做,想辦法對新創意盡早驗證。

Moran在Do It Wrong Quickly一書中寫道:“Netflix認為,他們想做的事情中,可能有90%是錯誤的?!盧onny Kohavi等共同發布的文章“Online Experimentation at Microsoft”中也指出,在微軟,“那些旨在改進關鍵指標而精心設計和開發的功能特性中,只有1/3左右成功地改進了關鍵指標”。

正如當年Mike Krieger(Instagram的聯合創始人兼CTO)被問及“5個工程師如何支持4000萬用戶”時所說的那樣——“少做,先做簡單的事情”。

2.持續分解問題

復雜的業務問題中一定會包含很多不確定因素,它們會影響問題解決的速度和質量。在實施解決方案之前,通過對問題的層層分解,可以讓團隊更了解業務,更早識別出風險。企業應該堅信,即便是很大的課題或者大范圍的變更,也可以將其分解為一系列小變更,快速解決,并得到反饋,從而盡早消除風險。與其設計一大堆特性,再策劃一個持續數月的一次性發布,不如持續不斷地嘗試新想法,并各自獨立發布給用戶。

3.堅持快速反饋

當把問題分解以后,如果我們仍舊只是一味地埋頭苦干,而忽視對每項已完成工作的結果反饋,那么就失去了由問題分解帶來的另一半收益,確認風險降低或解除。只有通過快速反饋,我們才能盡早了解所完成工作的質量和效果。

4.持續改進并衡量

無論做了什么樣的改進,如果無法以某種方式衡量它的結果,就無法證明真的得到了改進。在著手解決每個問題之前,我們都要找到適當的衡量方式,并將其與對應的功能需求放在同等重要的位置上,一起完成。

某數據公司就曾因無度量數據,而無法提出有效改進方向的情況。該系統是一個數據標注志愿者招募考試系統。雖然它被分成多個迭代,每個迭代都發布了很多功能,但是,由于沒有實現產品人員所關注的數據收集與統計分析功能,使得團隊僅知道人們可以使用這個系統完成工作,卻無法知道是否能夠高效完成工作,也很難提出下一步的產品優化方向。

我們討論了“持續交付2.0”的指導思想、工作理念和核心原則。大家很容易意識到,它對適應快速變化的市場環境和激烈的市場競爭是非常有效的。那么,企業如何讓“持續交付2.0”成為一種組織能力,成為組織的DNA,持續發揮作用,從而領先競爭對手,成為自己的一種競爭優勢呢?

持續交付雙環模型的實施與改進將涉及企業內的多個部門與不同的角色,無法由某個部門獨立實施,必須在整個組織范圍內貫徹執行“持續交付2.0”的思想、理念與原則。企業需要在組織管理機制、基礎設施以及軟件系統架構3個方面付諸行動,而每一個方面都包含多項內容,如圖1-11所示。

1-11

圖1-11 持續交付七巧板

條條大路通羅馬,而且,羅馬也不是一天建成的。每個企業的實施路徑可能各不相同,所需要的周期也各有長短,對各方面的能力需求也不完全一致。正如中國傳統玩具七巧板一樣,每個企業都應根據自己的意愿和訴求,拼出屬于自己的持續交付實踐地圖。

主站蜘蛛池模板: 鄂尔多斯市| 东阳市| 阿巴嘎旗| 东港市| 盐池县| 莱西市| 义乌市| 北辰区| 新野县| 麻阳| 樟树市| 安阳县| 绥江县| 绍兴县| 玉树县| 武安市| 调兵山市| 灵山县| 泰和县| 望奎县| 佛冈县| 衡水市| 曲麻莱县| 甘南县| 西和县| 彝良县| 子长县| 章丘市| 全南县| 巩留县| 政和县| 图们市| 桑植县| 罗田县| 德保县| 石棉县| 太康县| 淮南市| 木里| 积石山| 渝北区|