我的bug岁月

那时还是刚参加工作不久,一个项目快要完结了,我说了一些修改bug的心得,没想到还真被经理相中了,就开始做质量管理的工作。一开始还挺兴奋,等时间长了才发现这根本就是累死人的差事。

一、没有固定人员,每次改bug都是由其它项目组临时抽掉。抽掉的人员一般都是刚进公司的新手,老手是不愿意给我的,组长们还要他们加班加点做项目呢。我戏谑地说,把新手都给我吧,我来给你们挑出谁是最好的程序员。修改bug最需要的就是敏锐的判断能力和丰富的经验,这往往是也优秀程序员所要具备的。新手们导致bug修改的结果良莠不齐,需要经常返工。

二、每个bug单立任务,统统按0.5个人日算。简单的谁都愿意改,难的实际上就要花费一两天的时间。有很多bug是在客户现场出现的,和现场部署环境有很大关系,客户是在日本,只能把数据库dump文件、日志文件发过来进行分析。所以往往这一类型bug很难找到问题,不能完成就没办法给项目组算人日,每个人的绩效考核也是和完成的人日相关的。很快每个项目组长都不愿意抽人手来改bug。每次bug任务要分配的时候,我都要求爷爷告奶奶地让组长们赶快给我人手。人日制度是谋杀程序员最有力的武器。

三、每个bug的处理都要走流程。一个流程要七八个步骤,其中好几步都要我确认、签字。一些bug找不出原因,我只能亲自上马,碰到手头任务多的时候,也只能挣一只眼闭一只眼。死板的流程丧失的往往也是效率。

几次找领导提建议,要求增添固定人员,简化处理流程,每次都以这样那样的原因驳回。还好的是,我还有项目分析、技术研究等其它任务,做这些事还是比较开心的。

很快这样的时光两年过去了,从我手头流出的bug号也从百位数到了万位数。公司终于要增添固定的质量管理部门,同时,我也要离开了。


分享: Fanfou Misterwong-CN QQ Bookmark Baidu Bookmark del.icio.us Digg Google Yahoo! Yotie

相关文章




计算机语言知识结构

手头有一大摊书和资料,必须清理一下大脑了。给每本书分一下级,发现每种语言要讲的东西抽象出来都差不多,索性也理出个知识结构来,便于查阅和对比。总共分了六层,层数越高知识难度越大。在每一层,我只是简单地堆积些关键词。其中,每一个关键词里面都包含了丰富和有深度的内容,值得研究研究。

有一些关键词所在的位置也表达了一些我的想法,比如在最顶层的性能调优,牵涉的知识面最广,硬盘IO、网络状况、虚拟机设置、源码编写、软件布署…都可能出现问题。事实证明,这一方面的人才也最短缺和迫切。

在第5层Framework中的J2EE,我更愿意把它看做是一种框架。除了一些超大型银行和企业会用到J2EE高级特性,一般的应用都是用的Hibernate甚至是自行编写的数据持久层,它们发挥的都是相类似的作用。

把IDE放在第4层,也有我的道理。选用一个合适的IDE、合适的插件、工具集成的一起,整个项目组能在这个基础上顺利地进行合作开发,也是很需要深入研究的课题。在一个不成熟的项目组里,如果IDE不断换来换去,或是存在某种致命的缺陷,很容易导致项目的延误。我这里所说的IDE不仅是指Eclipse、Visual Studio这些,还有开发用数据库、代码历史管理工具、代码Review工具、用例测试工具、log日志分析工具、部署工具、项目管理工具等等。

第3层Extension除了考验程序员的知识全面性,也更多反映了某种语言的扩展能力,拥有很强扩展能力的语言也往往越流行。当然,在这一方面更多时候我们只需要在身边放一本参考指南:)

 

    6th, Top:

  • VM, compiler
  • Performance Tuning
    ——————————————————————————————
    5th, High Level:
  • Algorithms
  • DesignPattern(Singleton, Observer, Producer, Consumer, Adapter, MVC, Command, Strategy, Composite)
  • Framework(J2EE,Struts,Spring,Hibernate,Zend,CakePHP…)
    ——————————————————————————————
    4th, IDE:
  • debug
  • unittest
  • team
  • SCM
    ——————————————————————————————
    3rd, Extension:
  • Log
  • Error handle
  • Math
  • RE
  • IO(Stream, Serializing, Buffer, Channel, Compression) -> Filesystem
  • Network(Socket,Mail,FTP, News, LDAP)
  • MultiMedia(Image,Sound,Movie)
  • Serial,Parallel
  • GUI(AWT,Swing,2D,3D)
  • Internationalization, Localization
  • Database(Connection, Query, Result, RowSet, Transaction)
  • XML(DOM, SAX, DTD, XPath, XInclude, Validate, XSL/XSLT, WebService[RPC,SOAP], Data Binding, XLink, XPointer, Schema)
  • Distributed(RMI)
  • Thread(Safe, Priority, Synchrony,Notification, Atomic, ThreadGroup, ThreadPool, Time)
  • Invoke Other Language/Native
  • CGI(WebServer, AppServer, Cookie, Session, Embed, Authentication, Request, Response, Header, Tag, MVC, ORM, Template)
  • Security(Encryption,Decryption,SSL,GPG)
    ——————————————————————————————
    2nd, Feature:
  • DataStructure(list,map,stack,iterator,tree, queue, vector, dictionary, table, bitset, properties, Enum)
  • OO(Polymorphism, Override, Inheritance, Clone) (instanceof, compare, serialize, toString) (Nested, Member, Method, Constructor, Destructor, Finalize, This, Instance, Static, Abstract, Interface, Casting, Final, Anonymous, Reflection, Generics)
    ——————————————————————————————
    1st, Syntax:
  • Variable
  • Operator
  • Keyword
  • Datatype(number,boolean, character, array,date,string)
  • Control Flow(if else, while for, break, continue, case, return, assert)
  • Comment, Doc(Annotation)
  • Function(Reuse)
  • import, include

分享: Fanfou Misterwong-CN QQ Bookmark Baidu Bookmark del.icio.us Digg Google Yahoo! Yotie

相关文章




Reduce, Reuse, Recycle

 

“The 3 R’s”

Jack Johnson

Three it’s a magic number
Yes it is, it’s a magic number
Because two times three is six
And three times six is eighteen
And the eighteenth letter in the alphabet is R
We’ve got three R’s we’re going to talk about today
We’ve got to learn to
Reduce, Reuse, Recycle
Reduce, Reuse, Recycle
Reduce, Reuse, Recycle
Reduce, Reuse, Recycle
If you’re going to the market to buy some juice
You’ve got to bring your own bags and you learn to reduce your waste
And if your brother or your sister’s got some cool clothes
You could try them on before you buy some more of those
Reuse, we’ve got to learn to reuse
And if the first two R’s don’t work out
And if you’ve got to make some trash
Don’t throw it out
Recycle, we’ve got to learn to recycle,
We’ve got to learn to
Reduce, Reuse, Recycle
Reduce, Reuse, Recycle
Reduce, Reuse, Recycle
Reduce, Reuse, Recycle
Because three it’s a magic number
Yes it is, it’s a magic number
3, 3, 3
3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36
33, 30, 27, 24, 21, 18, 15, 12, 9, 6, and
3, it’s a magic number

 

这就是编程时必须要做的事.

更多的故事在这里  The Lazy, Clever Programmer: A Compendium Of Code Reuse & Recycling


分享: Fanfou Misterwong-CN QQ Bookmark Baidu Bookmark del.icio.us Digg Google Yahoo! Yotie




当前第1页 共31页12345»...最后一页 »