写点什么

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

  • 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:592228
用户头像

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

关注

评论

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

Java编程学习好就业薪资高吗

小谷哥

karmada调度策略想要实现,这三个组件必须了解 | K8S Internals系列第4期

BoCloud博云

容器 云原生 k8s

C++运算符重载(四)之赋值运算符重载

CtrlX

c++ C# 后端 函数重载 8月月更

zzcase&接口自动化-质&效的探索

转转技术团队

测试工具 用例设计平台开发

学习大数据课程后好找工作吗?

小谷哥

版本管理工具git的使用总结

TimeFriends

8月月更

浅谈-大数据工程师面临的困境和要学习的技术

Geek_c8a6a0

视频1对1源代码——简单的搭建方式也有技术要求

开源直播系统源码

软件开发 直播系统源码 语音直播系统源码 语音直播

Python也许很友好,但它也容易弄得一团槽

梦想橡皮擦

Python 爬虫 8月月更

Synchronized锁升级原理与过程深入剖析:无锁>偏向锁>轻量级锁>重量级锁

Java全栈架构师

Java 程序员 面试 程序人生 多线程

如何有效进行回顾会议(中)?

敏捷开发

Scrum 敏捷开发 回顾会 Scrum团队

上海前端培训学习好就业难吗

小谷哥

快的不止一点点!阿里强推的“Redis速成手册”也太香了吧

程序知音

Java 数据库 redis 程序员 后端技术

JavaScript Promise 的使用技巧

汪子熙

JavaScript Promise 异步编程 await 8月月更

Kyligence 连续三年入选 Gartner 增强数据分析推荐厂商

Kyligence

数据分析 Gartner

MYSQL最朴素的监控方式

京东科技开发者

MySQL 数据库 数据 监控数据

最佳实践|Apache Doris 在小米数据场景的应用实践与优化

SelectDB

数据库 数据分析 小米 Doris OLAP 场景实践

云原生(十四) | Kubernetes篇之深入万物基础-容器

Lansonli

云原生 8月月更

深圳大数据编程培训机构哪家比较靠谱

小谷哥

音视频开发进阶|音频编解码的必要性解读与格式选取

ZEGO即构

极狐GitLab冷知识:使用 Gitlab Webhook 触发 Pipeline

郭旭东

极狐GitLab JIHULAB 101

面试官怒了:多级缓存不了解怎么行,那可是数量级的提升?

知识浅谈

缓存 8月月更

北京JAVA开发3年,拿到美团35K的offer面试心得(全干货)

程序知音

Java 程序员 java面试 后端技术 Java面试八股文

前端线下培训的就业前景怎么样?

小谷哥

Android进阶(十一)Android系统架构讲解

No Silver Bullet

android 系统架构 8月月更

5 个 JavaScript “罕见”原生的 API

掘金安东尼

JavaScript 前端 8月月更

软银从阿里套现340亿美元,阿里、腾讯为何纷纷被大股东撤仓?

雨果

阿里云 软银 DaaS数据即服务

万丈高楼平地起--java基础语法

Geek_ba5ac7

Java core

Linux面试最高频的5个基本问题

千锋IT教育

STM32入门开发 NEC红外线协议解码(超低成本无线传输方案)

DS小龙哥

8月月更

用好JAVA中的函数式接口,轻松从通用代码中剥离掉业务定制逻辑

程序知音

Java 编程 程序员 后端

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