第三小说网

手机浏览器扫描二维码访问

第3部分(第1页)

。如果通过这种方式没有发现Bug,他们就会把视线转到正在被分诊讨论的那些Bug上,挑一个有趣一点的,然后开始研究它。在你知道之前,他们可能已经有了一个修复方案,并且正伺机悄悄地把代码签入进去呢……这就是抢修Bug!一个有自尊的开发者不应该做这样的事情。

作者注:在软件工程中,Bug通常是指代码中的错误。然而,微软内部使用“Bug”这个词泛指跟产品相关的所有增加、删除或者修改。但大家对外一般称这些为“工作条款”,其中有一些也可能是代码错误。我更喜欢“工作条款”的说法,这样就能把那些真正的Bug区分出来。

谁知道分诊团队是否会决定修复那个Bug呢?谁知道那个Bug是否被正确地修复了,并且也不会引起相关的另一个更大的或者小一点的Bug呢?对于潜在的重大问题投入一点调研是可以的,但绝对不要抢先去修复!

?修复尚未报出来的Bug。现在有一个Bug通过了分诊,你正在进行修复。这时你注意到,在你修改的代码附近有其他更多的Bug(通常这些Bug是由以前的修复引起的)。但不知怎么搞的,这些Bug还没有被人报出来。你看到了这些代码,而其中的错误也尽收你眼底。为什么不一起把它们都修复了呢?喂!就此打住!!!

开发团队通过代码复审来避免这种可怕的事情。在“可信计算”时代,团队应该在整个项目周期内复审每一次代码签入。当团队处于“禁闭”状态时,要保证有3双眼睛(即代码改动者本人和另外两个开发者)同时审查每一次的代码改动。至于开发人员在修复一个Bug时发现的其他Bug,则要通过如下方式来跟踪:先把它报出来、登记到Bug数据库中,然后再分诊……

作者注:《凯文与霍布斯》连环漫画系列中有这么一个故事:凯文对一只苍蝇慈悲为怀,打开前门让它飞出去。结果呢?这只苍蝇非但没有飞出去,反而另外3只苍蝇飞了进来。这就是为什么你必须在项目逼近尾声时,要对每一个Bug进行研究和分诊的原因了。我的团队曾经在我们的产品发布前一个月的时候改变了一个参数的值,结果一周之后,全公司的测试人员都发现:只要打开CD托盘,所有的应用程序都会停止响应。最后,我们往回追踪到那个看起来无关紧要的参数,并把那个改动撤销了才解决问题。这种事情真实地发生在我们的周围,只是你未必知道而已。 。。

宝宝做了件极坏的事情(2)

?修复标为“延期”的Bug。大家知道,被标为“延期”的Bug在产品发布给制造商(RTM,Release To Manufacturing)之前是不能去修复的。那么,是不是应该在计划下一版产品的时候去修复它们呢?不对!当初在项目的进行过程中,产品的相关团队对“哪些Bug对我们的客户影响最大,因此必须在发布之前修复”作了判断,但这种判断在产品没有真正发布之前是无法验证的。当产品发布之后,你就没必要再去猜了。“产品支持服务”(PSS,Product Support Services)、Watson和“微软咨询服务”(MCS,Microsoft Consulting Services)会告诉你的,而且它们非常坦诚。那些标为“延期”的Bug只具有参考价值,用于理解为什么这些Bug当初没有要求去修复。注意,你不要再一次去猜测已经真实存在的客户。你要做的是,关注用户反馈,修复真正影响用户的那些Bug。

?重写“丑陋”的代码。开发人员讨厌“丑陋”的代码。这些代码常常麻烦不断,可读性差,难以维护。因此,当开发人员手头有空的时候,他们经常自言自语:“哈,我手头没有规范书,因此不能开发新的东西。我为什么不趁此机会重写那些讨厌的丑陋代码呢?”他们知道,如果给第二次机会的话,他们能够做得更好。他们也的确可以做到。他们可以在第二次的时候,重写出漂亮得多、清晰得多的代码,而且比第一次写的时候少了很多Bug。

令人遗憾的是,重写的代码实际上将比当前的丑陋代码带来更多的Bug。因为当前的丑陋代码是在第一次编写的基础上,经过了几个月甚至是几年的测试和修复之后才达到的质量水准。

有时候重写是必要的。重写可以提高代码的性能、扩展性、可靠性、安全性、或者对于新技术的适应能力。在这些情况下,应该把重写当作一个功能来对待;像处理其他功能一样,写一份规范书,然后为它制定时间表。否则,不要做代码重写这种愚蠢的事情,它只会重新引入一大堆令人讨厌的Bug,而且还对客户价值没有丝毫的贡献。

