拿工资不仅仅是让你写代码的

本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划

这是我对团队每个新进员工说的第一件事情。这句话的意思是,我并不关心你是如何快速完成任务的,哪怕代码很差,只要它像救生艇通气门一样管用就行。这句话也是我最喜欢的座右铭之一。

这个说法其实很合理:我们的工作是思考客户提出的问题,然后制定解决方案。思考第一,代码第二,公司请我们的最终目的不是写代码,而是想出解决方案。

话粗理不粗。

付你薪水不是让你来思考的,也不是让你来写代码的,你的目的是交付产品。如果不能交付有效的产品给客户,那么你的知识,技能,态度,以及所有能让人成为高效程序员的特性又有什么意义呢?!

没有客户会说:“嗯,如果能用空格代替tab键表示缩进,那代码将更具可读性。”也没有客户会要求我们使用单向散列存储的密码,事实上他们可能听都没听说过。没有客户会强求我们想出所有可能的架构和平台,然后择优选用。更加没有客户会问及他们的项目使用的是什么代码标准。

客户不在乎代码,也不在乎架构,更加不在乎整个系统是否臃肿不堪。他们想要的就是解决他们的问题。

真正的难点在于权衡以下这两个极端:我们的工作就是写代码,亦或是认为,代码和产品这两个条件永远无法同时满足。

下面让我们认识两位新手程序员——Sam和Ted。ps:如有雷同,纯属巧合。

Sam是一名从刚从当地一所大学毕业的新员工,是个标标准准的学霸。她的面试和FizzBuzz测试表现都非常出色,现在她正式开始她的第一天程序员生涯工作(被聘用了!)。你,作为项目负责人,指派给她第一个任务。因为她才刚开始,所以任务并不难,你(作为一名有经验的开发人员)觉得大概一小时时间就能搞定,不过,你基于保守估计,认为她可能需要用一天的时间。

最终她花了一个星期时间!从第二天开始,每次检查的时候,她都信誓旦旦地说一切进展顺利,代码会写得非常完美。最后终于完成了,果然如她所说的那样:代码完美得像艺术品。但是,请注意,她花了一个星期的时间才完成了这项本应该不超过一天的任务。

现在,来说说Ted。

Ted和Sam同一天被录用。他的面试也很顺利,尽管他完成问题的速度非常快。你也给了Ted一个相对简单的任务:大概需要一天时间。

但是他只花了一小时!在你中午的休息时间,Ted就噌噌噌跑过来交任务了——瞧那骄傲自得沾沾自喜的样子,仿佛在一个劲说“求表扬,求给赞!”但是一看他的代码,就只能呵呵了:很多复制粘贴来的代码片段,乱七八糟的函数命名,组织混乱,雾里看花的解释,等等等等,就像一锅大杂烩一样,你不认识我我也不认识你。

你的团队更属意谁呢,Sam还是Ted?都不是。这两个实际上都不能提供真正的产品?他们一样糟糕:一个思考得太多,另一个则思考得太少。

所以,谨记这一点,付你薪水不仅仅是让你来写代码的,也不是仅仅只需要思考,你还需要开发出能够解决问题的产品。

对此,你的看法呢?欢迎各抒己见。

译文链接:http://www.codeceo.com/article/not-paid-coding.html
英文原文:You're Not Paid To Write Code, You're Paid To Deliver A Product
翻译作者:码农网 – 小峰
转载必须在正文中标注并保留原文链接、译文链接和译者等信息。]

发表我的评论

取消评论
表情 插代码

Hi,您需要填写昵称和邮箱!

  • 必填项
  • 必填项

网友评论17

  1. 我自身比较符合前者

    thsgar2015-05-14 17:08 回复
  2. 显然你的项目是做了就丢的那种,只不过从客户那里拿到酬金就走人。中国的GDP也就是这样创造的。

    avlee2015-05-14 20:14 回复
  3. 说的有点太绝对了吧,随便只顾产品的功能,不理会代码的可读性,那后续的维护工作你是准备交给你的下一任接班人还是你自己啊,至少这一点上有待商酌。

    haha2015-05-14 22:29 回复
  4. 外包

    屡屡2015-05-14 22:36 回复
  5. 制造垃圾吗?

    明子2015-05-14 23:12 回复
  6. 现实的情况是代码写的还算清晰,1天的任务用了2-3天

    dohkoos2015-05-15 02:57 回复
  7. 说的很好 代码多么完美只是一方面 代码清晰 功能使用可靠稳定靠谱 才是最重要的!

    ljc2015-05-15 08:56 回复
  8. 项目经理的主要职责就是管理项目的进度和质量 要辩论进度重要还是质量重要 我只能说都重要 二者需要权衡

    一首歌2015-05-15 09:23 回复
  9. 地球上不只有南北极和赤道,不要用这种谬论侮辱自己;不要做那种拿到“知乎”的需求之后去Google一个豆腐渣糊弄客户的小D。毕竟我们要专业。

    无语2015-05-15 09:39 回复
  10. 你这是出了bug调试都要把自己搞死的节奏么?

    nothing2015-05-15 09:59 回复
  11. 维持两者平衡

    D大调2015-05-15 10:47 回复
  12. 如果产品不用升级迭代,不用管后期维护,当然是不管代码写成什么样了.否则你如果不管代码写得好不好, 只管结果的话, 就去哭吧!

    阿天2015-05-15 11:47 回复
  13. 前人花了这么多的时间去研究项目管理,楼主怎么还站在没有项目管理的基础上去思考问题,

    看看2015-05-15 16:21 回复
  14. 可悲的是,头头只看我们代码的量

    下雨不打伞2015-08-13 22:51 回复
  15. 呵呵呵呵呵呵

    呵呵呵呵2016-02-05 11:12 回复
  16. 作者就是一个外包团队里面的项目经理,鉴定完毕。

    马照志2016-02-05 13:26 回复
  17. 代码的运行效率很显然也很重要。代码的可读性更不必说。扩展性当然也很重要。

    一潭止水2017-06-15 17:02 回复