文章翻譯自:Tips for Dealing with Developer Stress
作者簡(jiǎn)介:
Rich McLaughlin: Rich是Vertafore公司的高級(jí)軟件工程師。他也開發(fā)JavaScript游戲(像Zelda)母市,并在anonymous-function.com上不定期的推出前端方面的專題刚陡。
概要
本文歸納了程序開發(fā)人員日常面臨的幾種壓力耕赘,解釋了它們?cè)鯓忧治g工作的效率触创。我們將詳細(xì)講解如何識(shí)別壓力產(chǎn)生的根源颇蜡,以及如何管理這些壓力产上。
背景
這篇文章是由我和Erik Gillespie[1][2]合寫的撑蒜。我們?cè)诤芏喾矫孢M(jìn)行了合作歹啼,包括一些有趣的業(yè)余項(xiàng)目、業(yè)務(wù)理念推廣和史詩(shī)級(jí)的商業(yè)應(yīng)用等减江。我們遇到過很多壓力山大的場(chǎng)景--從企業(yè)級(jí)架構(gòu)的決策到上哪吃午飯(雖然后一種更近似于玩笑染突,但是有一類的壓力叫“決策困境”,它正是由于對(duì)一些基本的事情辈灼,比如吃午飯份企,難以做出選擇而造成的--所以看看還有什么吧)。我們嘗試過很多技巧來解決這些日常的壓力巡莹,并且挑選了一些我們覺得最有幫助的分享給大家司志。
作為軟件工程師,我們的工作總有非常大的壓力降宅。其中工作的核心就在于開發(fā)骂远,并且快速地開發(fā)。但假如壓力擊潰了你腰根,則快速開發(fā)何從談起呢激才?
當(dāng)以下情況發(fā)生時(shí),該怎樣盡可能高地維持工作成效:
- 產(chǎn)品經(jīng)理想添加更多的內(nèi)容
- 會(huì)計(jì)想削減開支
- 客戶有相互沖突的需求
- 開發(fā)人員想嘗試一切最新的、最偉大的東西
我們推薦你從“5個(gè)為什么”開始瘸恼。
5個(gè)為什么
“5個(gè)為什么”是一種能夠幫助你明確壓力來源的策略劣挫。通常地,當(dāng)倍感壓迫時(shí)东帅,我們會(huì)太過關(guān)注當(dāng)前的情緒以至難以縷清麻煩產(chǎn)生的根源压固。
“5個(gè)為什么”[3]是一種發(fā)現(xiàn)各種類型的壓力來源的好方法。它從陳述對(duì)某個(gè)問題的最初感覺或評(píng)估出發(fā)靠闭,然后不斷重復(fù)地問自己“為什么”五次帐我。多數(shù)情況下,你都可以通過這種方法更清晰地理解潛在的問題愧膀。
讓我們將“5個(gè)為什么”策略應(yīng)用到一個(gè)常見的工作場(chǎng)景中:
我:今天工作很糟糕拦键。
為什么很糟糕?
我:我要加班檩淋。
為什么要加班矿咕?
我:我沒有完成代碼的修改,本來我說可以準(zhǔn)備好用于明天的測(cè)試的狼钮。
為什么沒有完成代碼的修改?
我:我開了五個(gè)不同的長(zhǎng)達(dá)一小時(shí)的會(huì)捡絮,這些會(huì)議占用了我大部分的時(shí)間熬芜。
為什么剩下的3個(gè)小時(shí)不夠用?
我:本來是可以的福稳,但是在不同的會(huì)議間我只有15分鐘可以用來處理事情涎拉。
為什么你在會(huì)議間隙只有15分鐘?
我:會(huì)議超時(shí)了的圆。然后在檢查完郵件并記起我在做什么之后鼓拧,幾乎沒有時(shí)間做事就要準(zhǔn)備接下來的會(huì)議了。
這個(gè)最終的回答例證了四種常見類型的工作壓力中的一種越妈。為了搞清你處于哪種類型的壓力季俩,你可以嘗試著問:
- 你面對(duì)的問題是否涉及到還沒決定的選擇?
- 和你一起工作的其他人有不同意見嗎梅掠?
- 你是否覺得正處于不必要的忙碌之中酌住,總是在不同的任務(wù)之間來回切換,或者總是落后于自己的工作阎抒?
- 是不是有些事情你不喜歡做酪我?是它們很無聊呢,還是這些事情讓你的時(shí)間未被有效利用且叁?
讓我們思考得更深入一點(diǎn)都哭,并為這四個(gè)例子代表的壓力類型起個(gè)名字,然后看看處理它們的一些技巧。
壓力的類型
決策困境
開發(fā)人員每天都要處理無數(shù)大大小小的選擇欺矫。這些選擇囊括了從制定一個(gè)新產(chǎn)品的技術(shù)棧到命名一個(gè)函數(shù)纱新。所有這些小的行為都需要耗費(fèi)時(shí)間和精力,它們緩慢地消磨大腦制定決策的能力汇陆,直到讓人精疲力竭怒炸。這種壓力持續(xù)的削弱你的決策力,將你困于決策疲勞的漩渦中難以自拔毡代。我們?cè)趺纯朔@種特定類型的壓力呢阅羹?
減少選項(xiàng)
體會(huì)下面這副源于xkcd [4]的漫畫:
很多情況下,這幅圖都夸大其詞了教寂。但是捏鱼,想想當(dāng)你向柱形圖中添加一個(gè)策略C時(shí)會(huì)發(fā)生什么。你必須把策略C與策略A和B都進(jìn)行比較酪耕。如果再考慮一個(gè)策略D导梆,你就必須把它與先前的三個(gè)策略都進(jìn)行比較。顯然迂烁,大量的比較各種策略不是一種制勝策略看尼。
因此,我們的第一個(gè)竅門就是減少?zèng)Q策過程中需要考慮的選項(xiàng)或者變量的數(shù)目盟步。每消除一個(gè)選項(xiàng)藏斩,你就從將它與余下選項(xiàng)的各種比較中解放出來了。
比如却盘,或許你想在自己的應(yīng)用中引入一個(gè)JavaScript模板框架狰域。通過快速的檢索之后,剩下四種主要選擇黄橘。如果你能迅速地剔除哪怕其中一個(gè)(或許就是你們組員都沒有聽說過的那一個(gè))兆览,你都不用將其與剩下的三個(gè)模板庫(kù)進(jìn)行比較,這是多么的節(jié)省時(shí)間和腦力叭亍抬探!
邊做邊選
另外,構(gòu)造原型能夠很好地削減可能選項(xiàng)的數(shù)量帆赢。在功能實(shí)現(xiàn)的討論中跑題數(shù)小時(shí)是很簡(jiǎn)單的事驶睦。通過實(shí)際動(dòng)手構(gòu)造一個(gè)簡(jiǎn)單的原型或者樣本,而不是依據(jù)空中樓閣進(jìn)行決策匿醒,能夠更快的獲得答案场航。
你可以通讀已經(jīng)發(fā)表的所有文檔和博客,但有時(shí)候僅花費(fèi)30分鐘就能夠證明某些事情是否可行廉羔。構(gòu)建原型時(shí)溉痢,不要在意代碼質(zhì)量僻造;給自己設(shè)置一個(gè)時(shí)間限制,看看你能完成到什么程度孩饼。當(dāng)快到限定的時(shí)間髓削,做一個(gè)徹底的檢查。你能預(yù)見這種想法行得通嗎镀娶,或者你能發(fā)現(xiàn)哪些事情會(huì)使得工作無效率立膛、不切實(shí)際嗎?如果你發(fā)現(xiàn)這是在自尋煩惱梯码,那么吃一塹長(zhǎng)一智宝泵,然后轉(zhuǎn)移到別的選擇上去吧!
意見分歧
第二種主要的壓力來源是意見分歧轩娶。大多數(shù)開發(fā)人員都不是自說自話儿奶,無數(shù)個(gè)星期里,我們和同事待在一起的時(shí)間比和家人待在一起的時(shí)間更長(zhǎng)鳄抒。這種尋常的交流(有意無意的)會(huì)導(dǎo)致專業(yè)性的下降闯捎。再加上其他因素,就會(huì)導(dǎo)致不一致的看法许溅。一些解決此種壓力的技巧包括:
選擇性爭(zhēng)辨
我們很容易為了字面上的東西爭(zhēng)執(zhí)不休瓤鼻。但是某個(gè)函數(shù)叫"getUserId"或者"getUserID"真的很重要嗎?可能并非如此贤重。但是娱仔,太多時(shí)候人們會(huì)陷入這種微末的細(xì)節(jié)中(這種行為也有一種說法:“車棚效應(yīng)”[5]!)游桩。討論就此變得無效率,在這上面浪費(fèi)的時(shí)間比大學(xué)生們?cè)谀硞€(gè)莫名其妙的節(jié)日上浪費(fèi)的時(shí)間還多耐朴。即使你的意見或者選擇更合理借卧,也不能保證你會(huì)贏得爭(zhēng)論。那么就此作罷吧筛峭,有時(shí)候?yàn)榱顺掷m(xù)前進(jìn)你必須要及時(shí)止損铐刘。
投票表決
正經(jīng)話,對(duì)民主表現(xiàn)點(diǎn)熱愛吧影晓,因?yàn)槲覀兌紖⒓舆^那種為了尋求最優(yōu)解而不斷轉(zhuǎn)圈的會(huì)議镰吵。設(shè)置一個(gè)討論時(shí)限,到了點(diǎn)就把所有方案提交投票挂签,少數(shù)服從多數(shù)疤祭。形成了僵局?看下一個(gè)技巧點(diǎn)饵婆!
提請(qǐng)仲裁
找一個(gè)中立方勺馆,他并不需要是一個(gè)專家甚至是開發(fā)人員。找一個(gè)你能在五分鐘內(nèi)向他解釋清楚所有選項(xiàng)的人,看看他有什么意見草穆。引入這種新的視角甚至?xí)沟么鸢革@而易見灌灾。有時(shí)候,僅僅是把問題大聲地表述出來就足以幫你做出決定或者找到答案悲柱。
任務(wù)超載
晚上和周末總是在加班锋喜?這第三種壓力實(shí)在煩人⊥慵Γ看看下面這些內(nèi)行的解決方案吧嘿般,它們會(huì)幫你把私人生活從不時(shí)變成黑洞的工作中解救出來。
優(yōu)先處理
你可能會(huì)碰到兩種類型的優(yōu)先事務(wù):客戶方面需要優(yōu)先處理的工作(來自于你業(yè)務(wù)線的同事)和自己實(shí)際能夠優(yōu)先處理的工作直颅。如果你感覺在某些特性上花費(fèi)了過多的時(shí)間博个,但是這些努力卻不保證有價(jià)值,你就應(yīng)該跟你的項(xiàng)目或開發(fā)經(jīng)理談?wù)劻斯Τァ=?jīng)常被邀請(qǐng)參加各種會(huì)議盆佣?那么仔細(xì)評(píng)估一下與會(huì)的人員:你們組是否有水平相當(dāng)?shù)耐聟⒓恿藭?huì)議,并能夠做一個(gè)報(bào)告呢械荷?
將事務(wù)處理的情境最小化共耍,試著把任務(wù)切割清楚了再轉(zhuǎn)向下一個(gè)。這樣會(huì)幫著把它從你的任務(wù)表和腦海里剔除掉吨瞎,然后你就可以把注意力集中在下一個(gè)項(xiàng)目上痹兜。你也可以創(chuàng)造性的解決這個(gè)問題:嘗試著把所有會(huì)議壓縮到一周的某一天,鼓勵(lì)施行“不開會(huì)的星期一”颤诀,或者重新規(guī)劃日常議程字旭,讓這些會(huì)議連在一起。
留意每周的工作:如果你連續(xù)好幾天都要加班崖叫,要當(dāng)心衰竭的風(fēng)險(xiǎn)了遗淳,這會(huì)導(dǎo)致工作質(zhì)量十分之差。確保留一定的時(shí)間用來休息和自我革新心傀;要明白規(guī)定期限是用來幫你決定哪些事必須要做屈暗,而哪些可以留到明天再做。
弄清楚了再開始
開發(fā)人員不應(yīng)該對(duì)職場(chǎng)與期望的不相符而感到詫異脂男。在應(yīng)聘階段你就應(yīng)該預(yù)見性地問一些問題养叛,確保自己所期待的工作生活之間的平衡與實(shí)際相符。不要僅問些“典型的工作日”是怎樣的宰翅,而應(yīng)該明確的問清楚公司的關(guān)鍵時(shí)間點(diǎn)的頻次弃甥,以及這種時(shí)候員工是否需要輪流地隨時(shí)待命。
如果目下你已經(jīng)掙扎于工作上花費(fèi)了太多的時(shí)間而不能好好享受生活的狀態(tài)汁讼,跟你的經(jīng)理談?wù)劙膳似∧憧赡軙?huì)驚訝地發(fā)現(xiàn)你的老板也不愿意你勉力維持肮之。
工作停滯無聊
在你的職業(yè)生涯中,總有某些時(shí)候你不是在干著自己最喜歡的工作卜录。但那也是你工作的一部分戈擒。下面這些技巧會(huì)幫你能量滿滿地度過這段時(shí)間。
沉入進(jìn)去
從職業(yè)生涯的角度來審視一下這個(gè)問題:我們之所以選擇軟件開發(fā)艰毒,難道不是因?yàn)槲覀儫釔鬯鼏峥鸶撸客ǔ6裕业穆殬I(yè)最有吸引力的方面不是因?yàn)樗苜嶅X丑瞧,而是因?yàn)槲易龅哪承┦潞苡腥じ掏痢懠夹g(shù)博客、出席交流會(huì)绊汹,或者編寫一個(gè)有趣的業(yè)余項(xiàng)目都是沉浸到新事物中的好方法稽屏。將有趣的業(yè)余項(xiàng)目和乏味的任務(wù)結(jié)合起來,會(huì)使得那些乏味的任務(wù)更容易忍受西乖。
你甚至?xí)诠ぷ髦蝎@得接觸新事物的機(jī)會(huì)狐榔。嘗試日常工作以外的新事物是靈感和創(chuàng)造力的良好來源。把它們帶到工作中获雕,是吸引注意力并開展新的或是報(bào)酬頗豐的項(xiàng)目的好方法薄腻。
更進(jìn)一步
不管什么問題,你都不是第一個(gè)碰到它的人届案。認(rèn)真地找出問題根源所在庵楷,而不要只會(huì)以頭搶地。跟其他開發(fā)人員或者你的經(jīng)理談?wù)劜で笠恍椭沟摺]有人喜歡職場(chǎng)殉道者(“看尽纽,我是多么努力地依靠自己來解決問題啊童漩!”)--盡力尋找答案弄贿,如果長(zhǎng)時(shí)間沒有進(jìn)展就請(qǐng)人幫助一下吧。
現(xiàn)在我們已經(jīng)討論了一些開發(fā)人員常見的困難睁冬,記得回到工作中試著解決掉問題。我們談了對(duì)自己有幫助的技巧看疙,如果你也有一些管理壓力和注重效率的好點(diǎn)子豆拨,在評(píng)論區(qū)里告訴我們吧!
參考鏈接: