现在网上一眼望去,有很多关于描述懒惰是优秀程序员品质的博客和帖子,有时候,程序员这个主角也会变成开发人员。在这里我想说一说关于这个程序员的懒惰问题以及讨论一下这是好是坏。
如果你对如何开发软件了如指掌,学东西又很快,并且孜孜不倦地从试验和错误中学习。有什么异常你能立刻采取措施,迅速刷新浏览器,查看方法是否奏效。
不行?再试!有时候,哪怕你已经懊恼得要捶墙,也不得不继续试验。(各位要是也有为 Internet Explorer 调试网站的经验,对此就深有体会了。)
成为一个软件开发人员就意味着,你需要做一大堆重复性的任务,而这正是懒惰这个品质滋生的土壤。那些厌倦于这种重复性任务的程序员立马会想到——可不可以建一个工具来自动执行呢?他们知道每一次修改代码之后如何自动刷新浏览器。他们会制作工具自动清理数据库和测试再次导入的文件。只要有模式存在,他们就能发现它,自动运作它。
很多时候,我发现那些需要使用软件内置的客户,因为总是手动处理一些重复性的进程,以至于他们自己竟然忘记了这种浪费时间和精力、效率又低的方法本身就是一个问题。
寻寻觅觅那个“懒惰”的程序员
如果你聘请的软件开发人员,能一下子融进团队的工作,明白当前遇到的困境,并且如果足够幸运的话,他甚至只需要几个小时就能快速提出解决方案。有时候方案会略显复杂,但是我不得不坦言,将工作流程放到 Excel 中通常并非一个长期的最佳解决方案。
如果你想要找到业务流程关于框架原型的解决方案,Ruby on Rails 是你的首选。它拥有所有你需要的任何工具,只需要几小时,就能建立起一个虽然略显混乱但是快捷的自动化进程。如果想要整洁一点,可以直接与业务流程相关。优化业务流程能让我们和我们的客户心情更愉悦,甚至可能产生的效益更高。
有时候我会觉得,懒惰的程序员,其实,更优秀。不过这并不是说,走捷径就一定是正确的解决方案。懒惰的开发人员知道,捷径终非长久之计。科学的规划能让人事倍功半,他们深谋远虑,思虑长远。他们的眼睛总是朝着远方。当然该走捷径的时候,他们毫不犹豫。有的想法一开始出来的时候只是一些片段,并不具体或者是基于某些假设的,那些所谓“懒惰”的程序员却会绞尽脑计地思考并且去尝试这些新鲜事物:测试、测量反馈、最后根据结果得出结论。如果,我们直接在假设的基础上去做软件,一旦需要重做,那将耗费更多资源。这种建议,我相信任何有脑子的人都会 pass 掉。
后期如果需要做任何改动,因为有着详尽又科学的规划,所以对于“懒惰”的开发人员而言就是小菜一碟。反而是那种“勤奋”的开发人员,因为过度设计,而把自己限制在了一个固定的思维中——程序要么不做,要做一开始就得有个上千个功能。这是个划时代的创举啊!我真是个天才!这些家伙如是想。可以最后却发现他设计的条条框框不能做到随着业务的改变而及时重塑。
所以如果你下次再听到别人说懒惰是一种可贵的品质,就不要吐槽了。懒惰在编程的世界不再是一个贬义词,而是一种夸赞!
英文原文: The Laziest Programmer In The Room
翻译作者:码农网 – 小峰