• <fieldset id="82iqi"></fieldset>
    <tfoot id="82iqi"><input id="82iqi"></input></tfoot>
  • 
    <abbr id="82iqi"></abbr><strike id="82iqi"></strike>
  • 開發者指南:用編程方式克服對失敗的恐懼

    神譯局是36氪旗下編譯團隊,關注科技、商業、職場、生活等領域,重點介紹國外的新技術、新觀點、新風向。

    編者按:都說失敗是成功之母,但是真失敗了大部分人都覺得臉上掛不住,然后就想避免失敗,繼而害怕失敗,等到下一次失敗時就會更加羞愧,對失敗的恐懼從而變得更加強烈,最后陷進一個死亡漩渦。本文從一個開發者的視角提出了用編程的方式來克服對失敗的恐懼,希望能幫到你。文章來自編譯。

    劃重點:

    失敗這個東西總是會跟羞恥的情緒糾纏在一起

    失敗可以分為這三類:可預防的失敗、復雜型失敗、創新型失敗

    適應失敗有三個步驟:對失敗進行規范化、了解失敗、擁抱失敗

    討論成功大家一般都是比較樂意的,但如果你問他們失敗的情況,他們就不大情愿分享了。

    有趣的是,失敗這個東西總是會跟羞恥的情緒糾纏在一起。不過,失敗卻是做出任何新穎的東西不可或缺的一部分,從失敗中獲得的教訓是任何其他東西都無法相提并論的。所以,不妨想想辦法,看看怎么更好地適應失敗,弄清楚為什么大家會害怕失敗。

    定義失敗

    首先,我們得定義好失敗。出于這個目的,我們用保留采用一個非常簡單的定義:嘗試做某件事但沒有成功。

    雖說這個定義是有效的,但不是所有失敗都一樣。有很多不同的辦法可以對失敗進行分類。簡單起見,我會把失敗分成這 3 類。

    可預防的失敗:你本來具備有知識和能力預防失敗的發生,但失敗還是發生了。

    例子:你推出了一項功能,然后意識到這項功能不適合特定套餐的客戶,即便這已經是常識了。

    這類失敗的好處包括有機會可以調整當前的流程。

    這種類型的失敗給人的感覺是最糟糕的,因為它不屬于新事物那種類型。我們要避免犯這種類型的錯誤,但也可以從中吸取教訓,學會在今后避免這種失敗,然后繼續前進。檢查表與自動化測試非常適合防止這種情況發生。

    復雜型失敗:內部和外部因素都湊到一起了,從而以一種新的方式產生失敗結果。

    例子:兩項服務上線,同時上線給某共享資源帶來了壓力,導致資源崩潰。

    此類失敗的好處包括:

    調整當前流程與防止錯誤繼續向前的機會

    對系統及其運作方式有了全新的認識

    這種失敗也許可以預防,但是如果一方面還想著要快速行動的話,就很難為每一種極端情況都做好準備。發生像這樣的失敗時,你可以從中學習并成長。比方說,在上面這個例子里,你可以在將來更加關注這種資源,增加它的容量,或者甚至重新評估整個架構。

    創新型失敗:當答案沒法提前知道時出現。因為你以前從未遇到過這種情況,也許今后永遠也不會再遇到。

    例子:你推出了一項全新的功能,而用戶根本就沒接觸過。

    此類故障的好處包括:

    創新、變革與反思的機會

    有機會學習到以前學不到的東西

    這種失敗應該是你想要的那種。因為它是新的、令人興奮的,而且最重要的是,這種失敗讓你有機會學習以前學不到的東西

    創新往往會發生在這種地方。當然,也許有辦法防止這種類型的失敗。你本可以多跟用戶交流,你本可以多分析一下數據,但最終你還是選擇冒險,你從中學到了一些東西。你還有更多的問題要提出,比如說‘為什么用戶不參與進來?” 你還可以改變自身的工作理論。

    對我來說,進入這個失敗領域永遠要比光是想“如果這可能是下一個大事物會怎么樣?”但從不去嘗試要好。

    總結:

    三類失敗

    現在我們對失敗是什么以及失敗的各種形式已經了解了。那怎么去適應它呢?就像做軟件一樣,讓我們采取循序漸進的方法。

    對失敗進行規范化

    了解失敗

    擁抱失敗

    對失敗進行規范化

    為了適應一個東西,它必須是我們熟悉的東西。因此,要讓失敗規范化,我們必須先熟悉失敗。

    每個人在人生的某個階段都會遭遇失敗。你第一次嘗試走路的時候會摔跤。你第一次學習閱讀時,你會被單詞給難住。知道自己可能會遭遇失敗也有能力戰勝失敗就行了。其實你已經一次又一次地這樣做過了,只不過也許你已經忘記了。不過,這些是比較常見的失敗類型,而大家對它們的了解也更多些。

    app崩潰、引入新的bug,或者推出的功能無人賞識,這些是不太能夠接受的失敗類型,但這也是你成長過程的一部分。

    如果你想寫出華麗、干凈、架構好且經過測試的代碼,你猜會怎么著?為此你得先寫出一堆垃圾代碼。如果你把這個應用到任何其他的手工藝或藝術形式上——如演奏樂器、繪畫、寫歌等——第一次嘗試都會是垃圾。

    只要知道垃圾也沒關系就行了。繼續嘗試。失敗是這個過程的一部分。

    你還記得自己的第一個大的bug是什么嗎?不是 QA 發現或代碼審查時資深開發者指出的那種,而是投入生產后出現的那種?

    我會告訴你我的情況。

    我剛開始做軟件開發人員的時候,當時是在一家做車貸的金融科技初創企業工作。我寫了一個查詢,用來查找任何具有重復 VIN(車輛識別號)的車輛,然后在貸款批準流程把相關的車牌提取出來。代碼看起來大概像下面這樣:

    這次變更一經合并之后,我在 slack 上馬上收到了這條消息。

    貸款頁面加載不了了

    我當時害怕極了,同時又感到很困惑。這是我的工單,我的代碼,但我不知道我哪里出錯了。代碼已經通過了代碼審查,看起來也沒問題。

    那么,問題到底出在哪里?

    后來才發現,出于節省時間的考慮,一些經銷商會把帶偽車牌號(比方說0000000)的車列出來,然后在貸款達到某個階段后再更新車牌號。這么做是完全沒問題的,但我的代碼會把帶偽車牌號的每一輛車都找出來,導致頁面加載時間過長,從而基本上變得毫無用處。

    怎么改?添加限制。

    說實話,我第一次開始寫代碼的時候,并沒有想到性能和查詢限制的問題。在那之后,等我去到規模很大的公司,或者節省一兩秒鐘意味著會有更多用戶互動的app時,就知道始終要把性能放在第一位了。

    這是我必須學會的東西,失敗可以成為一位好老師。

    我還想強調我的團隊做出的響應。首先要修復錯誤,合并,然后討論失敗是怎么發生的。失敗最重要的往往不是失敗本身,而是你和周圍的每個人如何應對失敗。沒有責備,沒有“你早該知道的”,我也沒有為自己的錯誤感到羞恥。

    了解失敗

    我們已經介紹了如何去熟悉失敗。現在讓我們更深入地了解失敗以及失敗的對應物,恥辱。

    恥辱:

    “羞恥是一種高度厭惡的情緒體驗,與回避和退縮傾向密不可分。” (馬斯科洛&費舍爾,1995 年)”

    “當我們沒有達到自己的標準時,所產生的那種為自己更感到丟臉的感覺。” (H.B.劉易斯,1971)

    “未能完成任務或達到目標。” (M. Lewis & Haviland-Jones, 2000)

    “當一個人覺得自己正在變成自己討厭或害怕的那種人時。” (吉爾伯特,1998 年;奧吉爾維,1987 年)

    以上對羞恥的定義均出自科學文章。雖然說法因作者和出版物而有所不同,但有一點幾乎每個人都同意:

    羞恥是一種關系情緒(relational emotion)

    這意味著什么?你可能會因為腳踢到石頭而生氣,或者因為天氣變化而感到難過。但是羞恥感不一樣,因為你只能在跟他人的關系中體驗到這一點。如果沒有受眾或者我對受眾的看法,我就不會感到羞恥。

    “從這個角度來看,羞恥的功能是讓人把自我隱藏起來,避免被重要他人審查,從而最大限度地降低失去愛和被拒絕的可能性。” (McGregor & Elliot,2005)

    如果我們將上述措辭的含義外推的話,可以假設羞恥起源于部落時代的一種進化上的反應。換句話說,你感到羞恥后,會把導致你產生那種感覺的原因隱藏起來,從而避免被部落嫌棄,因為被嫌棄基本上就意味著死亡。雖然時代變了,但情緒對我們的影響仍然是出于本能。

    對失敗的恐懼

    一項科學研究把對失敗的恐懼定義為:“失敗時會感到羞恥的能力或傾向”(阿特金森 1957)。另一個則假設“相對于對失敗恐懼感低的人,對失敗高度恐懼的人在有了失敗的感知體驗后羞恥感會更強”(McGregor & Elliot,2005)。

    我們可以用羞恥/失敗循環來說明這一點。

    你做某事失敗了。

    你因為那次失敗而感到羞恥。

    羞恥是一種你不想經歷的,強烈的負面情緒,所以你想避免失敗。

    你害怕失敗。

    下一次再失敗時,你會覺得更加羞恥。

    你對失敗的恐懼變得更加強烈。

    此外,有一點不要忘記,要想讓你經歷第一次失敗時感到羞恥,需要有其他人(或你覺得其他人在)看著你。

    這是對害怕失敗的一種看法,我個人覺得這種看法還是比較令人信服的。像眾多的心理學一樣,這種恐懼其中一個可能的起源是童年,尤其是當父母對失敗高度敏感,但對成功的態度卻模棱兩可時(McGregor & Elliot,2005)。不過,在人生的任何階段也都可能會形成。還記得我們之前提到過的東西嗎?

    重要的不是失敗本身,而是你和你周圍的每個人對失敗的反應。

    好的,我們知道失敗是免不了的了,我們也知道為什么大家會害怕失敗了……那怎么才能坦然接受失敗呢?

    擁抱失敗

    如何擁抱失敗?一部分在于想辦法讓自己變得更有韌勁。

    那如何變得更有韌勁呢?

    對失敗要有大題小做的態度(De-Catastrophize Failure):我們遭遇失敗的時候,占主導的往往是這三種思維模式。

    私人化:都是我的錯。

    普遍性:錯誤是免不了的。

    永久性:現在一切都毀了。

    可是,我們還可以進一步檢視這些看法。其他人有沒有任何輸入或參與?之前是不是也曾出現過這種失敗?這種情況是不是一點挽救的余地都沒有了?

    弄清楚我們的大腦是怎么想的,了解我們對不自在的情況下可能出現的常見想法是什么,就可以為失敗做好準備,并坦然接受失敗。這不全是我們的錯,我們也不是老是失敗,一切都會好起來的。

    表現出同情心。假裝你正在安慰處在相同境地的朋友。你會對著犯錯的人說他們把一切都給毀了嗎?當然不會。別這樣對待別人,更不要這樣對待自己。

    事前分析:事前驗尸是在項目或計劃開始之前,個人或團隊想象失敗的情形,然后再反過來思考如何防止這些失敗的發生。

    事后反思:事件發生后,建立一份事件的時間表,圍繞著失敗是如何發生的以及防止類似事件繼續發生的辦法進行頭腦風暴。

    自問自答:為了給自己加油打氣,一種常見的做法是對自己說“我一定能行的!”,但有強有力的證據表明,質疑自己可能是更有效的做法。

    這就是對自己說“我能行”和“我行不行”之間的區別。如果你對自己提出的問題是“我行不行?”,你就得強化你行,而且有技能去做的事實。

    曾經有研究人員(Senay、Albarracin 與 Noguchi,2010 年)進行過一系列實驗,他們讓小組事先準備好問題或斷言。研究表明,事先準備問題的每次的表現都要更好些。提出這些問題是目標導向行為的激勵因素。

    構建心理安全:如果你想要冒險和創新,最重要的是要擁有一個失敗時感到安全的環境。構建起心理上的安全感很難,但非常重要。

    以下是有助于創建此類環境的一些建議。

    讓領導者接受脆弱。

    鼓勵同理心,在需要的時候讓團隊成員放心。

    建立反饋循環,讓每個人都有發言權并覺得別人聽進去了。

    組織活動讓大家分享他們自己的失敗。

    營造一個鼓勵大家嘗試新事物的空間,比方說黑客日或黑客周。

    結論

    我希望你暫時先別管軟件開發,不妨思考一下自己的人生吧。失敗會滲透到我們人生的每一個角落。你是不是曾經發表過或聽到朋友說過類似下面的內容?

    我不會做飯來拯救自己的生命,所以我只能點外賣。

    我不會唱歌,所以他們唱卡拉 OK 我就躲在外面。

    我跳舞很糟糕,所以我干脆不跳。

    這些說法背后是不是帶有對失敗的恐懼?他們都沒提到自己是不是喜歡做這項活動,光是說自己不擅長。這是不是羞恥感在作祟?

    我一直在講這個,就好像那是你一直都意識到的東西一樣,但其實你已經把其中的大部分都內化進潛意識里面了。也許你內心深處存在著恐懼,但你自己沒有意識到。

    我們不不妨重新審視一下失敗的原始定義:嘗試某事但沒有成功。就算你很可能會失敗,但我真的真的希望你至少去嘗試一下。請記住,你對失敗并不陌生。學說話、開車、做飯以及任何其他你涉足過的技能,你肯定在某個時候曾經失敗過。老話不是說了嘛,“初試不成功,努力勿懈怠。”希望你今天就去嘗試點自己感到害怕的事情!

    譯者:boxi。