真的简单,还是盲目乐观?
真的简单,还是盲目乐观?
转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd
作者联系方式:Li XianJing <xianjimli at hotmail dot com>
更新时间:2006-12-19
今天看到网友我BLOG上的留言,他说, “这个没什么难的吧,其实就是个文件解析器嘛”。看了之后我不禁大笑,笑罢满面羞愧。何也?就在两周之前,我曾夸下海口说,这么简单的东西,不用一周搞定了。结果花了两周半,时间超期150%以上,要不是中途有高手指点,一定会花更长时间。如果一个小模块超期150%,你不觉得有什么大不了的话,想想一个项目超期150%是什么概念,下场可能是被项目取消,大家散伙。你说我能不羞愧吗?
倒不是我写程序能力差,如果用常用算法写程序,就速度和质量而论,我还是有一定自信的。就mmslib而言,包括设计文档、编码和测试,包括出席日常会议和一些意外事件,没有加一天班,平均每天写了400多行有效C代码(除去测试程序和头文件等)。就质量而言,每千行代码的缺陷,我想不超过5个(据说国外大公司的平均率缺陷为7/1000)。
如果你不再怀疑我编码能力,我想超期的原因只一个:盲目乐观。HTTP、WSP、SMIL、MMS封装和MIME等知识都比较熟悉了,解析文件也是我擅长的,但我没有考虑到意外因素:比如彩信通知的格式和Nokia的工具的问题,事后想来这只是两小个问题,而在当时一筹莫展。
这么简单的东西!这已经是我们的口头禅了。这是到底为了显示自己厉害,还是真的那么自信,亦或是盲目乐观?可能每个人的情况都不一样,但根据这些年的经验来看,盲目乐观占绝大多数。
在制订计划时,我们很少有人指出任务中可能存在难题和风险,只要认为可执行,就觉得很简单。而在完成任务的过程中,出现了这样那样的问题,一个内存错误BUG可能花掉你一天时间,一个小问题可能让你陷入绝望,这时才明白锅儿是铁打的,后悔当初牛皮吹大了。任务时间超期了,最终任务也勉强完成了,松了一气,但没过多长时间,好了伤疤忘了痛,又渐渐盲目乐观起来。周而复始,到现在为止,自己还没有改掉这个坏习惯。有次面试时,对方问我软件开发的难度在哪里,我竟答不上来:好像没什么难的。
我们不但对自己的任务的盲目乐观,对别人的任务更是如此。我们常常认为,为什么这么简单的东西,别人花了那么长时间,他们是不是比我们笨呢(偷着乐)?在现实中可能很少流露,而在网上这样口气并不鲜见。(这种满足感可以放松身心,有益健康,可取可取)。
其实软件的复杂性就像冰山一样,我们看的只是很小一部分。只有当你真正深入研究时,才知道有更多难题在等着你。只有当你接手别人的任务时,才清楚自己的份量。当我们在盲目乐观时,不妨回忆一下以前完成的任务:它们真的简单吗?我把它做好了吗?如果很简单,又没有做好,那就是值得思考了。
这么简单的东西!---还有很多事情值得我们思考。
~~end~~