写点什么

构建以质量为中心的研发文化以驱动创新

  • 2013-12-25
  • 本文字数:2241 字

    阅读完需:约 7 分钟

Aviran Mordo Wix 后端工程的负责人,同时也是一位持续部署的专家,拥有 20 多年的从业经验。他在多家初创公司与大型企业中担任过工程师和领导者的角色。近日,Aviran撰文谈到了如何构建企业的研发文化,介绍了实现这个目标所需的准备工作以及执行过程。

在2010 年加入Wix 时,我的主要职责是重建后端团队。那时,整个团队的成员基本上都流入到了公司的其他项目中,只保留下了一个成员,因此我面对的是一个全新的团队。

几个月后,在组建团队时,我们决定采用持续交付方法学。由于在转向持续交付以及重写整个后端系统方面遇到了很多挑战,因此我们需要非常优秀的软件工程师来构建一个全新的框架,并且要成为引领公司以开发为中心文化的先行者。

我们要创造一种以质量为中心的文化,主要从软件工程与成员责任心这两个角度来衡量。由于在快速发展的公司中,每个人都会对公司的文化产生深远的影响,因此这就会为招聘流程定下了一个基调。在加入Wix 后,我一直都在招聘工程师,不过招聘是个巨大的挑战。我一直在寻找卓越的软件工程师。面试流程的标准非常高,只有极少数人能面试成功,不过我愿意为此付出代价,因为只有这样才能构建出一个真正的团队。

面试流程

我们的面试流程主要有两个技术面试。一个由我自己来面,另一个由团队的首席架构师来面。除此之外,面试者还有与HR 和R&D 副总裁的两轮面试。不久之后,我们对面试流程稍微做了些修改,在第2 轮面试中加入了上机考试,面试者需要像平时工作那样在计算机上编写程序。对于面试者来说,能够编写代码是非常重要的事情,因为很多时候我们发现有些面试者虽然能够侃侃而谈,但在实际编写代码时(这也是他们在工作中需要做的事情)却能力不足,即便知道了问题的解决方案,并且在编写代码之前能够解释给我们听,但他们还是缺乏编码的能力。有时我们觉得合适的话还会让面试者从我们的开发者中选出一个进行结对编程来代替上机考试。我们参与的开发者可以在任何时候拒掉面试者。经过一些实践我们发现,每次当我们对某个面试者产生怀疑并决定给他或她一个机会时,最后的结果都不是太好。

DevOps 文化

作为持续交付文化变化的一部分,我们要求开发者做的是 DevOps,出于这个原因,需要确保生产环境的可视化。基于此,我们在所有房间内都放上了巨大的LCD 显示屏,开发者可以实时看到生产环境中应用的行为。显示器上会显示出应用的异常信息、应用性能以及系统度量信息等。一旦开发者看到了这些鲜活的数据,他们就可以开始根据这些数据进行修复并改进应用,而这些数据之前是看不到的。他们修复错误、改进应用性能并提升系统的质量。

每日例会

质量也影响着我们每天的站立会议。相对于谈论“我昨天做了什么”和“我今天要做什么”来说,在我们每天的例会中,我们会讨论解决或遇到的产品问题、面对的有趣的工程难题以及需要对框架所做的增强建议等。

质量星期四

大家都会对软件工程是一门匠艺这种说法表示认可,不过很多公司在改进工程匠艺方面却几乎没有什么投入。为了做到这一点,我发起了名为“质量星期四”的活动。每个软件工程师每周都会花上4 天时间与项目团队一起进行项目开发,不过在星期四,所有的后端开发者都会停下来,进行质量增强方面的活动。

搜寻Bug(1 小时)

每周4 我们都会从一个周会开始,并搜寻Bug。我们会从生产系统中拿一个运行着的服务,服务的编写者会在所有开发者面前经过监控系统的检验,并解释生产系统中应用所抛出的每个异常。对于每个异常来说,我们会讨论是否有与这个异常相关的任务项可以消除它。最后,服务编写者会根据任务项列表对服务进行修复。这个过程不仅改善了服务的质量,还向其他开发者介绍了服务的内容。

回顾(1 小时)

在这一周内,开发者会遇到一些问题,他们希望能与其他人分享并对这些问题展开讨论。我们会在内部的留言板( daPulse )写上这些主题,它设定了每周回顾的议题。在回顾中,我们会讨论问题以及过去一周内学到的东西,还有如何改进团队、质量、流程以及 R&D 组织效率的一些建议。

展示(1 小时)

质量星期四的第 3 个小时用于演讲。每个开发者会轮流介绍他所熟悉的一个主题。这实现了跨团队的知识共享。主题可以是关于技术的,介绍新的项目,或是开发者感兴趣的任何主题。有时,我们还会从 R&D 之外邀请一些人来介绍公司的其他部门在做的事情,这些主题并不局限于后端团队。R&D 的所有人都可以发表演讲,并发布每周主题。公司的其他人如果想要加入进来我们也是很欢迎的。这也实现了跨部门的知识共享。

