`
guoyiqi
  • 浏览: 1043529 次
社区版块
存档分类
最新评论

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

 
阅读更多

个人一辈子不犯错很难,作为一个程序员要每天不制造程序错误更难。今天跟大家讨论如何面对失败和错误,大到一个项目的开发失败,小到几行代码中的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、寻求帮助。
  请不要让自己的自尊心作祟,拒绝别人的帮助,一个好汉三个帮,放下那所谓的自尊,去听取团队和伙伴的建议。
  每个人对错误的处理方式不同,会产生不同的结果,问题处理的好,会使得团队更加信任你,甚至比遇到问题之前,更加信任你,要是处理的不好,不但摧毁了大家的信任,还会让人觉得你难以担任重任。

分享到:
评论

相关推荐

    程序员如何真正的成长

    面对快速变化的科技环境,程序员必须具备自我驱动的学习态度,不断挑战自己,适应新技术。可以通过在线课程、MOOCs(大规模开放在线课程)如Coursera、edX等资源进行自我提升。 最后,保持热情和耐心是程序员持久...

    程序员深思人生

    这意味着要勇于接受挑战,不断寻求突破自我的机会,并能够从失败中汲取教训。 ### 总结 综上所述,“程序员深思人生”这篇文章虽然没有提供具体的指导性建议,但却引发了读者对程序员职业生涯规划和个人成长的深入...

    给新手程序员的10点忠告(精辟)

    ### 给新手程序员的10点忠告 #### 1. 规划职业生涯 - **核心要点**:作为新手程序员,重要的是...不断学习新知识、扩展人脉网络,并勇于迎接挑战,这样才能够在竞争激烈的IT行业中脱颖而出,实现个人职业发展的飞跃。

    敢问路在何方--一个程序员从迷茫到坚定到再次迷茫之路

    其次,面对职业困境,自我学习和勇于尝试新事物是打破困境的关键。再者,在不同的工作环境中适应和学习,是技术人成长的必经之路。最后,处理职场人际关系是影响职业发展的一个不可忽视的因素。 在IT行业,持续学习...

    程序员的自荐信.pdf,这是一份不错的文件

    在当前这个信息爆炸、技术日新月异的时代,程序员这一职业已经成为了众多求职者心中的黄金岗位。对程序员来说,一份精心准备的自荐信是打开职场大门的钥匙。在这份程序员的自荐信中,我们不难看出,作者通过一系列...

    程序员试用期工作总结报告.docx

    - **敢于接受任务并全力以赴**:面对新任务时,勇于承担责任并积极寻找解决问题的方法。 - **勇于承认错误并及时改正**:对待工作中出现的问题持开放态度,积极寻求解决方案,避免相同错误再次发生。 2. **失败...

    程序员进阶修炼说明35岁前要培养的66种明智思维

    ### 程序员进阶修炼说明:35岁前要培养的66种明智思维 #### 第一部分:剑走成功偏锋——另类思维与反弹琵琶 在这个快速变化的时代,要想在IT行业中脱颖而出,单凭传统的思维方式往往难以达到预期的效果。因此,**...

    编程修养 C 程序员

    积极向上和创造性思维能够激发程序员在面对复杂问题时寻找创新解决方案。 ### 2. **交流与团队协作能力** 有效的沟通是项目成功的关键。程序员需要能够清晰地表达自己的想法,同时也善于倾听同事的意见,这有助于...

    本文详细列出了程序员的7个坏习惯以及解决方法,每个程序员都应该

    面对紧迫的截止日期,程序员倾向于选择看似快速的解决方案。然而,短期的效率往往以牺牲长期的可维护性为代价,最终酿成灾难。 **解决方法**:与团队成员协商,确保任何快速决策都得到充分评估。坚持代码审查流程,...

    WM_《跳出程序员思维:如何应对上手英文工具站的几点误区》.pdf

    5. **实践至上**: 实践是检验真理的唯一标准,勇于尝试,敢于面对失败,在实践中积累经验。 通过避免这些常见的误区,并采取正确的策略和心态,程序员和其他创业者可以在英文工具站等领域取得更好的成果。

    极限编程TDD开发.pdf

    另外,XP还提倡勇气,鼓励团队勇于面对挑战,及时适应变化,以及对失败的宽容,以便从中学习和改进。 总的来说,极限编程提供了一套实用的规则和实践,以适应快速变化的软件开发环境,通过增强团队协作、提高开发...

    初中校运会广播稿200字-12页.pdf

    在IT项目中,团队成员之间的相互支持和鼓励同样重要,共同解决问题,一起面对项目的成功和失败。 3. **目标与追求**:无论是运动还是IT,明确的目标是前进的动力。设定清晰的学习或项目目标,为之付出努力,即使...

    老人与海读后感范文(12篇).doc

    就像圣地亚哥在海上与大马林鱼的长时间搏斗,程序员们在面对复杂的代码或难题时,也需要坚持不懈,直到找到解决方案。这种精神与李时珍编纂《本草纲目》、刘伟用脚趾弹奏钢琴、诺贝尔研制炸药的坚韧精神如出一辙,都...

    软件随想录(中英文)

    在面对技术挑战时,作者鼓励程序员勇于尝试,不怕失败。他指出,错误和挫折是成长的一部分,通过解决实际问题,可以积累宝贵的经验。他还提到,开源文化对于程序员的成长有着积极的影响,参与开源项目不仅可以学习到...

    充满智慧的英语谚语.pdf

    这些谚语虽然并非直接关于IT行业的知识,但它们蕴含的...这些谚语教导我们在IT行业中,要注重团队合作、持续学习、诚实守信,以及勇于面对挑战。同时,它们提醒我们保持谦逊,不断提升自我,以适应快速变化的科技环境。

    xp实训试题

    - 勇气:勇于面对变化,敢于尝试新的解决方案,即使可能失败。 - 尊重:团队成员之间相互尊重,相信每个人都能为项目贡献价值。 2. **XP实践** - **计划游戏**:定期规划工作,以适应需求的变化。 - **小发布**...

    2013年度总结

    在这个快速发展的IT行业中,我们必须保持学习的热情,勇于面对各种挑战,养成良好的总结与反思习惯,有效管理时间,提升问题解决能力,并不断扩展自己的知识体系。这些要素构成了IT专业人士职业生涯的基石,也是我们...

    将军和蜘蛛 (2).ppt

    2. **勇于面对失败**:威灵顿将军开始时对自己可能的失败感到沮丧,但他看到蜘蛛的遭遇后,意识到失败是成长的一部分。在IT领域,失败是常态,每个程序员都会遇到代码无法运行或者项目延期的情况。重要的是,要从...

    代码人生,不止代码

    要打破这种局面,我们需要主动寻求新的项目、技术或领域,不断扩展自己的知识面,勇于尝试并接受失败,因为失败是成长最好的催化剂。 再者,长时间的加班并不意味着更高的效率或更少的错误。过度劳累可能导致注意力...

Global site tag (gtag.js) - Google Analytics