您的位置:首页 > 理论基础 > 计算机网络

有想像力的程序员才有未来 吴旻 泰岩网络工作室

2013-01-29 13:22 197 查看
有想像力的程序员才有未来

吴旻 泰岩网络工作室

同事向我诉说,网络某节点上有大量数据堆积,导致下游节点数据显示迟缓。

我赶紧找到具体开发人员,询问过程及原因。幸运的是,他还真了解这件事,而且知道不是一天半天了。他的解释是,那个节点服务器的网卡是百兆的,在数据量大的时候,会有数据发送不及时的情况。

我实证的了一下,他说的情况属实。一般的说,我们默认服务器都是千兆以太网卡的。前些日子我们新部署了一个节点,我们可能没意识到分给了我们一台百兆以太网的服务器。(百兆以太网卡,那得是几年前的服务器了呀?)

故事的精彩之处在于对这件事情的处理过程。我问那个兄弟,这个事情应该怎么办?显然,他还是有所准备的,他说:运维的同事说了,要么申请一台新的服务器,要么申请把百兆以太网卡更新为千兆以太网卡,但这都得走流程,需要时间。

我问他,那你的意见呢?从他知道这件事情好几天而没有任何行动来看,我觉得他的真实想法是保持现状,以免他麻烦。果然他的回答不出所料,他说:那就走流程呗。

他的回答既中规中矩,又官僚十足。走流程解决不了眼下的问题,还要引起一大堆事情。我笑着问,还有没有别的办法?

他沉默不语,表示他无可奈何,也表示他尽力了。



女儿3岁的时候,有一天全家在吃晚饭,她一个人在一边玩。我见卫生间的灯还开着,就对她说:姑娘,帮爸爸把卫生间的灯关了!说实话,那时我是成心难为她,她至少还差20厘米的距离才能够得到开关。

女儿乐于接受挑战,痛快的“哎”了一声表示答应,噔噔噔跑到开关下,伸手使劲够,却是够不着。结果老婆马上怒了,涨着脸向我吼道:她怎么够得着!老婆的真实意思是,姑娘摔倒了怎么办?

其实我也不知道怎么办,我的本意就是要给姑娘出个难题,等她把问题解决了,我的饭也吃完了。其实不解决也没关系,我本来也没指望她解决,我的更真实的目的是吃个安稳饭。姑娘有点事做,就不会上来抢东抢西,弄得大家每天吃饭跟打仗似的,还要防着姑娘不定什么时候上来捣乱。

既然老婆发怒了,我得平息一下,要不然真的就吃不好饭了!我很随口地说了一句,她会有办法的。

这一句话提醒了姑娘,马上噔噔噔跑进卧室,不知道翻了什么东西,又噔噔噔跑出来,手里抱着她的小凳子。于是全家人就目瞪口呆地看着她稳稳地站在小凳子上,“啪”的一声,把灯关掉了。很显然,我们谁也没有教过她这么做,我们谁也没想到她能这么做。

老婆冲过去抱起姑娘,使劲地亲,一边亲还一边说:宝儿,你太可爱了!你太可爱了!



缺乏想像力的程序员,喜欢用现成的方案去套实际中遇到的每一个困难留,如果不能解决,那他就无能为力了。其实程序员遇到的困难,许多都不是能套用现成方案解决的。用个比喻来说,水和火是不相容的,如果我提出个又有水又有火的需求来,崩溃的兄弟极可能是一片一片的:这怎么可能,你要么让我做水,要么让我做火,不可能既做火又做水!

我理解这些可爱的兄弟们,喜欢写程序,就是因为程序是确定的。出这么个矛盾的需求,实现是难为人。但程序员的核心价值,就是要用自己的想像力去创造性地解决实际当中的困难,哪怕许多时候仅仅是换个角度去想一想。



我明白,我的这个兄弟对应该怎么进行这种思维转换显然不在行。因为一个部署是多台服务器的,我提醒说,那其它服务器都运行正常吗?

他回答说,都正常,别的服务器都是千兆以太网卡的。

