如何走出問題的迷宮

如何走出問題的迷宮

??在我們生活和工作中,或多或少都會遇到一些非?!胺睆?fù)”的事,基于我們自身認(rèn)知的情況下沒有辦法一下就處理完畢??赡苁腔I劃一個(gè)完美的 party;可能是需要做一個(gè)面面俱到的旅行計(jì)劃;也有可能和我一樣,需要在工作中去解決一個(gè)”復(fù)雜”的問題。
??如果你用敲釘子的辦法去解決他們,那你很有可能會走入問題的迷宮。請跟著我一起看看,到底是什么樣的方法讓我成功走出重構(gòu)了這個(gè)“復(fù)雜”業(yè)務(wù)的迷宮。

Maze

問題來了

??那個(gè)時(shí)候我正在參與一個(gè)大型項(xiàng)目的第二階段。項(xiàng)目中核心業(yè)務(wù)的代碼實(shí)現(xiàn)邏輯與我們和客戶確認(rèn)的業(yè)務(wù)模型有一定的出入。需要將這個(gè)不匹配的模塊進(jìn)行重構(gòu)成和實(shí)際業(yè)務(wù)模型一樣。項(xiàng)目上的后端開發(fā)人員中,只有我一個(gè)人是擁有項(xiàng)目第一階段的所有上下文。這時(shí),我自告奮勇的去接受了這個(gè)重構(gòu)任務(wù)。

敲不完的釘子

??以我以往的經(jīng)驗(yàn)來看,這不過是重構(gòu)的時(shí)間稍長而已。一開始,我就想象著可以揮舞釘錘那樣去錘下那一個(gè)個(gè)翹起的釘子一樣把重構(gòu)就能完成了。
??但是事情接下來的發(fā)展出乎了我的意料。釘子們被敲了進(jìn)去,另外一邊剛敲下去的釘子又冒了出來,甚至出現(xiàn)了很多新的釘子。就這樣按下葫蘆浮起瓢,我埋著頭在被改的亂七八糟的源碼里面暈暈乎乎的搞了好幾天,重構(gòu)沒有一點(diǎn)進(jìn)展。這時(shí)候的心態(tài)也和這塊需要釘釘子的板子一樣,一片狼藉了。

Hammer

走出迷宮

??因?yàn)檫@幾天我都在做著同一件事,但是沒有任何的內(nèi)容產(chǎn)出。于是找到了 TL 溝通。我告訴他:“我先找到一個(gè)點(diǎn)去改,結(jié)果發(fā)現(xiàn)改了這個(gè)地方導(dǎo)致其他地方也需要改,然后我就這樣不停的改啊改啊,不知道改了多少次,也不知道還要改多少才能做完?!彼犕暌院蟾嬖V我:“你這樣去做比較簡單的事是沒有問題的,因?yàn)槭虑楹芎唵?,每個(gè)改動的邊界是可以感知和控制的。但用這種方法做看不到邊界,無法控制每次修改影響范圍的事。結(jié)果就會是做了很多,還不知道對錯(cuò),最后陷入進(jìn)退兩難的境地。好在我們其實(shí)是有方法去解決這種復(fù)雜的問題的,就是任務(wù)分解?!?br> ??緊接著,他一條條的給我講解了什么是任務(wù)分解,然后,我們一起通過結(jié)對編程的方式刻意練習(xí)了這種方法。

任務(wù)分解怎么做

  1. 將一個(gè)復(fù)雜的事情拆分成 N 個(gè)有明確目標(biāo)和范圍的的小任務(wù)
  2. 我們將這些小任務(wù)進(jìn)行優(yōu)先級排序
  3. 按排序的先后開始去一個(gè)個(gè)完成任務(wù)
  4. 在完成過程中會發(fā)現(xiàn)一些新的問題,先不要去解決他,我們把這個(gè)問題同樣當(dāng)成小任務(wù)放到我們的任務(wù)列表里面(我們往往就是在這里迷失了方向)
  5. 重復(fù) 3-4,直到我們把任務(wù)列表都完成通過使用任務(wù)分解,我把需要重構(gòu)的內(nèi)容,分解成了一個(gè)個(gè)范圍我們可以控制的任務(wù)。

沒想到比之前在“迷宮”中花的時(shí)間還短,就完成了整個(gè)重構(gòu)。


Tasklist

最后的一些思考

??一切美好的事物都是曲折地接近自己的目標(biāo),一切筆直都是騙人的,所有真理都是彎曲的,時(shí)間本身就是一個(gè)圓圈。

Curve

??復(fù)雜的問題我們通過任務(wù)分解的方式一步步的去曲折的靠近目標(biāo),一開始看到的筆直不過是在欺騙我們。當(dāng)我自認(rèn)為很快可以解決這個(gè)問題的時(shí)候,已經(jīng)迷失在了問題的迷宮中了。其實(shí)在我們平時(shí)接觸到很多實(shí)踐和方法論中都或多或少的出現(xiàn)了它的身影。比如 TDD 通過一個(gè)個(gè)功能點(diǎn)測試去完成整個(gè)功能;Scrum 中將一些大的問題拆分成了一張張 story 卡。
??如果,大家遇到了和我類似的情況,不如試一試任務(wù)分解,說不定你的問題就能一點(diǎn)點(diǎn)的解決掉了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容