作者注:我的上述观点同样适用于“重构”(Refactoring),尽管我很讨厌提到它。哪怕重构是在你毫无察觉的情况下由电脑自动完成的。这并不是说你不应该进行定期的代码重构或复审,而是说,你不应该随意地做这些事情。做不做都应该由团队来做决定,并且要保证手头有足够的“单元测试”来防止引入大量的新Bug。如何正确地做这些事情才是关键。

?在编码风格上争论不休。谈到最消耗开发团队时间的事情,在空格、括号、匈牙利命名法等问题上的争论必定在前5名之列。请记住:使用一种一致的编码风格对你代码库的质量和可维护性大有裨益,而你的团队具体使用哪种风格一点都不重要。你是开发经理,你来选一个并坚持使用它。谁说这也需要民主?!

txt小说上传分享

告诉我该做什么

关于闲散时间的阴暗面我已经说得够多的了。在这个清静时期,你的开发团队可以做些什么有建设性的事情呢?

很自然,测试团队会坚持说,在产品发布给制造商之前的这段时间里,开发人员应该帮着找Bug。而项目管理团队会坚持说,在产品发布给制造商之后,开发人员应该花时间去阅读和复审规范书。不过,这些事情对开发团队来说没有太多实际的工作量、不具有吸引力、也无法让他们开心。

那么,开发人员在“工作淡季”到底可以做些什么呢?下面是我的一些想法:

?分析Bug。分析团队在过去的一个产品开发周期中修复过的所有Bug,找出其中的规律。哪些是个人常犯的错误?哪些是团队犯的错误?团队中的每个成员下次需要注意点什么,才能开发出更好的产品?

?为部门开发一些工具。尽管开发人员通常不擅长发现Bug,但他们在开发用于帮助发现Bug的工具方面的能力却是超强的。他们还能开发一些工具用于使过程更加顺畅,比如源代码签入、安装、建造和支持。给源代码插桩或者开发一个好的测试用具,能够大大地促进开发与测试团队之间的关系。当然,你应该先到工具箱网站上去查一查,看看满足你需要的工具是否早已存在了。

?讨好项目经理,把他们的设计思想变成原型程序。开发原型程序是个好主意,只是不要在常规代码库上去做。尝试用另一种语言来写,或者至少要有独立的建造。在常规代码库上开发原型程序的最大问题是,项目经理和高层管理者会很自然地认为,代码已经到了差不多可以发布的程度,而事实上,原型程序通常存在着本地化、平台依赖、徽标、漫游、性能、安全、兼容性等各种各样的问题。混淆原型程序和产品代码会把产品计划和期望搞得一团糟。相反,用另一种语言来开发原型程序却是一个极好的学习机会。再说还能……

作者注:虽然以前已经说过了,但我还要再强调一下,“不要把原型程序当作产品来发布。”这么做不会节省时间,而只会花更多的时间。千万不要这么做!原型程序是用于学习和沟通的,它的用途就是这么单纯。除了用另一种语言开发原型程序外,我以前常常把Esc按键处理为异常结束。这样的话,如果我的上司在观看演示时表现得异常兴奋,我会敲一下Esc键,让程序崩溃,然后解释说,“很显然,我们的程序还没到发布的时候。”

?学习新技术或技能。人们总是抱怨他们没有足够的时间去学习新技术或技能,抱怨得不到培训机会使他们自身得到提高。好吧,为什么不好好利用项目的这个清静时期呢?不要让机会在你身边溜过!

?跟研究人员交谈。在零Bug反弹之后是跟研究团队交谈的最好时机。这时候你有足够的时间去采用某个新技术,花时间去学习它,并且了解你能用到哪些东西。到你的产品发布、并且开始计划下一个版本的时候,你可能已经把原型程序准备好了,并且解决了所有的风险,着实让你的团队惊喜不已。另外,你和研究人员也可以为未来的产品策划新的研究领域。这非常有价值,而且做起来很容易。

?撰写专利申明或白皮书。其他还有更好的时间,用来反思和记录你已经做过的事情吗?如果你团队中的一位开发人员在项目过程中想出了一个新颖的点子,产品因此增加了不错甚至是重大的价值,那么务必叫他撰写一个专利申明。这做起来很容易,很快,还能极大地鼓舞士气。请访问专利组织的网站,以便了解更多的细节。如果你想把一些信息文档化,或者与其他团队分享某个想法,那就写一个白皮书。相对来说,这做起来也很容易,但能给作者和你的团队带来尊敬和影响力。

骗一把就死  半池烟花 一卷飘零  杀手皇妃是只狼:凤点江山(腾讯VIP)  天下苍生  富爸爸提高你的财商  还乡  轩辕  金融与现代化  末日仙界之系统  倾城太监公公有喜了 完结  今夜我无法入眠  一百双眼睛里的战争:南疆集团军在1979---1987  乱世存亡  最推理2  熟女的心香  吟情  毛主席用兵真如神  来自星川彼岸  林默安幼鱼我的养成系女友最新章节在线阅读  学好用好劳动合同法  

