為何程序員完成最後 20% 的工作需要的時間跟之前的 80% 一樣多?


聽過行百里者半九十吧。這句話在程序員的工作中同樣適用,到底是為何呢? Matija用一個精巧的比喻揭示了個中道理。

其實這就好比在高峰期從郊外開車回市中心。前80%的路程很順,高速嘛,可能兩小時就走完了,但是到了城裡,就走不動了,紅綠燈,人行道,各種環線和菜鳥司機,可能兩個小時還不夠用的。

編程也是如此。最開始你要設計框架,給整個項目打基礎,然後開始開發,幾週或者幾月之後,你完成了整個項目80%的工作,各種關鍵模塊開始起作用了。

但是好戲才剛剛開始,當你準備好好打磨這款產品時,就會發現許多奇怪的bug冒出來了。比如:“餵,你知道這個程序在讀取文件時拔掉USB線會崩潰麼?”,“看起來是程序不想下載文件名里有感嘆號的文件...”

這個時候,如果管理層下令要盡快搞定這剩下的20%的話,開發團隊就得棄掉汽車,徒步越過最後幾個障礙,只求按期到達地點,把車丟那不管了。也許能夠按期完工,但是這種辦法並不明智。

這篇文章被貼到HN上之後,引發了眾網友的熱烈討論,大家紛紛表示感同身受。有一位朋友貼出了Quora上一個很精彩的問答:“為何軟件開發的實際週期總是比預期的要長兩三倍?”排位第一的回答真心機智幽默。

簡單的說是這樣的,軟件開發同徒步旅遊一樣,可能你最初是計劃在10天內走完500公里,但真走起來,你會發現路上碰到的問題層出不窮,每天走的里程數都在遞減,團隊士氣也不太穩定,延期很多時候都是無可避免的。

其實何止是軟件開發,做任何一款產品的歷程大都如此。硬件項目也是做出原型簡單,真正量產時會碰到各種問題,​​需要你耐下性子一個個解決,有時還得不斷返工。魔鬼在細節中潛藏,要想達到盡善盡美,就得花額外的精力去雕琢那最後10%的部分。


資料來源:36Kr

如果喜歡我們的文章,請即分享到︰

標籤: 程序員  20%  80%