在復雜的環境中,可以使用安全失敗實驗探測、感知和響應。你必須知道成功和失敗分別是什么樣子,為了應對潛在的失敗,你需要能夠抑制或增強探測的效果。安全失敗實驗可以幫助你處理風險和不確定性,了解并保留選擇的余地。
Liz Keogh是一名獨立的精益&敏捷顧問。在2017歐洲測試大會上,她談論了安全失敗。InfoQ正以Q&A、綜述和文章的形式對大會進行報道。
在開始階段,Keogh簡要介紹了Cynefin。她指出,大多數IT活動都處于一個你可以使用安全失敗方法的復雜領域里。對于這種方法,她在博文“面向開發人員的Cynefin”中介紹過:
在一個復雜的環境中,你探測、感知和響應。你安全地做一些可能會失敗的事情,那會讓你了解你需要作出響應的環境,并改變環境。這是高效反饋、風險與創新之地。
在這個領域中,由于我們探尋的結果一直處于變化之中,我們不能僅僅套用我們的專家實踐就期待著成功。我們必須根據我們了解到的情況修改我們使用的實踐方法。在這個領域中,我們有突發實踐。
敏捷選擇就是因為這個領域出現的。我們無法提前將一切都準備就緒,因此,取而代之,我們開始在我們的流程中創建反饋循環。
在InfoQ的綜述報道“使用行為驅動開發進行實驗”中,Keogh說明了如何測量復雜度并劃分成1到5五個等級:
5.以前沒有任何人做過;
4.其他組織的人以前做過(可能是競爭對手);
3.本公司的人以前做過;
2.本團隊的人以前做過;
1.我們都知道怎么做。
你可以將這些復雜度等級映射到Cynefin上。等級1屬于容易領域,等級2和3屬于復雜領域,而等級4和5屬于困難領域。
Keogh建議,我們從最新的、有風險的東西開始。這種方法可以幫助你在你和利益干系人之間建立信任,因為他們通常都擔心風險,并希望看到它們被解決。如果你的利益干系人不信任你,那么,Keogh建議,為了取得他們的信任,你可以出色的完成一項復雜度為3的任務,而不是復雜度為4或5的任務。
安全失敗探測需要一種機制,可以了解什么成功執行,什么正在衰退。按照Keogh的說法,因為你不知道將會發生什么,所以你必須能夠抑制或增強探測的效果。安全失敗不是要完全地避免失敗,但你需要能夠處理潛在的失敗。
早些時候,InfoQ采訪了Tiago Garcez,請他介紹了安全失敗實驗:
(……)在開始任何存在一定風險的活動之前,務必使用你知道成功什么樣失敗什么樣的受控實驗,那樣你就可以評估潛在的解決方案或者推進方法。這種方法可以避免高昂的失敗成本或者關鍵任務失敗,同時,它還提供了學習的機會(你是否用一致的方法構造了實驗)。
Keogh表示,在存在高度不確定性的場景中,提供一致性,而不是各種測試。在這種情況下,“測試”存在不確定性;它們是可能會發生什么的例子。但是,測試人員仍然要非常擅長提出這樣的例子,那種心態至關重要。
Keogh提到了Olav Maassen和Chris Matts在其著作“Commitment”中所描述的有關“真實選項(Real Options)”的工作。按照Keogh的說法,實驗是一種保留選擇余地的好方法。例如,當出現問題時,回滾就是一個選項。
Keogh還提到了Pachinsky原則:
發現新思路,嘗試新東西; 在嘗試新東西時,務必在失敗不易造成破壞的范圍內進行; 尋求反饋,并在這個過程中從失敗中學習。在總結她的演講時,Keogh提出了兩項尋找安全失敗方法的建議:
使用Cognitive Edge提出的“儀式性異議(ritual dissent)”,這是一種通過質疑檢驗和強化想法的技術; 如果你想知道某個東西是否是失敗安全的,就“請教測試人員”。測試人員在這方面非常擅長。查看英文原文:Doing Safe-to-Fail Experiments