為何軟體開發的實際週期總是比預期的要長兩三倍?

36kr發表於2013-10-25

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

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

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

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

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

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

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

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

相關文章