我继续提醒,那A服务器没有那么大的网络流量,可不可以和这台出问题的机器功能对调一下?仅仅相当于是把程序换台机器部署?

他回答说,可以。

那好,你去办吧。我说。

===========================伟大的分割线=============================

老婆是我心目中的“总理”,因为她“总是有理”!这对于女人算不上什么缺点,相信婚着的男人都明白。

老婆有理的逻辑大体如下:

1、错不在我;

2、你说话气人。

她用这个办法对付我,屡战屡胜!在和老婆大人又团结又斗争的生活中,我增长了无限的智慧。“错不在我”的种类有很多,比如“我忘了”,“我没时间”,“我心情不好”,“我有什么好处吗?”,“我不会”,“我就这样!”,“这太难了”,等等。“你说话气人”的意思基本上是认可了我的观点,但觉得我在处理方式上有问题,所以她不能负主要责任。

***嘛,大体如此。



工作中偶尔也会碰到“总理”级的合作伙伴,总归一句话,他的工作没完成或者没做好,那一定是有外因的。比如,“工作量太大呀”,“人手太少呀”,“被什么事给耽误啦”,“需求总是变来变去呀”,“其他人的工作没准备好没法往下做呀”,“我就是按你说的做的呀”。“总理”级的伙伴想表达的意思是,他/她是很想做好的,但没做好实在是因为有外部的原因,所以“错不在他/她”。干脆直接表达挣得太少,所以不用干那么多的,不时的也能碰到一个半个的。

我有时会向这样的合作伙伴表达一下,能不能想想办法。比如,“工作量太大”,可不可以想办法简化一下,“别人没准备好”,你可以先进行设计和写测试代码。没想像力的伙伴常常很直接,告诉我没办法,或者去一边休息了,然后装模做样地好像是在进行设计,其实什么都不是。

有想像力的意思是说,对一件事情的处理方式是多种多样的,一种不行一定还可以找到另外一种可行的方案。

有想像力的意思是说,困难一定会有,我们想表达的是我正在努力解决,而不是解决不了是因为有外因,所以“错不在我”。

有想像力的意思是说,世界是五彩缤纷的,不是非黑即白的,更不是零和的不赢即输。不光是“我”和“非我”,更是“我们”和“大家”。



想像力有时是和能力有关的。有次我问同事,实现某个功能换种方式行不行;同事很紧张的回答我,不这样做就会出错。他确实很紧张,看出来他碰了很多壁。我提出新方案他认为不可行,仅仅是因为他有些技术困难解决不了,其实与方案是否可行无关,但他会回答我“这个方案不行”,背后的理由是他试过了,而且失败了。然后,我和他一起来实现这个更高效的方案;最后,我们都笑了。

想像力有时候是和视野有关的。偶有同事不赞同我的方式,比如使用更先进的SVN功能。他的理由表面上是“我不知道,我不习惯”,背后的理由其实是“我不想知道,我也不想习惯,你看我现在没有使用,我的工作也照样没问题呀”。他实在想不出我的意见除了给他带来麻烦外,能有什么像样的效果。看在我也是“农民”的份上,也是如此的“安土重迁”,我就“以德服人”好了。

想像力有时候是和进取心有关的。同事拿给我一个设计方案,我有些皱眉,指出其中的一部分应该做出改变。他看了我一眼,回答我说:我同意你的观点,但从前的开发人员就是这么做的,因此,没必要做出改变。这位同事似乎比较喜欢安于现状,缺少进取的勇气。我说,那我们看看我们的竞争对手都是怎么做的吧。当我们找了我们竞争对手的产品看时,发现别人家都是按我们认为应该做的方式去实现的。那一瞬间我有点悲观,难道我们的企业文化真的是这么鼓励“不思进取”吗?



感谢在《有想像力的程序员才有未来》中给我回复的朋友们。其实到目前为止,我谈的都还是缺少想像力的事情。以后,我会多谈些我理解的想像力。

转自:http://blog.csdn.net/wmnothing/article/details/8532168
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: