点击▲关注 “中生代技术”   给公众号标星置顶

更多精彩技术内容 第一时间直达

本周连续做了两场演讲,基本思想都是从技术团队的工程师文化入手,谈谈如何提升效率与度量价值。下文是我对演讲内容的总结,限于篇幅,还有许多未尽之意,期待能和朋友们有更多的交流。

差不多在10天前,我受邀在极客时间部落发起了一个讨论。

谈到工程师文化,有的人说自由、有的人说协作、有的人说沟通,有的人说好的职业素养,有的人说是追求精益求精。其实这些都对,那么什么是工程师文化呢?

参考文章:如何打造高效团队?

在理解这个问题之前,我们先看看时代的变迁,以及行业的发展。在过去的200多年间,人类经历了三次工业革命,如今正迈向第四次工业革命。

第一次工业革命,我们有了蒸汽机,开创了以机器代替手工劳动的时代;第二次工业革命,福特把流水线做出来了,有了流水线之后,人类正式进入了工业社会。中国在第三次工业革命(信息技术革命)中的表现是非常突出的。举个金融科技的例子,现在大家出门都不带现金。如果钱包被偷了没关系,手机被偷了就很麻烦。

前几次工业革命的意义在于极大地提高了生产力水平,从而改变了文化,经济与生活。第四次工业革命则提供了无限可能:全新的思维方式;全新的生产力、生产方式;全新的生产者和全新的知识获取途径。数字化将会是这个时代的重要特征之一。

我们再来看看行业的发展。

这个世界上有三种商业公司:

销售驱动型的公司。这类公司以运营和营销见长。技术对于他们来说,更多的是为了支持大规模的营销活动,以及成本上的控制。

产品驱动型的公司。这类公司以创造能提升用户生活体验的产品见长。技术对于他们来说,除了支持大规模的在线用户之外,他们会更多地去寻找那些为了增强用户体验,提高整个业务流程效率的技术创新。

技术驱动型的公司。这类公司希望通过强大的工程技术来创造有颠覆性的东西,用各种自动化的技术取代体力劳动。比如:近代的蒸汽机技术取代了大量的人工,数字技术让线下走向了线上。

这三种公司都需要强大的技术支撑。我们今天的生活相当地依赖程序员,没有程序员,我们恐怕都不知道如何生活了。

所以时至今日,每个从事软件行业的技术人员都应该感到幸运。我们不但选对了行业,也生活在了正确的时代,可以感受到前所未有的刺激和变化。所以,我们只需要思考一个问题:我是否在正确的地方用正确的方式做事?在这个背景下,我们再来理解工程师文化,也许可以快速达成共识:工程师文化不是一个问题,而是一个常识。

简单说来,我把工程师文化归纳为两个方面:“效率” 和 “价值”。

效率:建设团队空间,提升团队效率

Martin Fowler在他的博客(Team Room)中介绍了对敏捷开发团队所应采用的“团队空间”的观点。在物理上,我们通过可视化的设备、Always On这样的工具、以及大量的白板为高效协作提供支持。设备、工具的推广和使用,是“术”的层面。

除此之外,团队契约的建立也很重要,比如PIPELINE的提交纪律。

利用团队空间,鼓励团队更多地学习和分享也是提升效率行之有效的方式。下面举两个具体的例子:

Session墙:团队初期,要求团队成员频繁地做session,在团队内部逐步形成学习和分享的氛围。一段时间后,不仅有人愿意分享,而且有人主动喊出想要知道某方面的知识。于是为了将知识分享的供需可视化,可以建立一个session墙,分成两部分,一边由团队成员写出来想要了解的技术知识,相当于是session的需求方;另一边写着根据需求而安排的session,相当于是session的提供方,这样清楚明了,便于跟踪。在项目不同阶段,session的内容也会有差别:比如早期的session主要是关于项目中用到的技术,目的是为了快速学习和掌握必要的技术以便顺利进行开发。

成熟的学习型团队还会通过“有意注入错误的方式”来有意识的进行组织学习。比如奈飞会注入“数据库不可用或者云环境不稳定等错误”到生产环境, 让团队从错误中学习。

技术能力雷达墙:可以利用“技术能力雷达墙”来标明项目相关的各种技术,评价当前的团队技术能力状态,并且设定每个里程碑的能力成长目标,到了一定阶段再来评价团队技术能力是否达到了目标。

参考阅读:团队空间:敏捷团队的办公室设计

建立团队契约,利用Session墙和技术能力雷达墙来促进学习和分享,这是“法”的层面。

