在开篇中提到了屌丝开发和高富帅开发之间有不同,这篇简单论述一下不同点之——屌丝们压力太大。
球迷都知道世界杯决赛不好看,那些平时怎么踢都挡不住的球星到了决赛就找不着门,有时要靠点球决出胜负,伟大的巴乔连点球都踢不进。为啥球星发挥失常?对的,压力。
作为开发人员,要面对时间压力、技术压力、需求不确定性的压力,所有这些都会让开发人员焦虑,进而为了赶进度想出各种各样的“办法”,埋藏下各种各样的错误。
尤其是屌丝软件公司,人手不足(更何况今年IT人荒),技术准备不足,客户难伺候,偶尔核心开发还得兼职做demo,跑售前。总之一句,压力山大。
笔者碰巧在私企和外企都干过,两相一比较,谁是高富帅,谁是屌丝立判:
高富帅工程师每天可以拿20%的时间研究项目外技术,屌丝开发能正点下班就不错了;高富帅公司可以用高薪挖来大把的牛人摆在那供着,屌丝开发每天都在赶鸭子上架,应付从未遇见过的难题;高富帅项目经理遇到技术瓶颈会停下来做技术分析,申请资源,而屌丝项目经理遇到了难题只能把最得力的开发叫道跟前,满含热泪的说:兄弟,这次全靠你了,我等着你的好消息。Orz…
在这种压力下,你还能不犯错?你还坚持可以自己考虑清楚需求、逻辑、设计,写出完美的无缺陷代码?醒醒吧亲,你不是神,也不是佛。开发人员如果真有那么威武,Visual Studio 和 Eclipse 这些IDE绝不会花那么多功夫做错误实时检测,你就算写过一千遍printf一样有可能敲出pritf,更何况需求、逻辑、设计乎?
对于一个医药企业的信息系统,在写第一行代码前,开发真的琢磨清楚FDA认证的细节了?
对于一个金融类系统,开发真的搞清楚那些财务报表,基础会计了?
为游艇制造商开发管理系统的屌丝,可能一辈子也没机会坐私人游艇出海玩一圈,这种情况下,你让他体会用户需求?
就在这种情况下,还有人(大部分供职于高富帅公司)叫嚣说,不需要专职测试工程师!诚然,一些对测试理解庸俗化的工程师,可能和开发之间有龌龊,但是这不是否定所有专职测试的理由:
我工作中接触到的测试,几乎都对需求和设计有更好的掌握,因为在开发堆代码的时候他们没有为淘宝做免费压力测试,而是在学习需求,维护文档;
我接触到的测试人员,他们虽然专职挑错,但是都和开发建立了良好的团队关系,因为他们挑错的目的不是为了自己的绩效,而是为了团队能做出更好的项目;
这些专职测试可能工作多年,连句javascript的alert都不会写,但这不妨碍他们成为项目经理最倚重的人之一,因为在上线最关键的那些天,来自核心测试人员的信息显然比开发人员的更可信。
俗话叫:摔盘子的总是刷盘子的。更何况,在屌丝开发公司里,最好的开发一定会被委派去刷最难洗的盘子,要替初级开发搞定刷不完的盘子。
7年前做开发的时候,在那个屌丝开发公司已经算经验丰富一点的“老手”了。因为不愿意再给oracle交钱,客户要把一个 jsp+Oracle 的网站迁移到 php+mysql ,在收尾阶段,我要为整个项目的数据做一个报表,涉及到一个规模比较大的存储过程。但是坑爹的是,原项目在设计时犯了错误,数据模式中有不该出现的“多-多”对应。
那个存储过程真的很难,那时的项目经理在看过需求以后把我叫去,满含热泪的说:兄弟,这次全靠你了,我等着你的好消息。Orz…
好在队伍里还有一个测试妹子,从头到尾盯着项目,对项目的结构和需求很熟悉。在开发到最关键的那天(第二天就要提交客户),她陪我一直加班到凌晨两点。我现在还记得那时的状态,大部分数据都已经正确获得,但是总有一两个不那么重要字段不能提取正确(写过存储过程的都知道,小的数据错误有可能是大的数据库理解失误造成的)。
每次我提交给她的版本都会被无情的打回来。到最后我既累又困,恍惚间都有冲过去把她掐死,然后回家睡觉的冲动。当然最后的结果,肯定是我克服困难,成功找到了缺陷,在截止时间之前提交了正确的代码(否则我也就不在这里晒了J)
多年以后,想起那个即累又困的晚上,仍然非常感谢那个测试妹子,因为我知道:当我手里拿着一个形状古怪,极其难刷的盘子,又累又困,已经有了放弃的念头,盘子眼看要掉地上摔得粉碎时,她就是那个帮我接盘子的人。
-------------------------------------------------------------------------------------------------------------
转自:http://blog.jobbole.com/17362/ 作者:柴阿峰 微博地址:http://www.weibo.com/chaiaf
关于作者:
柴阿峰:比搞技术的相声说的好,比说相声的测试懂得多。反技术教条主义,反测试无用论。专注于开源测试技术、半自动化测试、测试架构、测试方法等的研究。