0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一名努力工作的程序员和懒惰的程序员的区别

工程师人生 来源:网络整理 作者:工程师吴畏 2018-11-23 17:11 次阅读

当人们在进行一项体力工作时,你很容易评估他们工作的努力程度。你可以看到他们的身体动作,看他们流了多少汗水。也可以去看他们的工作成果:砖墙越砌越高,地上的洞越来越大。对努力工作的认可和奖励是人类一个非常基本的本能,这也是为什么我们对耐力运动如此着迷的原因之一。然而,在管理一些技术创造型的员工时,这种对体力上的努力工作的本能欣赏却变成了一个问题。高效率的知识工作者通常看起来并不像是在努力工作。

早在2004年,我还是个工作在一家有线电视公司计费和配置系统的初级开发者。像所有的大型系统一样,它由许多相对独立的部分组成,分别由不同个人或小团队负责。模拟电视配置系统和数字电视配置系统几乎是完全分开的,分别由不同的团队负责。

模拟电视团队已经决定在早期的微软Biztalk平台上开发他们的系统,由我们公司的四个伙伴和微软的一个团队共同开发,并负责在生产环境中运行。他们工作都非常努力,并且经常工作到夜晚,甚至周末加班。每个人都会放下自己正在做的事情去帮助解决产品问题,经常是几个家伙围在一张桌子周围,提出哪里可能 会出现问题以及如何修复这些问题的建议。他们的工作氛围非常活跃,仅凭这一点,任何人都能够看出,不仅是整个团队,而是他们每一个人都真的真的非常努力工作。

数字电视配置系统开发团队却是完全不同的。代码大部分是由一个叫戴夫的家伙编写的。我当时是这个团队的一名初级维护开发者。起初,我在理解代码的过程中遇到了很多麻烦,因为它并不是用一个很长的程序来包含所有的内容,取而代之的是许许多多小的类文件和仅包含几行代码的方法。我的几个同事都抱怨戴夫把代码搞得过于复杂。但戴夫把我招致麾下,并建议我阅读一些面向对象编程方面的书籍。他教给我设计模式,SOLID编程原则以及单元测试。不久,我便开始能够理解这些代码,而且我越研究它就越欣赏它的优雅设计。在生产环境中它周而复始的运行,没有出现任何错误。代码改变起来也相当容易,因此,实现新的特性并不困难。单元测试则意味着要保证生产环境中尽可能少地出现bug。

这样做的结果就是,我们看起来好像根本没有努力工作。我每天下午5:30准时回家,周末从不加班,我们也不会挤在一起去猜测一些失败的生产系统可能会遇到的问题。表面上看起来就像是分配给我们的任务一定是比分配给模拟电视团队的任务容易得多。实际上,两个团队的需求是非常相似的,只是我们拥有一个设计和实现地更好的软件系统,更好的支持基础架构,尤其是单元测试。

管理部门宣布他们将根据个人的工作表现加薪,当轮到我和老板谈话时,他说只有给那些真正努力工作的人加薪才算是公平,而我们的团队看起来似乎并不太关心公司的发展,不能和那些牺牲了自己的休息时间来工作的人员去比较。

这家有线电视公司是一个非常少见的实验室,你能够对好的软件设计和坏的软件设计、好的团队行为和坏的团队行为之间的效果有一个直观的比较。大多数组织并不能够进行这样的比较。你很难判断那些汗如雨下、工作到深夜并在周末加班、一直奋斗在一线的家伙是展示了他们在做一件真正复杂的系统工作时的伟大承诺,还是只是表明了他们的失败。除非你能够负担得起请两个或者更多的竞争团队来解决同样的问题,但是你永远也不会知道哪个公司会愿意这样做。相反地,那些整天朝九晚五、坐在角落里、看似花费很多时间浏览网络的家伙们呢?是只是因为他们非常精通编写稳定可靠的代码还是因为分配给他们的工作比别人的更简单?从常人的眼光来看,第一个家伙是在真正努力工作而第二个没有。努力工作值得表扬,而懒惰却是不好的,不是吗?

我认为努力工作的表象往往意味着失败。在一个高压,中断驱动的环境下,通常是不能够进行高质量的软件开发的。长时间工作通常也并不是一个好主意。有时解决一个困难问题的最好的方式就是停止思考,出去散个步,甚至最好去睡个觉,让你的潜意识去解决它。我最喜欢的书籍之一,是由20世纪一位领军的英国数学家G. H. Hardy撰写的《A Mathematician’s Apology | 一个数学家的辩白》,他在这本书里描述了他的日常生活:每天上午工作四个小时,然后看一整个下午的板球。他说一天中,超过四小时艰难的脑力工作是毫无意义并且徒劳的。

