据说大西洋上的冰山 90%是在水面以下,当船只靠近冰山的时候,其实水面以下说不定已经碰上了,当年铁达尼号就是这样撞到冰山的。冰山是自然现象,联想到社会现象也是一样,由于对一件事情的认识、参与程度不一样,认识的程度也不一样。这其实非常正常,人对客观事物得学习,才会得出主观得结论和看法。这就会产生争论,你要不要坚持自己的观点?如果你的观点经过验证是错误的怎么办?
从我们的一个实际项目说起。
有一家企业需要订购一款新的农业消毒液生产设备的控制器,对方看重了我们公司成熟的 A 产品,但是在 A 产品的基础上提出了新的需求,并且向我们提交一份需求文本。相关负责人将文本交给了我,我看了对方的需求,从技术上来说问题不大,于是就在内部文件上签字认可了。很快负责人和对方签订了开发合同,这个项目正式启动了。
在 8 月 10 号我接到了任务单,任务单的完成日期是 9 月 26 日,看到这个交货时间我非常差异,如果项目顺利进行的话,硬件在 8 月底或者 9 月初是可以制作完成的,剩余 26 天时间做软件部分,除去 6 天周末假日,20 天完成这个项目软件设计几乎不太可能。
我意识到需要立刻找领导汇报,软件设计需要更多的时间,因为对方已将提供需求文件,另外有 A 产品作为基础,需求非常明确。但是软件编写也是需要时间的,而且一个程序员每天能完成多少代码量是可以计算的,20 天时间无论如何加班也是无法完成的。
第二天早晨我一大早找到领导张总:
“张总,这个任务单是您制定的吧?”
“是啊。”张总回答得很自然。
“现在离 9 月 26 日只有 45 天,如果我们在 9 月初完成硬件设计,剩下 20 天做软件部分,这很难完成,所以我建议把交货时间定在 10 月下旬比较合适。”
“这款产品是在咱们 A 产品的基础上改进的,应该用不了那么太长时间吧。”张总反驳。
“即使不存在任何技术难度,但毕竟有那么多代码,工作量非常大。如果我们时间定在 9 月 26 日,无论任何是不能完成的。”我继续争取。
“在 A 产品的基础上设计,应该不存在什么问题,没这么麻烦!”张总坚持。
“毕竟软件需求、菜单、控制方式发生了很大的变化,没有太多可重用性,您考虑一下吧。”我重新强调了一下工作量。
“那么简单得东西,怎么会这么复杂?”
一听到这句话,我脑子翁的响了一下,我终于知道领导认为 45 天能完成的理由了。这件事情简单,那什么是复杂?我好半天终于问了他一个问题。
“您知道 A 产品代码有多少行吗?”
“不了解。”
“7500 行以上。”
“怎么那么多,我觉得只有几个模拟量和数字量显示,一两千行差不多了。”
“那是您看见的,硬件驱动 1K 左右,运行界面确实只有 0.5K。但是 A 产品有 12 个参数设定菜单,每个参数设定就有一个设定界面,另外还有故障保护等。这些您想过没,也许产品安装调试完成后,这些参数可能永远不需要更改。这些代码也许永远不会执行,但是这些代码总是存在的。产品经常运行代码只占到总体 5%至 10%左右,但 90%死代码是永远存在的。而现在仅参数就有 18 个,您算一下吧。”我继续解释。
“合同已经和客户商定了,如果延期可能会很麻烦,你加加班,赶一下时间。”张总有点不耐烦了,其实我也有点沉不住气了。
“IBM 公司的经验是一位合格程序员每天代码量 200~300 行,基本就是 200 行多一点。按照现在软件需求我估计代码量会超过 1 万行,20 天也就能完成一半,如果因为我的能力问题需要加班,我没有意见,但是我不能为一个明知有问题还不更改的决定买单。”我们的谈话结束了,张总认为非常简单得事情,而我认为根本无法完成,我们谁也不妥协。
第二天,我得到张总的通知,这个项目交给同事小习负责了,和我没有关系了。公司是按照项目考核我们的工作量的,失去这个项目意味着我的绩效会受到影响,但是我不愿跳进已经明确知道的陷阱里。小习没有参与 A 产品的设计,我该不该提醒一下?我考虑了好半天决定,主动找小习有点不合适,如果小习主动找我我决定明确告诉他实情。
在 9 月 1 号硬件设计完成了,小习向我索要 A 产品的软件代码,因为是我负责编写的,我告诉他,如果有不明白得地方可以问我。
二十几天时间很快过去了,硬件设计没有太多问题,虽然小习非常卖力,但是 20 天确实无法完成那么多代码的编写。中午饭小习和我同一桌,我怀疑他有话跟我说,因为小习是回民,我是汉民,吃饭还真凑不到一块儿。
“骆驼不够意思,你不愿意做的事情,踢给我,这回我算倒霉了。”小习向我诉苦。
“小习,不是我给你,是张总派给你的,现在完成怎么样了?”我不知道该怎么说。
“我感觉至少还需要一个月以上,但是张总催的太紧,搞得我头晕脑胀。”
我不知道该说什么,我总不能说我未卜先知吧。想了好半天,“事情已经这样了,和张总沟通一下,把时间延期到一个合理时间,不要老加班,我们得工作又不是计件,休息不好效率不高。”
“哎!下午找张总谈一下,也只能这样了。”小习无可奈何,“骆驼,张总当时让你负责,你为什么拒绝了?”
“哦!当时事情太多顾不上。”我只能找个理由。
“不是吧,如果你知道无法完成,而不告诉大家,那就太不够意思了。”小习有点责怪我的意思,我没有再说什么。
时间过的很快,国庆有 7 天长假后 10 月上旬就基本结束了,但是小习的工作还是没有完成。小习的专业水平也算不错。看来我原来估计 10 月下旬完成估计的还是有问题。
一天上午,小习来找我询问 A 产品的控制方法实现,一连两个月加班,小习非常累。
“骆驼,你当时接到这个项目时,和张总谈没谈这个项目的时间问题?”
“大概说了一下,怎么了?”
“张总当时说你太忙,把这个项目交给我,问我能不能按时完成,我感觉没有难度就答应了,你看看现在。。。。真是没法说!”
“为什么感觉没有难度?”我有兴趣了解一下小习接活时的想法。
“当时我感觉 A 产品非常简单,对方需求又非常明确感觉应该没有太大的问题。其实当我看到 A 产品的源程序时就感觉可能有问题,但是已经答应张总了,只好硬头皮硬上了。”
“小习,这样得项目我们单位随时都会有,这不是关系公司生死存亡的事情,要以平常心态对待。能完成就完成,不能完成提前告诉领导,领导会有办法的,不要把自己搞的那么被动。需要什么条件告诉领导就行了,让领导帮助你解决。”
“我感觉在 11 月底完成就不错了。”小习说的这个时间应该比较有把握。
“那你就在这个基础上再加一周,向领导申请一下延期吧,事实是客观的,必须客观面对。”我建议小习。
在 12 月的第一周,小习得项目完成了。因为比原计划延期两个月时间,项目奖金几乎就没有了。小习当然非常不高兴,星期五下班后请我吃饭,我同意了。
“骆驼,先干一杯,我有事情问你。”小习给我倒了满满一杯,我只好干了。
放下杯子,小习真得问我了,“骆驼,你当时不愿意做这个项目,是不是已经知道不可能按时完成了?”
我想说不知道那是不可能,小习猜也能猜到。“是的,我当时感到在 20 天时间根本不能完成软件得编写,所以建议张总更改计划。”
“张总说是你太忙才交给我,他没有说你认为时间不够。”小习有点不明白。
“事情都过去了,这些都不重要了。认真总结一下,以后注意就行了。”我只好安慰小习。
“骆驼,事情看起来挺简单得,你是凭什么判断根本不可能按时完成?”
“小习,我从来没有认为一件事情简单过。任何事情都有其内在规律。如果认为编写软件简单,那么造一颗原子弹也没什么复杂得,直接用中子打到铀中产生链式反应就可以了。说什么事情简单,只能说你对这件事情了解的深度不够。每天能完成多少工作量是一定的,估计一下总体需要工作量就可以得出总共需要的时间。”
“你是怎么估计总体工作量的?”
“根据历史经验估计大概,然后乘一个 1.3 系数,也就差不多。这个其实并不科学。但是也算一个参考。经历项目多了也就能估计比较准确。”
如果对一件事情了解到一定深度,就会发现每件事情其实非常复杂。如果您认为事情非常简单,也许可能您看到只是水面以上的冰山。
与非网原创系列,谢绝转载!
系列汇总:
摘要:骆驼曾将有一段失业在家的时光,无聊之余,他学习了 c 语言编程 ...
摘要:推荐一个新同事学习 C 语言,他说这本书讲得太肤浅,后来经过慢慢的琢磨,他觉得这本书其实很有价值 ...
摘要:老板一直不涨工资,于是小李提出了辞职,但是老板确让他薪水翻倍 ....
之二十五:工程师:别被“等我有钱了再 ...”这句名言给害了
摘要:偶然的一次机会别人送了骆驼一台咖啡机,骆驼一直想等买房子了再安装上喝吧,结果新房装修好的时候机器已经碎了 ...
之二十四:工程师的时间就像海绵里的水,挤挤就能接个“私活儿”
摘要:骆驼最近接了个私活,可是两个月过去了他却还没开始执行,因为实在太忙,公司忙,家里还忙,可是答应别人的事情总不能食言吧 ...
摘要:公司空降了一位马领导,天天很勤奋,早出晚归,还要大家都向他学习,骆驼变得更加忙碌了 ...
摘要:没有鼓励就没有动力,在公司里同样适用,如果你对员工的突出贡献视而不见,他们就会想别的办法 ...
摘要:产品说明书印刷成 10 页和 4 页的区别是什么?或许你会说省下很多客服电话,这位老板却说会省下很多钱 ...
摘要:可能很多人都有过城中村的奋斗史,那段时光收入低,但是内心充实,工作忙,但精神奕奕,因为心中有一个希望不断在呼唤,我要走出城中村,Fighting!!骆驼本次分享的是他在城中村的故事。
摘要:如果你遇到一位爱大声吼叫的老板会怎样?留下悉心指导,还是拍拍屁股走人?骆驼遇到的这位可是他的朋友 ...
摘要:梁程本来是程序设计的,负责公司的好几个项目,但是老板却一直让他亲自烧写程序,而且不见有让生产帮忙的迹象 ...
摘要:软件工程师和硬件工程师的职责分明,相互合作才能做出好的产品,但是如果硬件出问题了非要软件工程师解决会出现什么结果?
摘要:合作多年的公司忽然告诉我们要停止供货,原因是竞争对手开发了一款价格低廉而性能一样的产品,于是老板决定要我们开发一款同样的产品来和竞争对手竞争,等产品开发出来以后不料客户又有了升级版,我们继续死磕吗?
摘要:朋友想要按照市场比较成熟的产品设计一款类似的产品,随后紧锣密鼓开始设计硬件和软件,完成以后发现在细节上有很多缺失,这引起了我对产品细节的考虑 ...
摘要:朋友托我给他编写一本技术手册,我思量半天迟迟无法下笔,后来女儿拿着玩具过来让我帮她换电池,问我为啥不能从第二个句开始,我豁然开朗,可以从自己会的先开始,灵感慢慢积累 ...
摘要:上帝是一个推销员,她无时无刻都在想你推销各种机会,你只需要迈出一步就可以接住。机会在与把握,如果你不去把握,再好的机会也不属于你。从我同事小张和小李两个人的例子可以看出 ...
摘要:我的同学李华是家里的独生子,1995 年西安开始建设大明宫遗址公园,李华家刚好没在规划之内,于是一下子过上了小康的生活,说媒的踏破门厅,可是偏偏他母亲对姑娘的要求很高,最后 37 岁还没对象 ...
摘要:我同学讲了一个关于两个小和尚挑水的故事,不是大家听到的那个版本,如今我同学已经成了当地的企业主,这与给自己挖井有关,每个人都应该为自己挖一口井,以备不时之需 ...
摘要:公司新来的小伙儿问我应该选择从 M3 开始学习单片机还是从 C51 开始?我当然提议是 M3,但是他却担心没有 C51 的基础不好入门!那就从 M3 和 C51 的价格、市场发展趋势和占有率来分析一下吧 ...
摘要:由于公司规模的扩大和业绩的激增,公司计划提拔一些中层管理人员去北京总部任职,而这个名单里就有骆驼的名字,喜从天降,骆驼心情大好,可是在交接完工作之后的一次偶然事件让他失去了这次机会,而且工作也不得不换 ...
摘要:每天熬夜写程序,后来才发现一直是白天写晚上改,晚上写白天删,周而复始,效率低下。后来认识了公司里的李工,他每天的工作悠闲有序,看上去很轻松,后来才知道他的高招儿,多动脑少动手 ...
摘 要:由于母亲身体的缘故,骆驼将三岁的女儿从老家接到西安照顾,由于爱人的工作很忙,于是骆驼不得不肩负起照顾女儿的重任,从此周末再无闲暇,买菜、做 饭、整理屋子、带女儿出去游玩填满了他的生活,重负之下他想到了辞职,老板的挽留让他坚持下来,最后竟然发现自己多年的工程师职业病竟然好了 ...
摘要:公司小李由于技术功底扎实,在软件业务部受到器重,准备提拔为项目组长,后来因为随口接了朋友一个硬件设计项目而荒废了本职工作,最终看似简单的项目做了半年之久都没有实现,于是找骆驼请教 ...
摘要:公司接到一个大单,大家都眉开眼笑,可是到交货的时候却遇到了不可调和的难题,作为新手的我自然不受上司重视,该研究还是不该研究呢?
摘要:小李是我们单位的资深工程师,产品量产以后,小李的工作只需要维护即可,于是日子变得清闲起来,每天网络小说度日,有一天良心发现需要学习新知识,跟上技术更新的步伐,可是迟迟不肯开始 ....
摘要:老板的亲戚来公司上班,还是名牌大学的硕士,听说资历很深,可是不喜欢和人交流,拿出一个小项目做实践,一个很小的板子焊接了三天,后来他竟然问了这样一个问题 ...
摘要:老板的外甥保送了西安某大学的研究生,想趁暑假来公司实习,顺便学习点实际知识,于是老板把他托付给了骆驼,结果这小子基础知识没有,还不想踏实补充基础,好高骛远,只想一下子学到真本事 ....
摘要:一位参加工作 3-5 年的工程师,凭借目前的新技术,其工作能力可以达到工作 30 年的老工程师 90%的水平甚至超越。由此可见,年轻人凭借新技术完全可以挑战权威,可见新技术的爆发力 ...