星期四任务

开发者在星期四的后半天一般并不会从事自己的项目。我们称之为星期四的任务。星期四任务是个技术债务或是小任务,优先级比较低。每个项目都有此类任务,不过通常都完成不了,因为时间不够,优先级也不高。在星期四,我们会从事这些任务,不过并不是由项目的开发者来完成,而是由其他组的成员来完成。让其他项目组的成员完成这些任务有以下几个目的:

  • 开发者可以学习到其他项目。
  • 外部开发者可以看到他们不熟悉的代码,能够发现问题或是给出建议。
  • 开发者可以学习到其他项目组面临的问题与解决方案。
  • 寻找项目共有的模式。
  • 可以找到自己感兴趣并打算从事的项目。

驱动创新的质量

工程师们每周都有一天时间不必忙于项目,这有助于实现创新。“质量星期四”是创新的驱动力。所有活动,如搜寻 Bug、回顾、技术演讲和星期四任务都是促进讨论与想法的催化剂。我们已经根据星期四的讨论实现了很多创新的东西。我坚信为了能够吸引到更好的工程师,你需要在质量与匠艺上投入更多。通过深挖内部工程师,你会得到更好的产品与更高的生产力。

2013-12-25 09:591938
用户头像

发布了 88 篇内容, 共 263.1 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

企业号 4 月 PK 榜,火热开启!

InfoQ写作社区官方

热门活动 企业号 4 月 PK 榜

机器学习实战系列[一]:工业蒸汽量预测(最新版本下篇)含特征优化模型融合等

汀丶人工智能

数据挖掘 机器学习 数学建模

拯救脂肪肝第一步!以飞桨3D医疗影像分割方案MedicalSeg自主诊断脂肪肝

飞桨PaddlePaddle

深度学习 计算机视觉 语义分割 PaddlePaddle

看完这份SpringBoot神级文档,面试真的可以为所欲为

三十而立

Java IT java面试

重现一条简单SQL的优化过程

GreatSQL

MySQL greatsql greatsql社区

用友BIP智能财务,助力企业构建世界一流预算管理体系

用友BIP

全面预算

数据擘画资产全景 AI诊断故障真因

用友BIP

电商通用型商品中心设计

京东科技开发者

构架 企业号 3 月 PK 榜 电商中心 SKU 类目

IDC报告:安擎AI服务器同比增长29.2%,三行业位居第一

科技热闻

标星90K,这份Leetcode刷题手册在GitHub爆火!完整版开放下载

架构师之道

Java 编程 算法

以前端视角,漫谈「云端」

京东科技开发者

云计算 前端 云技术 企业号 3 月 PK 榜

阿里内部进阶学习SpringBoot+Vue全栈开发实战文档

三十而立

聚焦「就近」与「轻计算」,阿里云边缘云连续3年领跑!

阿里云CloudImagine

云计算 边缘计算 边缘云

利用Jackson序列化实现数据脱敏

京东科技开发者

Jackson 数据脱敏 企业号 3 月 PK 榜

过亿云资源运维管控难?华为云CloudMap带你喝着咖啡做运维

华为云开发者联盟

大数据 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

华秋一文带你读懂PCB中的“金手指”设计

华秋电子

下游需求趋势长期向好,高端产品国产替代空间广阔

华秋电子

易观千帆 | 2023年2月证券APP月活跃用户规模盘点

易观分析

金融 证券 经济

飞针测试的流程有哪些?华秋一文告诉你

华秋电子

【3.24-3.31】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

微服务架构中的链路超时分析

做梦都在改BUG

Java 架构 微服务

利用自动化平台可以做的那亿点事 |得物技术

得物技术

自动化

AIGC时代:未来已来

华为云开发者联盟

人工智能 华为云 AIGC 华为云开发者联盟 企业号 3 月 PK 榜

简述家居物联网体系架构

毛广斌

构建云边端一体的分布式云架构,软硬结合驱动边缘计算创新场景

百度Geek说

人工智能 架构 分布式 边缘计算 企业号 3 月 PK 榜

2023年最新美团、字节、阿里、腾讯 Java 面经,已拿 offer(附面经分享)

采菊东篱下

Java 面试

软件测试/测试开发丨移动端App自动化之App控件定位

测试人

软件测试 自动化测试 测试开发

ElasticSearch 拼音搜索自定义扩展插件(长拼音序列)

alexgaoyh

中文分词 分词 Elastic Search 自定义插件

vivo 手机云服务建设之路-平台产品系列04

vivo互联网技术

系统设计 稳定性 数据安全 用户数据 手机云服务

软件测试丨JavaScript脚本注入,完成Selenium 无法做到的那些事

测试人

JavaScript 软件测试 自动化测试 测试开发 selenium

DTALK直播预约 | 数据资产管理:金融机构数据价值释放的必经之路

袋鼠云数栈

数据资产管理

构建以质量为中心的研发文化以驱动创新_语言 & 开发_张龙_InfoQ精选文章