专栏名称: 嘀嗒嘀嗒
感谢订阅,我是朱赟,也叫 angela,很多人叫我安姐。硅谷 Airbnb Staff Engineer。希望透过女码工的视角为您讲述硅谷技术人的故事和思考。
目录
相关文章推荐
51好读  ›  专栏  ›  嘀嗒嘀嗒

面对 bug 的正确姿势

嘀嗒嘀嗒  · 公众号  ·  · 2017-05-22 04:50

正文

请到「今天看啥」查看全文


题图:来自网络


Bug,一种传说中的昆虫类动物。形状多变,往往根据生存环境随意变化其外形特征。常常和一类叫做 “程序猿” 的灵长类动物共存。而猿在工作之余,往往以抓杀自己的 bug 作为消遣。当某些 bug 演变成具有较大破坏性的时候,集体捕杀,或是替别的猿抓杀其 bug 的情况,在猿族内也常有发生。


Bug 的繁殖环境


Bug 的繁殖速度,总的来说,和三个条件有密切关系。一是猿自身的清洁卫生的保持情况;二是他们的工作强度有密切的关系;三是工作环境中各种防虫措施的有效程度。


一个项目的推进,通常有四种情况:

  • 负责的程序员,紧张的进度: 这种情况,往往也是一个快速试错、快速迭代的开发流程。在开发的过程中,可能会出现一些 bug。但是因为程序员还是很负责任,所以在项目收尾后,会有自发的 bug 清理。因此,虽然过程中很多代码不够理想,但是开发速度极快,最后状态也比较优质。缺点是中间某些阶段代码质量(即使是没有上线的)可能被质疑。

  • 不负责的程序员,紧张的进度: 和上面类似,但是最后系统中会埋下很多没有妥善处理的坑和 bug 蛹。给后面维护的程序员带来很多不便和负担。

  • 负责的程序员,不那么紧张的进度: 这种时候自然可以不紧不慢,三思而后行。Bug 生的少,但是开发的速度也会稍有延缓。

  • 不负责任的程序员,进度是不是紧张,他们也不管: 做得越少,错的越少。这种情况下,bug free 都是有可能的,反正项目能不能按期,不关他的事。


所以呢,如果上层的管理者真的了解情况,或是对你有信任,那么只要你负责,交付的是好的实现,那么上面的第一种和第三种都是比较理想的结果。如果又有很紧张的进度,那几乎所有有开发经验的人都知道,快速迭代是最有效的开发模式。尤其多个工程师同时改相关的代码,在开发的过程中,不可避免因为相关、依赖等原因,有些中间状态的代码会有瑕疵。


如果上层的态度不明确,或者有盯着你要给你小鞋穿的人,那么做不到第三种,就不妨做第四种。而最吃力不讨好的,就是第一种。


如果根本没有人在乎代码质量,只在乎进度,那么就是第二种了,也是最糟糕的一种情况。


Bug 的遏制


如果系统里已经有很多 bug,而且有些因为寄生太久,已经搞不清是从哪里冒出来的了,又要怎么尽量达到一个 bug free 的环境呢?


当团队很小的时候,很多靠自发自觉的潜规则都可以很好的运转,大家都比较自觉的维护代码的质量,bug 抓一个修一个。而当团队大到一定程度的时候,这种自发自觉便逐渐失效。靠一些人的努力,bug 似乎根本修不完。


举个例子。在一个组里,往往会出现这样一种情况:小 J 经常主动帮助修理一些 bug,所以她了解的业务逻辑越来越多。一方面,她的成长很快,但这种快一定会达到一个瓶颈。另一方面,出现 bug,很容易别人就找她,她修 bug 也会越来越多。


而一些平时因为种种情况(懒、滑、太忙、不太懂……)从来对 bug 连推带拖的人,找他的人也会越来越少。对这种人而言,系统了解的少,但是也省出一些时间。