工程师天生是追求效率的。有人认为程序员花大量的时间做自动化的工具,还不如人肉的效率高。比如,写自动化的脚本花6个小时,而重复做这件事200次只需3个小时。有这样想法的人根本不理解软件工程。因为一方面,这个工具可以共享重用,更多的人得以从中受益:这次我花6小时开发这个工具,下次只用1小时修改后就可以用在别的地方,这是着眼于未来而不是眼下的成本。

更为重要的是,这是一种提升效率的文化,它会鼓励和激发更多类似的事情发生。如果因为一位程序员花大量的时间开发自动化的工具,而认为这个程序员没有效率,对之批评甚至惩罚,那么我们就扼杀了提升效率的文化。塑造提升效率的工程师文化,这是“道”的层面。

价值:关注研发效能,保持技术精进

研发效能的本质是持续的价值流。在软件开发中,价值流的直接体现是从想法和假设到软件功能上线并产生客户价值的过程。

从左到右的流水线这一理念来自于制造业,为了让流水线尽可能快,生产周期可预测,制造企业通常会聚焦在如何让流水线更平滑,因此一些显而易见的手法经常被使用:比如减少在制品(WIP);尽可能早地发现次品,从而阻止对下游生产步骤的影响。很多理念和实践在软件行业也是通用的,然而一个巨大的区别是:制造业流水线是物理可见的,软件开发活动则要抽象得多。软件开发活动本质上是复杂的系统工程,复杂系统中的事务都是相互交织在一起的,带来的问题是一个异常发生后很难界定其影响范围并快速分析根因。

人类应对复杂系统最有效的手段是探索和反馈,因此,从左到右流水线的每一步反馈就尤为重要:也就是说,我们不仅需要从左到右的流水线,还需要在这个流水线上构建从右到左的反馈,而每个环节的指标收集是从右到左反馈的基础。

管理学之父德鲁克曾经说过:“如果你无法度量它,就无法改进它。” 4 Key Metrics是行业内接受度很高的度量能效的指标:通过这样的度量指标,使得从左到右流水线的每一步都能得到评价和预测。

部署频率

对于您正研发的主要应用程序或服务, 您部署代码的频率如何?

交付前置时间

对于您正研发的主要应用程序或服务, 您的交付前置时间如何(即从代码提交到代码成功在生产环境中运行需要多长时间)?

平均恢复时间

对于您正研发的主要应用程序或服务, 在发生线上事故后(例如,计划外宕机、服务受损)通常需要多长时间才能恢复服务?

变更失败率

对于您正研发的主要应用程序或服务, 多大比例的变更会导致服务降级或变更后需要采取补救措施(例如,导致服务受损、服务中断、需要部署修补程序、需要回滚变更)?

在DevOps横空出世之前,开发团队和运维团队是对立的,其KPI也是对立的,这点在《凤凰项目》中有很多生动的故事。对开发团队来说,快是其KPI;对运维团队来说,稳是其KPI。快和稳看起来是对立的,比如运维团队为了服务稳定,希望发布的频次尽可能低。因此4 Key Metrics给我们的第一个启发是:打破研发和运维的“墙”,快和稳得以通盘考虑。

第二个启发:4 Key Metrics能够让团队的技术治理更有方向性,如果某项技术治理对于快和稳没有帮助,那么说明团队投入的工作量没有给客户带来价值。这样的技术治理很有可能就是自嗨。

关注度量指标的变化,分析其变化的原因。通过持续不断地设置更高的目标,以此来牵引团队研发效能的提升。这是4 Key Metrics给我们的第三个启发。

写在后面:刻意练习

《一万小时天才理论》一书中针对“刻意练习”讲到了三个观点:精深、激情、伯乐。第一,要想在某一方面有所成绩,需要有精深的练习。这里说的不是普通的练习,而是有效率的刻意练习;第二,有对这件事情持之以恒的激情,无论外界如何变化,激情一直都在;第三,要有赏识我们的教练给予指导,给予及时、精准的反馈,这样可以让练习更加高效。个人认为,无论是提升团队效率的“道、法、术”,还是以“4 Key Metrics”为纲的效能度量,唯有坚持刻意练习,方能持续产生价值。

中生代技术社区提供内推服务,对应以上大厂,直接对接到用人部门,高效快捷

有需求请添加群合伙人大白的微信

申请备注(姓名+公司+技术方向)才能通过哦!

中台是个筐,啥都往里装?

一个思维习惯,让你成为架构师

   END
#接力技术,链接价值#

转发朋友圈,是对社区最大的支持。