我想要对管理者说的是,应该根据结果及可运行的软件来评判人们的工作,而不是通过他们看起来的努力程度来判断。与直觉相反,你最好不要和开发者们坐在一起,这样你才能够对他们的产出有一个更好的、不受常规或直观指标影响的了解。远程工作非常有好处,你只能根据产出来衡量他们的贡献,而不是简单地看他们是否每天8小时都坐在桌前对着IDE噼里啪啦敲键盘,或者是否“热情地”围在彼此桌前提供“有效的”建议。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序员
    +关注

    关注

    4

    文章

    931

    浏览量

    29572
收藏 人收藏

    评论

    相关推荐

    薪资高、青春饭,是不是程序员=青楼?

    花期太短。技术迭代快,年龄大容易失业。 就这几年的互联网环境而言,不管是前端、Java、Android开发等等行业。已经感受到程序员不是太卷就是工作难找,薪资过低。以前高工现在拿着中低程序员薪资
    发表于 03-06 21:32

    感觉我国的程序员前景片灰暗,是这样吗?

    程序员也分为好几等,在现在看来大部分的Android、Java、前端等等开发。已经看不到希望了,很多人都在边缘挣扎;刚看到位Android开发者,过完年回公司就通知被裁;可见每年都会有很多互联网
    发表于 02-20 20:52

    1月18号“纯鸿蒙”千帆启航,程序员预备!

    Android”、与互联网大厂合作已达400+家、原生开发薪资岗位来看。鸿蒙对程序员来说无疑是条非常好的道路。 鸿蒙对程序员的影响 鸿蒙的出现,首先直接影响的是程序员。鸿蒙直接切割
    发表于 01-16 22:13

    程序员表白程序

    电子发烧友网站提供《程序员表白程序.rar》资料免费下载
    发表于 11-21 10:41 0次下载
    <b class='flag-5'>程序员</b>表白<b class='flag-5'>程序</b>

    程序员节 | 今年程序员们都想要的礼物竟然是……

    原文标题:程序员节 | 今年程序员们都想要的礼物竟然是…… 文章出处:【微信公众号:微软科技】欢迎添加关注!文章转载请注明出处。
    的头像 发表于 10-24 10:35 269次阅读
    <b class='flag-5'>程序员</b>节 | 今年<b class='flag-5'>程序员</b>们都想要的礼物竟然是……

    移植ARM DHCP服务器版本1程序员指南

    的, 大致了解DHCP服务器的作用。 这是为那些想要将ARM DHCP服务器移植到嵌入系统的程序员编写的。 这本书分为以下几章: 第章 导言 阅读本章, 介绍ARM动态主机服务器移植程序( DHCP
    发表于 08-18 06:46

    霓虹灯程序员指南

    如果您对ARM技术完全陌生,请阅读Cortex-A系列程序员指南,了解有关ARM架构配置文件和般编程指南的信息。 ·霓虹灯技术是ARM高级单指令多数据(SIMD)扩展的实现。 ·霓虹灯单元是执行
    发表于 08-17 06:32

    ARMv8-A霓虹灯程序员指南

    程序员,如固件、设备驱动程序或android内核开发人员•希望为基于Arm的目标设备优化库或应用程序程序员•非常热衷于Raspberry Pi爱好者本指南涵盖了如何开始使用Neon,
    发表于 08-08 07:25

    ARM系统跟踪Macrocell程序员模型架构规范1.1版

    ARM 系统跟踪大型电池程序员示范建筑规格V1.1 建筑规格
    发表于 08-02 10:11

    61.[程序员小飞]如何在3分钟内安装好数据库MySql和Navicat,简单又易懂

    程序员
    充八万
    发布于 :2023年07月20日 09:16:19

    Neuron C 程序员指南

    Neuron C 程序员指南
    发表于 07-04 20:48 0次下载
    Neuron C <b class='flag-5'>程序员</b>指南

    ISI 程序员指南

    ISI 程序员指南
    发表于 07-04 20:47 0次下载
    ISI <b class='flag-5'>程序员</b>指南

    打开 LNS 程序员参考

    打开 LNS 程序员参考
    发表于 07-04 19:50 0次下载
    打开 LNS <b class='flag-5'>程序员</b>参考

    LNS 程序员指南

    LNS 程序员指南
    发表于 07-04 19:49 0次下载
    LNS <b class='flag-5'>程序员</b>指南