工作中我們會(huì)遇到很多問題,特別是在軟件開發(fā)的過程中寂嘉,遇到的問題往往要更多遏暴。我們是怎么去解決這些問題的,我們的做法正確么衷模?你有沒有遇到過以下問題:
為什么有時(shí)候我們拼盡全力用盡聰明解決了問題鹊汛,但是反而遭到了上司的批評(píng)?
為什么我們明明盡職盡責(zé)工作很努力阱冶,但是上司認(rèn)為我們效率低下刁憋,完全達(dá)不到他的預(yù)期?
為什么項(xiàng)目和工程常常延期木蹬?
如果你不能很好的回答以上問題至耻,那么這篇文章會(huì)讓你受益匪淺!本文主要是為程序員所寫,但是理論上對(duì)于其他行業(yè)也是適用的尘颓。
對(duì)的是尖,今天我們要說的,是解決問題的方法泥耀。很坦白的說饺汹,大多數(shù)人在解決問題時(shí),并沒有在正確的時(shí)間做正確的事痰催!所以才會(huì)有上面那些讓人疑惑的問題兜辞。
本文主要觀點(diǎn)有七個(gè)。
一夸溶、我們正在解決的問題其實(shí)不是問題
如果做一件事有A方式逸吵,但是采用A方式后遇到了一個(gè)攔路虎,我們會(huì)陷入到解決問題的泥淖里缝裁,在里面浪費(fèi)很多時(shí)間扫皱,還不一定能解決。但是我們有沒有及時(shí)意識(shí)到捷绑,其實(shí)還有B方式也可以達(dá)到目標(biāo)韩脑。不否認(rèn),有時(shí)候我們花費(fèi)1天2天3天1周能夠解決這個(gè)問題粹污,但是如果我們采用B方式段多,我們可能1分鐘5分鐘10分鐘30分鐘就能解決這個(gè)問題了。如果認(rèn)真去算一下壮吩,這里的效率提升又何止100倍进苍?!
有一句俗語,也是一句笑話——“有困難要上鸭叙,沒有困難創(chuàng)造困難也要上”觉啊,這句話用在這里真是太貼切了。我們有沒有反思過沈贝,有時(shí)候我們是在給自己找麻煩杠人?當(dāng)陷入到問題里時(shí),我們其實(shí)在做什么缀程?對(duì)于大多數(shù)人來說——其實(shí)是在證明自己搜吧,證明自己聰明市俊,或者證明自己不笨杨凑。但是聰明和智慧是有區(qū)別的,聰明的人能解決問題摆昧,智慧的人能跳出問題看問題撩满。
所以,遇到問題不要馬上開始解決問題,還是應(yīng)該先認(rèn)真考慮怎樣去規(guī)避問題伺帘。做合適的選擇昭躺,選擇即妥協(xié),選擇即舍棄伪嫁,想想算法實(shí)現(xiàn)的“空間換時(shí)間”和”時(shí)間換空間”领炫,是不是這個(gè)道理?
二张咳、以任務(wù)為導(dǎo)向 VS 以目標(biāo)為導(dǎo)向
以任務(wù)為導(dǎo)向的人帝洪,眼里只會(huì)看到當(dāng)前的任務(wù),心里只會(huì)盤算怎么去完成任務(wù)脚猾,至于任務(wù)是為了什么葱峡,他們沒有意識(shí)也不愿去關(guān)注和了解,他們往往會(huì)陷入到解決具體問題的泥淖里龙助。
以目標(biāo)為導(dǎo)向的人砰奕,有全局觀,眼里看到的心里想到的都是怎么去達(dá)到目標(biāo)提鸟,達(dá)到目標(biāo)有幾種方法军援,哪種方法比較穩(wěn)妥不會(huì)遇到問題,一種方法遇到麻煩的問題時(shí)他們能很快速的切換到另一種方法称勋,他們往往能比較快速的達(dá)成目標(biāo)盖溺。
以任務(wù)為導(dǎo)向的人,會(huì)效率低下铣缠,達(dá)不到期望烘嘱,沒有長(zhǎng)進(jìn),始終原地踏步蝗蛙;以目標(biāo)為導(dǎo)向的人蝇庭,會(huì)極有效率,超過期望捡硅,升職去做管理哮内。你愿意選擇哪一種?
三壮韭、期望和優(yōu)先級(jí)
世界上最遙遠(yuǎn)的距離是——上司想要我們做成那樣北发,結(jié)果我們做成了這樣,上司想讓我們先做那些喷屋,結(jié)果我們做了這些琳拨。當(dāng)然,這和上司本身也有關(guān)系屯曹,但是和我們自身也有關(guān)系狱庇,這需要不斷溝通和互相確認(rèn)惊畏。
在搞清預(yù)期的情況下,合理的安排優(yōu)先級(jí)密任,會(huì)更有效率颜启。我們一般最好按照緊急程度、難易程度浪讳、任務(wù)切換成本來安排優(yōu)先級(jí)缰盏,緊急又簡(jiǎn)單的任務(wù)自然最先做,緊急而稍難的問題其次淹遵。開始完成任務(wù)時(shí)乳规,我們要優(yōu)先完成目標(biāo)的主要部分,以便問題盡早暴露合呐。
四暮的、成本考量
只要做事就是有成本的,包括時(shí)間淌实、人力冻辩、物力和財(cái)力成本。做事時(shí)要兼顧成本拆祈,譬如在項(xiàng)目早期恨闪,可以采用現(xiàn)成的解決方案哪怕不那么完美(譬如開源方案),這樣可以大大減少成本放坏,到迅速發(fā)展期時(shí)再及時(shí)考量之前的方案是否還適用咙咽,不適用再尋找新的方案或自己搞定。現(xiàn)在已經(jīng)是技術(shù)組合的時(shí)代淤年,合理的組合各種現(xiàn)成技術(shù)能創(chuàng)造極大的價(jià)值钧敞。
五、尊重客觀規(guī)律
古希臘物理學(xué)家阿基米德在洗澡時(shí)發(fā)現(xiàn)了浮力的原理麸粮,英國發(fā)明家瓦特在在英國格拉斯哥大學(xué)的草坪上想出了解決蒸汽機(jī)的有效辦法溉苛,德國化學(xué)家凱庫勒在夢(mèng)中發(fā)現(xiàn)了苯的環(huán)狀分子結(jié)構(gòu)。
這三個(gè)故事有什么共同點(diǎn)弄诲?
這三個(gè)故事告訴我們——?jiǎng)訖C(jī)水平愚战、問題難易和問題解決之間是有客觀關(guān)系的。如下圖:
動(dòng)機(jī)引發(fā)與維持活動(dòng)齐遵,對(duì)提高活動(dòng)效率有重要的意義寂玲,但動(dòng)機(jī)強(qiáng)度與活動(dòng)效率之間并不是線性關(guān)系。一般說來梗摇,動(dòng)機(jī)強(qiáng)度與活動(dòng)效率之間的關(guān)系大致呈倒U型曲線拓哟,即中等強(qiáng)度的動(dòng)機(jī),活動(dòng)效率最高留美。動(dòng)機(jī)強(qiáng)度過低或過高彰檬,均會(huì)導(dǎo)致活動(dòng)效率下降伸刃。
根據(jù)研究谎砾,每種活動(dòng)都存在最佳的動(dòng)機(jī)水平逢倍,這種最佳水平隨活動(dòng)的性質(zhì)不同而有所不同,并且具有明顯的個(gè)體差異景图。在比較簡(jiǎn)單的任務(wù)中较雕,活動(dòng)效率隨動(dòng)機(jī)的提高而上升;隨著任務(wù)難度的增加挚币,最佳動(dòng)機(jī)水平有逐漸下降的趨勢(shì)亮蒋。
當(dāng)我們遇到無法規(guī)避的難題時(shí),如果一直鉆牛角尖妆毕,對(duì)問題解決無益慎玖,最好先去做其他事,說不定你在做其他事的時(shí)候突然想到問題的解決辦法笛粘。因?yàn)樵诫y的問題越不能鉆牛角尖趁怔!
六、解決問題的方法
善用搜索薪前。
有可以使用的方案润努,不要重復(fù)造輪子。我們都會(huì)有強(qiáng)烈的創(chuàng)造和建造欲望示括。當(dāng)我們重復(fù)造輪子時(shí)我們?cè)谧鍪裁雌探剑课覀冊(cè)凇覀冞€是在證明自己,不要證明自己垛膝,要超越自己鳍侣!
善于提問。
善用工具幫助解決問題吼拥,譬如有些編程語言天然適合幫你做這種事拱她,比如python。
七扔罪、解決問題的程度
在歐美家庭里秉沼,家長(zhǎng)都會(huì)囑咐孩子要 just right。
just right 即恰到好處矿酵。
想想我們做的那些事唬复,過多的架構(gòu),不貼切和臃腫的基類全肮,過度抽象敞咧,多余的自以為是的擴(kuò)展性,是不是都違反了這個(gè)規(guī)則辜腺?長(zhǎng)此以往休建,我們總會(huì)為自己做的錯(cuò)事負(fù)責(zé)乍恐。
做到恰到好處就好!
原創(chuàng)文章测砂,轉(zhuǎn)載請(qǐng)注明出處茵烈。http://xiezhuangping.github.io/problem_fix.html