为何程序员完成最后20%的工作需要的时间跟之前的80%一样多?
2014-11-11 00:00
204 查看
听过行百里者半九十吧。这句话在程序员的工作中同样适用,到底是为何呢?Matija用一个精巧的比喻揭示了个中道理。
其实这就好比在高峰期从郊外开车回市中心。前 80% 的路程很顺,高速嘛,可能两小时就走完了,但是到了城里,就走不动了,红绿灯,人行道,各种环线和菜鸟司机,可能两个小时还不够用的。
编程也是如此。最开始你要设计框架,给整个项目打基础,然后开始开发,几周或者几月之后,你完成了整个项目 80% 的工作,各种关键模块开始起作用了。
但是好戏才刚刚开始,当你准备好好打磨这款产品时,就会发现许多奇怪的 bug 冒出来了。比如:“喂,你知道这个程序在读取文件时拔掉 USB 线会崩溃么?”,“看起来是程序不想下载文件名里有感叹号的文件...”
这个时候,如果管理层下令要尽快搞定这剩下的 20% 的话,开发团队就得弃掉汽车,徒步越过最后几个障碍,只求按期到达地点,把车丢那不管了。也许能够按期完工,但是这种办法并不明智。
这篇文章被贴到 HN 上之后,引发了众网友的热烈讨论,大家纷纷表示感同身受。有一位朋友贴出了 Quora 上一个很精彩的问答:“为何软件开发的实际周期总是比预期的要长两三倍?”排位第一的回答真心机智幽默。
简单的说是这样的,软件开发同徒步旅游一样,可能你最初是计划在 10 天内走完 500 公里,但真走起来,你会发现路上碰到的问题层出不穷,每天走的里程数都在递减,团队士气也不太稳定,延期很多时候都是无可避免的。
其实何止是软件开发,做任何一款产品的历程大都如此。硬件项目也是做出原型简单,真正量产时会碰到各种问题,需要你耐下性子一个个解决,有时还得不断返工。魔鬼在细节中潜藏,要想达到尽善尽美,就得花额外的精力去雕琢那最后 10% 的部分。
相关文章推荐
- 为何程序员完成最后20%的工作需要的时间跟之前的80%一样多?
- 为何程序员完成最后20%的工作需要的时间跟之前的80%一样多?
- 用20%时间完成80%的管理工作
- 用20%时间完成80%的管理工作
- 用20%时间完成80%的管理工作
- 4程序员小飞原计划三天完成某个任务,现在是第三天的下午,他马上就可以做完。但是在实现功能的过程中,他越来越意识到自己原来设计中的弱点,他应该采取另一个办法,才能避免后面集成阶段的额外工作。但是他如果现在就改弦更张,那势必要影响自己原来估计的准确性,并且会花费额外的时间,这样他的老板、同事也许会因此看不起他。如果他按部就班地按既定设计完成,还要花更多时间在后续集成上,但那就不是他个人的问题了,怎么办
- vi :记忆20%的命令,完成80%的工作
- [找程序员代写推荐]1、拖地要30分钟, 只有一个拖把 2、擦窗要30分钟, 只有一块抹布 3、切菜要30分钟, 只有一把刀 假设只有以上工具才能完成工作时,完成此三件 工作需要两个人工作多长时间?
- 超时时间已到。在操作完成之前超时时间已过或服务器未响应。 (.Net SqlClient Data Provider)
- 超时时间已到。在操作完成之前超时时间已过或服务器未响应
- 超时时间已到。在操作完成之前超时时间已过或服务器未响应。
- "超时间时间已到。在操作完成之前超时时间已过或服务器未响应"的解决办法
- 完成迅雷搜索网站需要哪些工作
- windows无法结束这个程序,要完成操作可能需要更多时间??
- 使用数据集时错误:超时时间已到。在操作完成之前超时时间已过或服务器未响应。
- 专家级程序员需要多少时间炼成
- 在压力测试开始之前,你需要做哪些准备工作?
- 解决ASP.NET Web Applicatio超时时间已到.在操作完成之前超时时间已过或服务器未响应
- 超时时间已到。在操作完成之前超时时间已过或服务器未响应"的解决方法
- 把80%的时间放到20%重要的事情上面.