热门小说推荐
鬼雨

鬼雨

身世凄苦中再次从高三开始,偶然机会得到了超能力,从此他不甘落后,夺得状元,坐上总裁。接着上了大学,进入黑道。于是开始黑白两道的角逐,他是崛起最快最璀璨的一颗新星,征战沙场,留下一个又一个的神话传奇。...

无敌坦克

无敌坦克

陈墨觉得最近的小日子过得舒服极了,为毛?因为他也穿了!进进出出的同时,还能搞点不同位面的私货,高科技啦,新材料啦,文娱作品啦等等等等所以现实中的陈墨日子过的不要太舒服噢!可是,陈墨心中总是有一个伟大的愿望,那就是在空间里打造一批属于自己的真正的无敌坦克,啥子标准呢?考虑了许久,陈墨定了这么一个标准E100的车身,IS7的头,62A的上弹速度,WT100的炮,M48A1的视野,502的速度!嗯,最后加上老鼠的重量吧,那玩意沉,撞谁谁死,谁撞谁死!好吧,暂时就先这样了,不扯了,赶紧穿进去照着这个标准造坦克去喽!本书已经成功签约,所以读者大人们敬请放心收藏推荐,本书保证不会太监!您们的支持就是小墨写书的动力!各位书友要是觉得无敌坦克还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦!...

极速狂人

极速狂人

少年穿越之后,自带了速度属性值99点。逆天了啊!这可是这个新世界的最高速度。从此,少年成为了一个极速狂人,以速度折磨所有对手。...

一品婚爱:独溺娇妻

一品婚爱:独溺娇妻

为了调查家人死亡的真相,她甘愿委身于他,夜夜承受他疯狂的欢爱。为了隐瞒事情的真相,他用威胁强迫的方式,逼迫自己心爱的女人留在身边。她飞蛾扑火,褪尽光华,在爱与罪恶中沉浮挣扎,一次人为的精心设计,让她身陷死亡的边缘。是妻子?棋子?还是这辈子无力改变的隐爱?...

红楼之纵横四海

红楼之纵横四海

我穿越无尽时空,就是为了在这里和你相遇。你跟我玩儿宅斗,我跟你玩儿商战。就拿银子砸你。你跟我耍流氓,我跟你讲道理,讲到你吐血。你跟我讲家法,我跟你论王法,看看到底谁大?你跟我玩儿权术,我跟你动武力,不行就灭了你。你跟我讲媒妁之言,我就要自由恋爱,想娶谁娶谁。你走你的路,我走我的路。你非要走我的路,我就走你的路,让你无路可走。铁血兵王纵横红楼世界,别以为我只有热血,我还有冷血。热血加冷血,才是铁血!...

贪欢总裁,请自重

贪欢总裁,请自重

(他们的纠葛始于父辈,这是外人以为的,可是,沈凌薇知道,对他的感情,早已是深种,那一段往事,她守口如瓶,却不成想,有一天,却会在她意想不到的情况下,暴光于众。)无爱的婚姻,不能生育的自己,分手自然是最后的收场。沈凌薇心痛难当,毅然离开了伤心地,远走他乡。两年后,因一个合作案,与前夫再遇,沈凌薇只觉,这个世界有时真是小得可怜。不过,既来之则安之。工作照旧,生活照常。只是让人气愤的是,那个叫做前夫的男人,为什么竟频频对自己做一些不可思议的小动作?片段1唐文昊,麻烦你让一下。沈凌薇偏着头,语气冷而硬。可是那个男人丝毫不为所动,甚至还抬起大手轻抚上自己的脸颊。这是什么情况,沈凌薇咬牙,一个转头,却是突然地,不小心把自己的唇送上了,心里顿时哀嚎,这叫什么事?呵呵,两年未见,倒是变得主动了,唔,那我就不客气了。唐文昊贴着她的唇,轻声呢喃着,随后,便毫不客气的亲了下去。片段二俩人在车上亲吻的难舍难分之时,男人正准备考虑是否上演车震,却不料,大手一探,身下的女人竟然没有穿内衣,顿时大怒死女人,来到了国外,竟然不学好,用这种方法勾引男人,是不是?首次的重逢,她恨恨地赏了他一巴掌,打得他无语反驳二次的相遇,她临危不惧,光着身子,跟他谈判,结果如果爱上你,是我这一辈子都逃不开的劫,那么,我愿意一直都把你藏在心中,好好守着这份爱,即使你不爱我,也没有关系,也许我很傻,可是,没有关系,我是忠于自己,忠于自己的感情,这样,就已足够。尘世中,能够遇到一个让自己无怨无悔去爱的人,是幸还是不幸,这个答案,只有自己清楚。...

每日热搜小说推荐