我们要的是开发者,而不是hacker

我们要的是开发者,而不是hacker
作者:jayfields
译者:dazuiba


某网络广告公司需要招聘一个程序员,来帮助公司创建企业对外和对内的网站。于是,两个应聘者来面试。

面试官给出了一个任务:将一个Csv文件从一种格式,转换成另外一种格式。并要求应聘者在24小时之内完成。

第一个应聘者回到家,设计了一个简单而又令人惊奇的网站,用户可以同时上传多个文件,并且转换成功后,系统会通过SMS或者email的方式告知用户。
的确是一个很好用的软件。

第二个应聘者收到任务后,他接下来花了30分钟和相关人员谈论业务需求,他要搞清楚用户用何种方式使用这套软件,这套软件提供了哪些有价值的东西。问完他想问的问题后,CTO没有让他直接离开,而是当场给了Offer.

第二天,第一个应聘者只接到了“谢谢来面试,期望以后有合作机会”之类的电话。

程序员们都知道软件是为人开发的,你知道,我也知道。但是当我环顾四周,很少有程序员和用户交流。这貌似是不合清理的,但它的确大部分时间是这样,用这种开发方式,我们吃了很多亏。

Hacker们每天都生产出高质量的代码。这很好,如果没有hacker,我不可能有消息系统、web服务器、等等等等。至少我不会有这么多可选的软件。但是,即使你是一个好的hacker,但这并不能保证能对业务有用!

我经常会碰到这种事情:人们整理需求,但最终的结果已经离业务需要严重脱离。有两个途径可以解决这个问题
1 尽你最大努力把代码写好
2 好好和用户谈一下业务

Hacker总是会选择第一个,这并不一定会错。事实上,一个好的hacker总会足够快地讲软件交付使用,即使他推到重来三四次。

但是,作为一个开发者,应该在一开始就搞清楚这个软件到底是怎么被使用的。和用户多几次高质量的交流,会保证开发者理解业务如何运作,以及软件在其中扮演的角色。采用这种方式,更容易达成一个好的结果:软件为客户提供了一个好的解决方案,开发者也采用了最直接、高效的实现方式(比如:客户只需要一个命令行的csv转换工具,而不是一个websit)。

Hacker们创建一个website(浪费了时间和精力),而最终还会由客户买单。好的程序员用最快的方式满足客户,从而为客户节省了开支。

以上这个道理,不是我头个讲的,但是我经常碰到,所以就把它写下来。Kent back好几年前就讲过,最近一次是在今年年初的伦敦的QCon上(InfoQ上有相关的视频)。
不要觉得你是个写程序的,就可以不明白这个道理----只要你是在写软件,在写“给人使用的软件”。去看看Kent的演讲视频吧,他比我讲的透彻,看完后,你会想,是呀,这他妈的简直是真理呀,但是,环顾四周,大家都在这么做吗?如果答案是肯定的,你真幸运,你在和一帮优秀的同事共事。

猜你喜欢

转载自dazuiba.iteye.com/blog/221325