为什同胞们除了撸腾讯有什么手机游戏,就是撸手机呢?好闲啊!

为什么优秀的程序员既懒又笨
我认识到一个非常有悖常理的现象,优秀的程序员都是即懒又傻的。
因为懒,他才会写出各种各样的工具来替自己干活。因为懒,他才会想办法避免去写无聊重复的代码——因此避免的代码的冗余,消减了维护的成本,使重构变得容易。最终,这些由于懒惰激发出的动力而开发出的工具和最佳编程实践方法提升了产品的质量。
懒惰的程序员也因此变成了优秀的程序员。当然,这只是事情的一部分;从一个懒惰的程序员变成一个优秀的程序员,他/她会在学习如何能够永远保持懒惰时表现出惊人的不懒惰——也就是,什么样的软件工具能让自己干活更轻松,什么方法能避免繁冗,如何能让工作更容易的维护和重构。
其次,(我将用多一点篇幅来说明这一点,因为我发现这个观点比第一个更难接受。)优秀的程序员都是傻的。为什么?因为如果他很聪明,或他知道自己很聪明,他就会:
a)停止学习
b)对自己的工作不再高标准、高要求
第一点将会导致他不再努力的去发现新的技术,让自己工作的更快捷。第二点将导致他的代码变得难以debug,难以重构。在程序员和编译器无休止的战争中,程序员最好一开始就投降并承认是自己的错,而不是编译器的错(除非是关于字符编码问题,有些编译器确实有问题)。
但是,还有一个优秀的程序员必须笨的更重要的理由。为了寻找到更好的问题解决方案,他必须保持一个谦虚的心态,他必须跳出模式想问题。某种程度上,这会让他们回到小孩的思维模式;因从未经历“no”的打击而极具创造力。
相反的思维模式就不是那么具有创见性,会认为对现状了如指掌,会接受现状。可是又有谁知道多少你认为的不可能是真正的不可能?知道的越少你就会越激进。你开发的工具越好,你的产品就会因为它们变得质量更高。
我从工作中总结出,一个优秀的程序员,在从经理那里确认一个需求时,他需要以一个笨人的思维模式;他会从最简单的,孩子般的问题问起。他不会想当然的接受这个问题提供者提供的信息。在web开发中一个典型的交谈会是这样:
“昨天,一个客户说我们网站上的logo图片无法显示。”
“他重启浏览器了吗?”
“是的。”
“他重启计算机了吗?”
“是的。”
“他清空缓存了吗?”
“是的。”
“他用的是IE6吗?”
“是的。”
“他确信是没看见吗?”
“是的。”
“他是在电脑屏幕上看我们的网站吗?”
“是这样,他也许把它打印了出来。”
“不,看是盯着屏幕看的。”
“除了logo,他能看到网站上的其它图片吗?”
“什么?哦,我问问。”
为了说明我们的主题(这个故事完全是虚构的),我们假设客户真的关闭了浏览器的图片显示。也许是他儿子干的。不管怎样,如果你用“聪明”的模式思考,你很难找出这样的答案。所以这个程序员问的问题都不需要任何的编程知识。因为这是一个很傻的问题,所以只有傻办法才能解决。
数年前,我曾就因为我的一次更新而弄坏整个网站的事情进行了一此很长的电话讨论….事实证明是因为那个家伙把他的浏览器的CSS给禁掉了。从那时起,我就开始怀疑一切,而不是因为这样一个简单的事情而聆听一个半小时什么是代码质量的抱怨。最终,猜测是我的更新出了问题….只是一个猜测。如果你想解决问题,最好的方法是只听事实部分,不要听他们认为的可能的原因。
相似的,当同事问我:“这为什么不好用?”大多数时候是因为他们修改错了问题(例如,他想链接lib1,但他实际链接的是lib2,或事实上他根本没有链接任何lib)。当你向一个同事求助,尤其是编程问题,你一般不会告诉他更多关于项目的事情。当他问一些很傻的问题时,你潜意识里就会抵制回答,因为你认为你知道的很清楚,但事实上你并不是这样。
事情当然有另外一面。太笨也就想不出任何办法,做错事,解决不了任何问题。而太聪明的喜欢坐着计划好问题,但却很少行动。实用主义的程序员取其中。他知道,10次决策一次错误比起只有五次正确决定而另五次什么都不做要好的多。
这有点像一个关于蜈蚣的故事。蜈蚣很擅长使用它的100条腿一起走路。它从来没有想过它是如何能做到这些的。直到有一天,一个臭虫问他,“你是如何控制这么多腿走路的?你不觉得让它们按一定的节奏配合走路很难吗?”臭虫说完就走了,蜈蚣却仍然坐在那里思考,思考如何走路的,不解,甚至(此生中的第一次)有些担心了。从那天起,这个蜈蚣再也没能走一步。
所以,如果你想实现某个事情,不要想太多。当然,这也只是事情的一半….
分享这篇文章:
扫一扫二维码分享:
你也许会喜欢这些文章:
[英文原文: ]
对于这篇文章,你的反应是:
You had mail.
Paul read it, so ask him what it said.
本作品采用进行许可。
备案信息:京ICP备号 &&京公网安备00号
感谢你的参与互动。▲点击上方“
CocoaChina
即可免费学习 iOS 开发
原文链接:/article/10664-why-do-so-many-programmers-hate-agile
英文原文:/articles/why-do-so-many-programmers-hate-agile
在跟程序员聊天的时候,一提到敏捷开发,他们眼中出现不悦是再平常不过的事了。你想知道为什么吗?
他们消极的对待敏捷开发思想以及敏捷相关实践方法的原因是什么?有没有这种可能,他们认为导致方法失败的东西其实完全不是敏捷实践,而误会了敏捷的价值呢?
有这种可能性,但是团队成员认为他们只是敏捷教练的棋子。
管理上有一种趋势,要么引进独立的敏捷咨询公司,要么雇佣一个敏捷教练,监督团队中敏捷方法的实现和执行。有外部人员这一事实造成了团队与敏捷化因素的障碍,这也导致了我们与敏捷的隔离。
团队成员会觉得受到太多控制以及被管得太细微。尤其是每天的站会都会以谈论最近一段的时间完成了一点点工作量而结束。而这不是每日站会的预期目的。
太强的时间压力同样是有害的。团队成员觉得他们需要定期交付任务,而不是当任务都已经好了再测试。这种以时间为导向的方法可能导致质量受损。
经常有报告说,敏捷周期太短了,在写代码之前甚至没有时间整理所有的文档,更不用说写完代码再重头过一遍。然而,在巨大的时间压力下工作是不够的,开发人员还需真正知道的是他们只有一击而中的时间。
编程人员痛恨敏捷,只是因为他们是以错误的方式进行敏捷开发。但也有可能是你所带的团队成员不喜欢敏捷。在这种情况下,所能做的是等待敏捷在团队中变强,或者替换团队。
使用敏捷的人决定该做什么,在产品功能和外观上有发言权,在整体上可以对项目有把控。这是值得告诉你的员工的。
敏捷方法作为编程方法是由程序自己而不是项目经理想出来的
有没有可能设计出的敏捷和使用的敏捷的主要区别慢慢成为项目经理的领域而不是程序员的领域?如果这样的话,唯一的解决方案可能是让敏捷从项目经理中收回。
事实是,无论你选用哪种开发方法,在当今时代,你都需要注意不断变化的客户需求,根据客户需求不断迭代你的工作结果。
换句话说,不管你怎么称呼它,在某种形式上,你都在使用敏捷。
任何事情都有消极面。同样敏捷开发方法作为一种流行的开发方法,却得到所有人的喜欢,这也是不可能的。总是存在不满意的人,不是么?
所以,去尝试,个性化你的敏捷方法(敏捷宣言里只提到了一些基本准则,没有提到Scrum,sprint,每日站会),只有这样再决定你是不是需要用敏捷。
CocoaChinabbs
▲长按二维码“识别”关注
即可免费学习 iOS 开发
月薪十万、出任CEO、赢娶白富美、走上人生巅峰不是梦
-----------------
-------------
投稿邮箱:
本文来自微信公众账号提交,由微讯啦收录,转载请注明出处。
微信扫码 分享文章公众号:iTestqianduan
iTest是一款致力于解决前端测试痛的自动化综合测试平台,以简单高效为服务宗旨,提供了不写代码的UI自动化-AUI、多浏览器下的页面截图和JS检测-PMI、浏览器测试环境-MTE以及网页源码中的坏死链检测-PI。
感谢您阅读为什么很多程序员和IT公司讨厌敏捷开发? ,本文可能来自网络,如果侵犯了您的相关权益,请联系管理员。QQ:为什么敏捷开发不行_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
为什么敏捷开发不行
上传于||暂无简介
你可能喜欢

我要回帖

更多关于 腾讯大王卡用什么手机 的文章

 

随机推荐