程序员是这样炼成的(12)-勇于面对开发失败

  • A+
所属分类:[开发技巧]

  一个人一辈子不犯错很难,作为一个程序员要每天不制造程序错误更难。今天跟大家讨论如何面对失败和错误,大到一个项目的开发失败,小到几行代码中的bug,都是我们在日常开发中经常要面对的问题。

  有一家这样小公司,测试部和软件开发部是独立的两个部门,有各自的部门经理。老板总是喜欢给下面的员工施紧箍咒,施加压力,又是能力评估,又事绩效考核,于是某一年,在领导们别出心裁的领导下,公司出台了软件开发工程师的考核制度,制度明确规定:将程序员开发项目和软件的测试一次通过率和项目中的bug个数纳入开发人员的年终绩效考核,由测试部门进行考核和执行。(所谓一次通过率,就是软件提交测试后,一次通过的概率,一次测试就通过的软件/提交测试申请的软件数*100%)新法颁布后,测试部大呼过瘾,软件开发部一片哗然,第一年的过去了,果然“成绩喜人”,全公司的软件一次通过率达到了97%,无数未经测试软件被偷偷发布给了客户。第二年领导们在吸取了第一年的经验和教训后,毅然的修改了考核标准,在统计bug个数的同时融入了代码行数的概念,bug个数/100行代码 *100%来,进行年终考核,第二年过去了,软件开发部门戏剧化的以100行代码0.5的bug数,高效的开发质量给了领导们一个有力的答案。这是一个真实的事故,一个三流的软件公司的开发水平和软件质量已经“超越了”微软和google,我相信现在仍然还有很多公司在进行类似这个的考核。

  这样的小公司把软件开发和测试部门独立本身就是一种错误,严重的影响的开发和测试的时间,两个部门相互扯皮,项目进展一拖再拖。

  其次,两个部门工作的出发点也错了,两个部门的工作重心是交给客户尽善尽美的软件产品,而不是为了应付考核和被考核。

  第三大错特错的是考评制度,一看这样的制度,多半都是事不关己高高挂起的人出的主意,开发软件能一次就通过吗?写出来的代码能没有bug存在吗?公司要提高产品质量,不把注意力放在项目管理人,开发人员的能力培训上,开发规范和文档管理上,想凭借一纸空文,或者员工的主观能动就达到一个“质”的飞越,实在愚不可及!软件工程师在把软件测试N次以后才敢把软件提交测试,几行代码就能完成的完成功能,引用了很多填充行数的无效单元。

  最可恶的是,使所有的开发人员,散失了面对失败和错误的勇气!为什么不改面对呢?一面对就要扣工资和年终奖,谁还敢去面对啊?于是,整个开发风气就是:开发人员私下放行软件给客户成风,不经过任何测试。程序员有了错误死有的不承认,有了bug支支吾吾。不但开发水平提升不上去,常见的开发问题还没有被公开和分享解决,导致产品质量严重下降。

  大家都应该知道在开发的过程中,越早发现软件的问题,软件就更加的完善。而不是藏着掖着,或者添上一抔土把这个“地雷”埋着,留着让用户踩去吧。正确的心态是:测试人员越早发现我们开发软件中错误,我们应该越高兴,因为不仅可以弥补我们的思维漏洞,让我们的代码更加完美,更加减少了我们挽救这个问题的开销。不敢直面bug的程序员,算不上真正的程序员,如果你没有闯过雷区,没有被炸了个人仰马翻,没有给你留下深刻的教训,那么下次你仍然会不知道代码的隐患在哪?仍然不会学会选择趋吉避凶之道。仍然会被炸的死去活来。

  写代码有经验的人,对异常处理都很有一套,知道大概这一块要保护起来,那一块要加一个判断,这里要验证下是否存在或已经被销毁。如果程序员没有很好的对未能遇见的故障做好防御工作,那么产品带给用户的错误提示或者死机,将让客户连杀了你的心都有。记得好多年前,在一个网吧找了一台赛扬上网,打开IE,自动弹出www.hao123.com网页,然后就报错系统级的错误了,还无休无止,CPU直接满上,然后死机,当时又好笑又好气,你写个弹窗软件,偷偷弹就算了,代码都没写好,结果害网吧老板重装系统:)

  看过武侠的都知道,危难关头,出现异常的时候,才是检测一个真正武林高手水平的时候,平时的舞蹈练剑都是假把式,最多只能算是基本功,补救危局,化腐朽为神奇才能显示技艺的高超。有多少人会记恨千年虫问题是哪个混蛋带给我们的?但是解决千年虫问题软件工程师们都是英雄。所以放心的动手开发吧,即使你犯了错误,被骂成狗熊,也没有人会记住你。问题被解决后一切释然。

  是人都会犯错误,对别人犯错误评头论足的人愚昧。用发布制度来阻止别人放错误的人愚蠢,因为害怕放错误,而畏手畏脚不敢创新和向前的人则更加愚上加愚。错误面前我们要敢于应对:

1、对错自在人心。

  当然你发现问题后,请马上提出,不要企图隐瞒问题,越早发现问题,那么损失就越小,抗震救灾有黄金72小时,软件开发也有黄金72小时。我们在解决陈年诟病的时候,通过要花上数倍的时间,来回忆当时的开发心境和设计意图。

2、接受批评。

  如果这个问题跟你有关那么就是你的问题,千万别动念头找到一只替罪羊,出现问题后,重要的解决问题,不是秋后算账,更加不要交缠不清推脱问题。

3、向解决的方向前进。

  如果  你不能马上解决这个问题,那么请你把这个问题向解决的方向推进,如果你无法推进问题去解决,那么请不要让这个问题继续恶化。让大家都知道这个问题的存在。

4、寻求帮助。

  请不要让自己的自尊心作祟,拒绝别人的帮助,一个好汉三个帮,放下那所谓的自尊,去听取团队和伙伴的建议。

  每个人对错误的处理方式不同,会产生不同的结果,问题处理的好,会使得团队更加信任你,甚至比遇到问题之前,更加信任你,要是处理的不好,不但摧毁了大家的信任,还会让人觉得你难以担任重任。538b8103

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
广告也精彩
avatar
广告也精彩

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • avatar 情侣睡衣 0

      一直都很羡慕程序员的工作 :mrgreen: