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

标签: 程序员 工作 需要 | 发表时间:2013-10-24 12:15 | 作者:
出处:http://news.cnblogs.com/

英文原文: Let me tell you why the last 20% of work takes the same amount of time as the first 80%

听过行百里者半九十吧。这句话在程序员的工作中同样适用,到底是为何呢? Matija 用一个精巧的比喻揭示了个中道理。

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

编程也是如此。最开始你要设计框架,给整个项目打基础,然后开始开发,几周或者几月之后,你完成了整个项目 80% 的工作,各种关键模块开始起作用了。

但是好戏才刚刚开始,当你准备好好打磨这款产品时,就会发现许多奇怪的 bug 冒出来了。比如:“喂,你知道这个程序在读取文件时拔掉 USB 线会崩溃么?”,“看起来是程序不想下载文件名里有感叹号的文件...”

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

这篇文章被贴到 HN 上之后, 引发了众网友的热烈讨论,大家纷纷表示感同身受。有一位朋友贴出了 Quora 上一个很精彩的问答:“ 为何软件开发的实际周期总是比预期的要长两三倍?”排位第一的回答真心机智幽默。

简单的说是这样的,软件开发同徒步旅游一样,可能你最初是计划在 10 天内走完 500 公里,但真走起来,你会发现路上碰到的问题层出不穷,每天走的里程数都在递减,团队士气也不太稳定,延期很多时候都是无可避免的。

其实何止是软件开发,做任何一款产品的历程大都如此。硬件项目也是做出原型简单,真正量产时会碰到各种问题,需要你耐下性子一个个解决,有时还得不断返工。魔鬼在细节中潜藏,要想达到尽善尽美,就得花额外的精力去雕琢那最后 10% 的部分。

本文链接

相关 [程序员 工作 需要] 推荐:

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

- - 博客园_新闻
英文原文: Let me tell you why the last 20% of work takes the same amount of time as the first 80%. 这句话在程序员的工作中同样适用,到底是为何呢. Matija 用一个精巧的比喻揭示了个中道理. 其实这就好比在高峰期从郊外开车回市中心.

程序员编程需要多少个小时?

- - 搜索引擎技术博客
作者Krishna Kumar是一名软件开发者,曾多次发表过软件开发、程序、项目管理、商业管理等相关议题文章,原文来自《 How Many Hours Can a Programmer Program. 》现对此文进行编译,与开发者一起探讨如何合理、有效的管理好工作时间. Michael Arrington曾发表一篇 博文说,创业者必须加倍的努力工作,甚至不惜趴在办公桌上睡觉,这样才能成功.

程序员需要具备的职业素养

- - CSDN博客编程语言推荐文章
说起职业素养,可能大家脑子里马上反映出来的是西服领带公文包的精干白领形象,其实作为程序员来说,外在可能没有那么重要,更多的是内在职业素养,本期调查分享了两个研发小组的故事,让大家在统计数据的基础上进一步了解——什么是程序员需要的职业素养.     D公司是个在发展壮大中的贸易公司,由于业务发展员工从刚开始的10人两年内增加到150多人,管理上出现了沟通效率低、对员工工作难以监控的现象.

每一个程序员需要了解的10个Linux命令

- - 极客521 | 极客521
码农网原创翻译,转载请看清文末的转载要求,谢谢合作. 作为一个程序员,在软件开发职业生涯中或多或少会用到Linux系统,并且可能会使用Linux命令来检索需要的信息. 本文将为各位开发者分享10个有用的Linux命令,希望对你会有所帮助. 以下就是今天我们要介绍的Linux命令:. 接下来让我们逐一来详细介绍.

程序员需要了解的硬核知识之CPU

- - SegmentFault 最新的文章
大家都是程序员,大家都是和计算机打交道的程序员,大家都是和计算机中软件硬件打交道的程序员,大家都是和 CPU打交道的程序员,所以,不管你是玩儿硬件的还是做软件的,你的世界都少不了计算机最核心的 - CPU. CPU 的全称是 Central Processing Unit,它是你的电脑中最 硬核的组件,这种说法一点不为过.

为什么美国程序员工作比中国程序员工作轻松、加班少?

- -
美国程序员工作比中国程序员工作轻松、加班少总体来说是事实,但都归结到美国程序员效率更高,制度更好之类就过于片面了. 我觉得主要原因在于别的一些地方,例如加班的边际效用,程序员的生活习惯. 背景:我在 baidu(北京)和 amazon(湾区)都干过,微软研究院(北京)和 google 研究院(湾区)也实习过,因为目前做云计算和开源,所以也接触过很多公司.

程序员的工作环境与效率

- - 博客园_新闻
很赞同《Joel on Software》中 Bionic Office 一文所说,办公环境需要比大部分员工的家中环境更舒适. 否则老板只能招聘哪些还住在简陋公寓的员工,他们才有可能下班后情愿留在办公室继续工作. 我认为程序员的办公环境的几个条件. 程序员的办公桌最好可以并排坐下 2 人,以便 pair programming 或者 code review.

Java程序员在Google是如何工作的

- - ImportNew
在 Quora看到一个有意思的问题, Working at Google: What is it like to be a Java programmer at Google?,笔者对原文做了简单的编译,虽不能至,心向往之. 严格遵守“Google Style”,这份“Google Style”会有详细的文档清楚地告诉你如何编码(一开始你会觉得很痛苦,但是以后你会享受它带来的好处).

你的程序员是在努力工作还是在偷懒?

- - CSDN博客研发管理推荐文章
本文来源于我在InfoQ中文站原创的文章,原文地址是:. Mike Hadlow是一位资深软件开发者,同时也是EasyNetQ与Suteki Shop的作者,喜爱历史与科技,是一个技术极客. 近日,Mike就程序员工作效率、工作表现以及工作成果等主题撰写了一篇 博客,谈到了我们该如何看待程序员到底是在努力工作还是在偷懒这个问题.

程序员高效率工作工具推荐(必备工具)

- - CSDN博客研发管理推荐文章
一、 Xshell Xftp. 免费软件 Xshell 和 Xftp 都是 NetSarang 出品的优秀网络管理、安全传输工具. Xshell 是一个免费的安全终端仿真器,可以作为 SSH、TELNET 或 RLOGIN 的终端模拟,能够从 Windows 平台安全连接 Linux 服务器,Xftp 则是安全传输客户端,支持 FTP 和 SFTP 协议,两者都支持标签化的会话窗口.