为何工程师完成最后20%的工作时间跟之前的80%一样多?

2020-06-15    收藏841
点击次数:974

为何工程师完成最后20%的工作时间跟之前的80%一样多?

听过「行百里、半九十」吧。这句话在程式设计师的工作中同样适用,到底是为何呢?Matija 用一个精巧的比喻揭示了箇中道理。

其实这就好比在高峰期从郊外开车回市中心。前 80% 的路程很顺,高速嘛,可能两小时就走完了,但是到了市区,就走不动了,红绿灯、人行道、各种环线和菜鸟司机,可能两个小时都不够用。

写程式也是如此。最开始你要设计框架、为整个专案打基础,然后开始开发,几週或者几月之后,你完成了整个专案 80% 的工作,各种关键模组开始起作用了。

但是好戏才刚刚开始,当你準备好好打造这款产品时,就会发现许多奇怪的 bug 冒出来了。比如:「欸,你知道这个程式在读取文件时拔掉 USB 线会当机吗?」,「看起来是程式不想下载档案名称里有惊歎号的文件⋯⋯」。

这个时候,如果管理层下令要尽快搞定这剩下的 20% 的话,开发团队就得弃掉汽车,徒步越过最后几个障碍,只求按期到达地点,把车丢那不管了。也许能够按期完工,但是这种办法并不明智。

这篇文章被贴到 Hacker News 上之后,引发了众网友的热烈讨论,大家纷纷表示感同身受。有一位朋友贴出了 Quora 上一个很精彩的

问答:「为何软体开发的实际週期总是比预期的要长两三倍?」排名第一的回答以徒步旅行中间遇到的困难与阻碍,很贴切的道出工程师心中的痛。

我们计划从旧金山徒步旅行到洛杉矶,两地距离大慨 400 英里,
1 小时走个 4 英里,每天走 10 个小时,大概 10 天就能抵达目的地。
我们开心的打电话告诉洛杉矶的朋友,十天后不见不散。

收拾行囊好兴奋,不过,放大地图来看,呃怎幺长得这幺不一样,海岸线也太蜿蜒了吧!

照一天 40 英里的速度,大概过不了湾区一半,所以我们延长了两天。不管,上路吧!

正式上路之后,天杀的看看这小径,海水沙子阶梯小溪,还有时不时冲上岸的兇猛大浪,结果我们一个小时能走 2 公里就老天保佑了。好吧那我们一天多花 2 个小时走路总能弥补一点。

只是,走到半途朋友长水泡,没办法再行走了,帮他处理好伤口我们其他人也筋疲力尽,明天再说吧。隔天振作精神,结果⋯⋯这是什幺鬼呀!地图上没说有这该死的峡谷啊!

好不容易我们走了五天,总该有些进展吧,摊开地图一看,Holy Shit 我们甚至还没离开旧金山湾区!这趟行程大概得 x6 了,六十天总到得了吧。

我们一伙人为了要不要打电话通知远在洛杉矶的朋友,我们得再延长六十天争执不下,毕竟这太丢脸了。隔天再度踏上征途,但是,一条湍急的巨河阻挡在眼前,我感到一阵胃痛如绞⋯⋯

其实何止是软体开发,做任何一款产品的历程大都如此。硬体专案也是做出原型简单,真正量产时会碰到各种问题,

需要你耐下性子一个个解决,有时还得不断反覆修正。魔鬼在细节中潜藏,要想达到尽善尽美,就得花额外的精力去雕琢那最后 10% 的部分。

SOURCE: matvoz.com

相关文章  RELEVANT ARTICLES