作为开发人员,要面对时间压力、技术压力、需求不确定性的压力,所有这些都会让开发人员焦虑,进而为了赶进度想出各种各样的&ldquo办法&rdquo,埋藏下各种各样的错误。尤其是屌丝软件公司,人手不足(
作为开发人员,要面对时间压力、技术压力、需求不确定性的压力,所有这些都会让开发人员焦虑,进而为了赶进度想出各种各样的“办法”,埋藏下各种各样的错误。
尤其是屌丝软件公司,人手不足(更何况今年IT人荒),技术准备不足,客户难伺候,偶尔核心开发还得兼职做demo,跑售前。
笔者碰巧在私企和外企都干过,两相一比较,谁是高富帅,谁是屌丝立判。
高富帅工程师每天可以拿20%的时间研究项目外技术,屌丝开发能正点下班就不错了;高富帅公司可以用高薪挖来大把的牛人摆在那供着,屌丝开发每天都在赶鸭子上架,应付从未遇见过的难题;高富帅项目经理遇到技术瓶颈会停下来做技术分析,申请资源,而屌丝项目经理遇到了难题只能把最得力的开发叫道跟前,满含热泪的说:兄弟,这次全靠你了,我等着你的好消息。
在这种压力下,你还能不犯错?你还坚持可以自己考虑清楚需求、逻辑、设计,写出完美的无缺陷代码?开发人员如果真有那么威武,Visual Studio 和 Eclipse 这些IDE绝不会花那么多功夫做错误实时检测,你就算写过一千遍printf一样有可能敲出pritf,更何况需求、逻辑、设计乎?
对于一个医药企业的信息系统,在写第一行代码前,开发真的琢磨清楚FDA认证的细节了?对于一个金融类系统,开发真的搞清楚那些财务报表,基础会计了?
为游艇制造商开发管理系统的屌丝,可能一辈子也没机会坐私人游艇出海玩一圈,这种情况下,你让他体会用户需求?
就在这种情况下,还有人(大部分供职于高富帅公司)叫嚣说,不需要专职测试工程师!诚然,一些对测试理解庸俗化的工程师,可能和开发之间有龌龊,但是这不是否定所有专职测试的理由。
我工作中接触到的测试,几乎都对需求和设计有更好的掌握,因为在开发堆代码的时候他们没有为淘宝做免费压力测试,而是在学习需求,维护文档。
我接触到的测试人员,他们虽然专职挑错,但是都和开发建立了良好的团队关系,因为他们挑错的目的不是为了自己的绩效,而是为了团队能做出更好的项目。
这些专职测试可能工作多年,连句javascript的alert都不会写,但这不妨碍他们成为项目经理最倚重的人之一,因为在上线最关键的那些天,来自核心测试人员的信息显然比开发人员的更可信。
俗话叫:摔盘子的总是刷盘子的。更何况,在屌丝开发公司里,最好的开发一定会被委派去刷最难洗的盘子,要替初级开发搞定刷不完的盘子。
7年前做开发的时候,在那个屌丝开发公司已经算经验丰富一点的“老手”了。因为不愿意再给oracle交钱,客户要把一个 jsp+Oracle 的网站迁移到 php+mysql ,在收尾阶段,我要为整个项目的数据做一个报表,涉及到一个规模比较大的存储过程。但是令人不满意的是,原项目在设计时犯了错误,数据模式中有不该出现的“多-多”对应。