技术团队的工程师文化:效率与价值相关推荐

  1. 技术团队的组织文化、制度建设和有效沟通

    "知识工作者无法在组织结构下得到有效管理" ----彼得.德鲁克 技术团队的组织文化.制度建设和有效沟通 团队文化建设有很重要的意义.知识工作者的工作无法用行政手段加以约束.一个程 ...

  2. 技术团队的情绪与效率

    引:为什么工程师的效率有那么明显的波峰波谷?为什么会有负面情绪?负面情绪与工作效率有什么关系? 团队 Leader 应该怎样保证整体的效率输出与大家的成长?为什么醉心于技术的同学做项目总是虎头蛇尾? ...

  3. 如何在团队建设工程师文化?阿里资深技术专家这么做

    阿里妹导读:越来越多的企业重视工程师文化,但很难有人说得清什么才是好的工程师文化.建设工程师文化的具体步骤又是什么? 今天,盒马资深技术专家辉子分享了自己的实践经验,希望能给大家带来一些启发. 前言 ...

  4. 百万美元技术大奖,雷军颁给了秒充和隐私保护技术团队

    1月7日,2020年小米百万美金技术大奖揭晓,经过小米集团技术委员会多轮评选,手机部小米秒充团队.软件与体验部的MIUI隐私保护团队,双双赢得了价值100万美元的技术大奖(小米受限股). 120W有线 ...

  5. Google 的工程师文化

    周末公司召开了一个工程师大会,在总结自身经验教训的同时,还外请了一些人来给我们做报告,其中就有一个Google 的测试经理.他用一个小时的时间尽可能详尽地给我们介绍了一下 Google 的开发流程和特 ...

  6. 创业公司的技术团队文化

    年轻的时候能去一家创业公司,经历从几个人开始逐渐团队到告诉发展再到急剧衰落,真可谓是一种难得的体验. 二十来岁,就代表着你拥有更低的试错成本,但是年轻也代表着阅历的浅薄,经历这么一遭,可能收获不像年长 ...

  7. 杭州校招 | ​阿里钉钉算法技术团队招聘NLP/机器学习算法工程师

    合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 阿里巴巴 钉钉是阿里巴巴集团打造的全球头部企业级智能移动办公平台,致力于帮 ...

  8. 滴滴图像技术团队招聘计算机视觉工程师和专家

    滴滴图像技术团队基于滴滴积累的海量交通出行场景数据,研发各种视觉感知.识别和理解技术,包括人脸识别.光学字符识别.目标识别和视频理解等,并成功地将这些技术应用于司机服务质检.司乘安全.智慧交通等各个领 ...

  9. 吐槽微信公众号技术团队的故障处理效率

    没错,今天这篇文章的谈论主题就是吐槽一下微信公众平台技术团队的故障处理效率. 背景:这两天公司做的一个微商城要实现域名的替换.OK,登陆微信公众平台账号,修改域名信息的配置.但是,在微信支付开发配置里 ...

最新文章

  1. RxJava 变换操作符Map
  2. case when then else多个条件_SQL巡礼之CASE用法
  3. html web form id,小程序如何获取多个formId实现详解
  4. 配电技术——配电线路系统电气设备详解
  5. C语言*运算符和运算符
  6. 开始把其他的博客搬家到这里了
  7. MS的完整形式是什么?
  8. oracle pctlist,oracle pctfree和pctused详解
  9. 2021-04-13 Linux I/O模型
  10. rss阅读器 java_RSS阅读器
  11. git推送项目到码云(gitee)
  12. visio添加箭头图标
  13. SQL Server 2014如何导出数据库
  14. python中如何打开csv文件_Python对CSV文件的处理
  15. Excel学习日记:L27-数据重复怎么办
  16. Android开发基础入门
  17. 给小仙女讲什么是javascript(一)
  18. PDF文档电子公章的初试
  19. object...object和object[]...obj[]的区别
  20. android开发歌词滑动效果_Android 歌词同步滚动效果

热门文章

  1. transporter上传卡正在交付_Xcode11,Transporter上传卡在——正在验证 APP - 正在通过App Store进行认证...
  2. python 爬虫1:发送请求
  3. 前端取消置顶功能_短说开发日报:首页推荐频道刷新后首页置顶的数据没有加载出来的问题已修复(9.22周二)...
  4. python xlrd安装_详解python中xlrd包的安装与处理Excel表格
  5. 我们变成了最小的,当我们发现不了最弱小的时候
  6. MarckDown学习
  7. (王道408考研数据结构)第五章树-第四节4:红黑树基本概念及操作
  8. (计算机组成原理)第五章中央处理器-第三节2:CPU专用数据通路
  9. BBV:实验基本块向量生成工具
  10. Libevent源码分析-----TAILQ_QUEUE队列