所以,从某种意义上来说,这种不公平很容易产生。而且产生的特别自然,并进入一个良性还是恶性的循环。而最终,小 J 也会对太多的 bug,或是因为自己太忙,而无能为力。


另一个现象,就是大部分所有权明确的 bug 很容易得到处理,而一些三不管地带的 bug,往往可以被一再忽视,成为千年老 bug。比如,一个项目遗留的 bug,但是整个项目组都已经拆了;比如,一个前员工留下的 bug,但是这个人已经离开很久了;比如,很难界定这个 bug 属于哪个组,或者需要动的代码涉及到外组等等……


而这样的 bug,如果没有从上层发起的重视和方案,或是几个真正把公司的事看成自己的事的能人,往往不论影响多少用户,也很难被重视。


和一个高层的管理人员讨论过相关的话题。高管说:可以通过一定的奖励机制来鼓励修 bug。但我不禁提出几个质疑:

  1. 如果奖励修理 bug,那么必然 bug 多的组更有可能修理更多的 bug。这会不会从某个意义上,又伤害到代码质量?

  2. 有一些人修理的是自己的 bug,这种该不该奖?

  3. 会不会有人过于耽于找 bug,修 bug,而影响到正常的开发工作?


高管说了这样一段话。

很多 bug 的道路,就好像在没有告诉公路上行驶的很多车辆。不论怎样,你都快不了。当有这样一个机制来鼓励清理 bug 时,就好像是修了一条高速公路。这虽然不能保证所有的时候所有的车都可以畅通无阻,也不可避免有的人开始飙车,引起别的问题。但至少,在这条路上,除非出了事故,否则你就有了最低限速,确保大部分时候,还是比没有这条路时,交通要好的多。


想来似乎也很有道理。




重播一个广告。


很多熟悉这个公众号的人,都知道我有几个 “哥哥”。一位 MacTalk 的池哥和极客邦的亲哥泰稳,是 2015 年极客邦的硅谷行认识的,后来还有位小道消息的冯爷,在 2016 年极客邦的硅谷行也再次见了面。


今年极客邦的技术开放日增加了欧洲,6月23日至7月4日,行程包括德国、法国、和荷兰。参与的是各大小企业知名领导人。我也应该会随行前往。当然,我还不是知名领导人,但也许去一次,就离目标更近一步了。关于该活动,直接抄一段:


本次欧洲之行以揭秘“大企业创新崛起新思路”为主题,携手中国十余位知名CEO、CTO,深入法国、德国、荷兰三国,访问全球100强企业。涵盖汽车、时尚、金融、电子、零售、制造多个产业,涉及人工智能、VR、AR、金融科技、物联网、区块链、云计算众多热门领域。以企业最佳实践为案例,通过一系列的分析讨论,推动中国企业创新转型、技术升级,从而使自己的企业和团队解决实际问题,在战略方向和技术水平等多方面不断得到改进和发展,在激烈的全球竞争中拉开距离脱颖而出。

目前确定的嘉宾名单:


魏红梅   法国巴黎银行创新中心亚太区/总经理

平苹      成为资本/董事总经理

霍泰稳   极客邦科技 /创始人

周炜       XNode创极无限/创始人 & CEO

冯大辉   无码科技/创始人 & 技术专家

李晓冬   长虹/软件与服务中心副总经理 & 技术专家

陆继军    全国高校技术市场/总经理

于浩       迅达云/CEO

朱赟       Airbnb/高级工程师(Tech Lead)

林文       高盛香港/技术VP

刘海锋   京东/京东商城总架构师

徐晨      戈壁创投/管理合伙人

池建强   极客邦科技/总裁 & 技术专家

庄剑伟   普华永道全球金融服务创新中心/亚太区/总经理

许式伟   七牛/CEO & 技术专家

姜梦笔   金杜律师事务所合伙人 / 金杜创新委员会负责人

陈强       鸵鸟电台/创始人


更多详情,请点击「阅读原文」。








请到「今天看啥」查看全文