除了能夠做增量式地功能交付以外,特性開(kāi)關(guān)還有另一個(gè)重要的用途。萬(wàn)一遇到未預期的負載過(guò)高,它們可以?xún)?yōu)雅地對在線(xiàn)服務(wù)進(jìn)行降級(degrade),比如通過(guò)關(guān)閉資源密集型的特性,如推薦引擎。另外,當發(fā)布出了問(wèn)題時(shí),它們也可以讓你馬上關(guān)閉存在問(wèn)題的特性,相當于做了一次回滾操作。
Conclusions
一種常見(jiàn)的軟件項目失敗模式是Don Reinertsen在他的書(shū)《The Principles of Product Development Flow: Second Generation Lean Product Development (Celeritas, 2009)》所說(shuō)的“large batch death-spiral”,而product owners為了試圖確保產(chǎn)品的成功,在項目進(jìn)行中,增加越來(lái)越多的范圍,從而導致成本顯著(zhù)增加,工期明顯拖長(cháng)。
持續交付讓團隊大幅度減少發(fā)布高質(zhì)量軟件的transaction成本,所以你可以更頻繁地發(fā)布,產(chǎn)品團隊從而能夠從用戶(hù)那里得到更加豐富和迅速的反饋。但是,反過(guò)來(lái),對于在整個(gè)軟件交付流程中如何管理工作流,你也需要改變一下思考方式。尤其強調的一點(diǎn)是,假如你正確地實(shí)施了持續交付,在用戶(hù)那里驗證新的主意時(shí),技術(shù)人員就不再是一種約束了。使用傳統的交付流程,則你不得不等上數個(gè)星期或都是數月,才能看到你的想法變成軟件。通過(guò)增量式交付小的功能,并收集反饋,我們可以持續思考:“下一步我們應用做什么?”沒(méi)有哪個(gè)團隊達到這種轉變后,還想再回到原有的工作方式上。
使用傳統的交付方法,我們必須細心地挑選我們想實(shí)現哪些想法,因為軟件交付的過(guò)程成本太高了。當然,那種審查流程也并不是基于真實(shí)數據的。然而,通過(guò)持續交付,我們就有了我的同事Darius Kumana所說(shuō)的一種 ”創(chuàng )新失敗的安全氣囊”。在系統 we can try crazily innovative ideas cheaply and safely at any stage in the evolution 演進(jìn)的過(guò)程中,可以用廉價(jià)且安全的方式嘗試那些異想天開(kāi)的創(chuàng )新想法,通過(guò)僅將其開(kāi)放給少量用戶(hù)組,緩解可能失敗的風(fēng)險。持續交付通過(guò)大幅度減少軟件發(fā)布的風(fēng)險來(lái)解放我們,把分析師帶回他們本來(lái)的位置——全力創(chuàng )新。
原文轉自:http://kjueaiud.com