【Java开发者专场】阿里专家墨玖:淘票票工程师文化

简介: 谈到工程师文化,大家都会比较熟悉,或者比较向往。但是到底什么是工程师文化,应该怎么做是互联网企业应该关注的东西。本文将从四个部分介绍工程师文化,首先,工程师文化从何而来?其次,我们为什么需要工程师文化?还有工程师文化要达到什么目标,走向哪里?最后,工程师文化实施手段有哪些,怎么样落地?

本篇文章来自于2018年12月22日举办的阿里云栖开发者沙龙—Java技术专场,墨玖专家是该专场第二位演讲的嘉宾,本篇文章是根据墨玖专家在阿里云栖开发者沙龙—Java技术专场的演讲视频以及PPT整理而成。

f0745d64fc7add13c6c65da189c3f9197beda931

摘要:谈到工程师文化,大家都会比较熟悉,或者比较向往。但是到底什么是工程师文化,应该怎么做是互联网企业应该关注的东西。本文将从四个部分介绍工程师文化,首先,工程师文化从何而来?其次,我们为什么需要工程师文化?还有工程师文化要达到什么目标,走向哪里?最后,工程师文化实施手段有哪些,怎么样落地?


演讲嘉宾简介

墨玖(张涛),阿里影业-技术专家;擅长OOP、Spring、Tomcat、分布式、平台架构 ;主导设计并落地淘票票会员体系、卖品业务体系;对交易、会员线应用架构设计及技术演进颇有心得

本次直播视频精彩回顾,戳这里!

PPT下载地址:https://yq.aliyun.com/download/3185

以下内容根据演讲嘉宾视频分享以及PPT整理而成。


本次的分享主要围绕以下五个方面

一、什么是工程师文化?

二、为何需要工程师文化?

三、我们的文化走向哪里

四、如何落实工程师文化

五、近期规划


一、什么是工程师文化?

其实对于工程师文化已经有非常多的解释,这里总结了如下两个方面:

哲学解释-工程师文化是一种内心的欲望与恐惧的表达。对创造的欲望,对世界的恐惧。因为欲望而创造,因为恐惧而改造。创造世界,改造世界。

首先从哲学方面的解释,有一个词叫“自驱”,如果你是一个“自驱”的人,会对哲学解释比较在意,因为哲学层面的解释是从个人出发。

艺术解释-工程师文化是尊重技术和创造的氛围。在这个氛围里,人们因追求卓越而被尊重;因提升生产力效率而被追捧;因美好的代码、设计而欢欣鼓舞。工程师是一群有着卓越追求的专业人。

另外一个解释是从团队方面的解释。怎么去形容团队是具有工程师文化的,团队需要什么样的人,这样的人来了之后把他培养成什么样的人或者他可以带来什么样的东西。这些都是需要事先有个约定,这个约定可以理解成工程师文化的一部分。

b63d526bd7589da27f6e6b2c6bc7354d9f9d495b

可能有些公司是业务导向的,也有公司是技术导向的,但是不管是业务还是技术导向的公司,都需要一个词——“效率”,这个词是工程师文化的一部分。再加一个词,“自由”也是工程师文化中比较重要的概念。


工程师特点

1.热爱创造

Dirty your hand, make something。

2.热爱工具

热爱工具,使用工具,创造工具,传播工具

3.永不满足,精益求精

从不满足现状,总是追求更进一步。你看到Iphone4-X,Huawei Mate20, 我们追求淘票票 102。

4.热爱事业

在你的事业上渴望成为因此而令人尊敬的人。

5.保持理性

保持理性,不做无用之事,用数据说话。理性的意思是说所有的东西需要数据去说话,尤其对于做技术的同学而言非常重要,而不是光靠口说。

6.保持好奇

技术世界千变万化,对新事物好奇是跟上世界潮流的唯一法宝。在中国很多30岁以上的人都会担心会被淘汰,但是如果反问自己,你为什么会被淘汰,自己是不是一直在学习新的知识,新的技术?如果是,那么你就不会被淘汰。对于任何一位工程师,如果想要进步,甚至是想要保持住现在的状态就需要不停的学习。保持好奇是学习的原动力。


下面三条是很多团队的一些管理方式问题,比如说公司或者团队想要提高效率,那么怎么样才能提高效率?怎么样避免做无效率的事情?减少对于效率的阻碍?

7.自由

自由的环境,自由的思想,方能百花齐放、百家争鸣。10-20%的自由时间是对工程师最大的尊重。这是“自驱”的一个表现,对于“自驱”的人自由是必不可少的。

8.信息平等共享

战略、方向、目标;文档、代码、总结。给与充足的信息,不阻碍任何一个渴望进步的灵魂、激发最高潮的思想碰撞。如果在不同部门,不同代码仓库之间信息是不共享的,那么就无法谈效率这件事情。

9.容错

处理错误的正确姿势是分析和总结教训,而不是惩罚犯错人。前者让人改善进步,后者让人萎缩不前。借事修人。任何一个团队都会有瘫痪,都需要成长,那么成长的代价就是犯错误。


二、为何需要工程师文化?

分别从两个方面解释这个问题:软件(技术)问题和管理问题。从结合第一部分所介绍的工程师文化的特点,来思考一下工程师文化是不是可以解决这些问题。

软件问题:

·业务技术挑战

随着软件业务发展,业务复杂性&技术挑战是不可避免。这要求人员对于业务分析能力不断提升、对技术要求也会越来越高。

·质量成本

软件规模的成长带来的不仅仅是测试问题的增加。复杂度,难度的增加是我们难以想象的。规模化的系统质量控制自动化是大势所趋。质量靠拜神的方式不是一个伟大公司的做法。我们需要专业、自动化、人才。

·交付成本

随着软件规模的扩大,交付变得不那么简单。部署自动化、AB Test、最小影响回滚、交付监控、效果回收等等不断的增加的这些词语让我们应接不暇,挑战满满。

·维护成本

软件规模的扩大带来维护成本的剧增。想必大家都听过去IOE。那么如何降低维护成本?我们需要技术创新。


比如说在公司发展的过程中,会遇到业务增长,随之而来带来质量成本,交付成本以及维护成本的上升,遇到这些问题改怎么办。那么最好的解决方式肯定是提高效率,这就回到了上面团队管理方式的问题。当然如果组织发展的特别快,需要的人的能力就要提升,那么之前所有的人工的,非自动化的东西都要被淘汰掉,这时我们需要专业、自动化以及人才。


管理问题:

·流程控制增多

流程控制是公司发展必须的事情。但过多的流程会导致事情难以推进,人员积极性下降。

·组织单元多、利益牵扯

尤其是在我们这个有严重KPI文化的环境,组织单元的增多带来的利益牵扯客观上存在的。邓小平说过,发展才是解决问题的唯一出路。

·沟通会议多

此刻停顿五秒,感受下。

·消耗资源多

办公环境、人员、设备、服务。提高人员ROI, 马老师经常提及。


最简单的问题是当公司大了之后会议很多,团队之间因为利益问题会有很多牵扯,这会导致很多内耗,内耗就以为这效率低。所以我们可以观察到很多大的互联网公司有个特点,就是技术团队要扁平化管理,这就是为了解决这个问题,要尽可能的降低沟通成本,流程减少。


三、我们的文化走向哪里?

这里拿淘票票作为例子,关于环境,我们希望时刻有那么4、5个人,他们身上有这种气息,能影响别人,大家会比较崇拜他的技术。他们荣幸,你我骄傲。每一年我们都有不一样的崭新面貌。与时俱进,独具一格。大家能够因这团队这样的氛围而成长。团队,因你而更加不同。它陪你一起成长,并记录你最纯粹的知识财富。这样的氛围非常重要,下面来的人会更加珍惜这个团队,同时团队也能够正常的往前走,同时经历正常瘫痪。不可能每个人都一直留在团队里,走了一段之后掉队了,也有可能非常出色,但是这是一个机制,它可以保证团队一直往前走。


下图是淘票票关于这个问题的总结:即具备崇尚技术的精神,成为技术海洋的灯塔,成就卓越的团队,最后成为更优秀的自己。

2a7f702b7166375702b12a240795063c10bdf65f

四、如何落实工程师文化?

落实的东西必须具体,简单说就是个人该怎么做?团队该怎么做?

文化拆解-身体力行

首先,每个人要把自己的部分做好,自己所谈东西都要身体力行的实现。这里比较重要的是要主动,主动意识、执行力。主动这个词在很多时候可以帮你解决很多问题。更专业的讲,“自驱”和“主动”其实是相形的,这不仅是工程师文化需要,对于个人也是同样重要。另外,先做,先完成再完美,边做边调整,快速迭代,done is better than perfect。

还有,必须减少管理时间。管理的最大作用规避责任与风险。往往越大的团队贯彻工程师文化越困难。信息传递衰减、人与人之间的利益、观念不同很难达成优秀的结论。一个经典的例子就是埃隆马斯克,一天工作16小时,比两个人每人工作8小时更有效率。原因是一个人不需要 开会、不需要与谁达成共识,也不需要在项目中帮助其他人。他只需要持续地工作、工作、再工作。

文化拆解-效率优先

不靠堆人取胜,我们需要一群愿意持续优化世界的运转效率的人;鼓励、奖励、激励效率提升的事;永不满足,不断精益求精。很多互联网企业追求一个“快”,因为不快的话你的东西就没有机会发布出来,所以可以理解为什么这些互联网公司的加班非常多。

文化拆解-数据说话

数据化是工程师必须掌握的一项基础技能,因为他们要解决客观的问题、信息资源瓶颈

,所有的数据要客观的、逻辑的、理性的展示。比如要做一个项目,或者工具,你应该怎么样把它展示出去,甚至卖出去。那么你需要有一些描述,特点,优缺点,方案,不同方案的优势,这些东西需要精确的量化来展示。这样相关决策的人就可以很清楚的了解你的项目,减少沟通成本。

文化拆解-关注成长

公司领导需要考虑公司,团队和个人,团队成员要考虑团队和自己。任何一件事情都要考虑到人。鼓励、奖励个人成长,个人的成长就代表团队的成长。

在成长性市场上,红利非常丰富。源源不断的问题和需求;迫在眉睫的性能瓶颈优化;数不胜数的从0到的变革。这是工程师的最为幸福。这是他们最大的烦恼是时间不沟通。如何合理的规划时间、深耕市场 获得最大的成长和价值这最重要。市场成熟,红利褪去。团队只能靠内部消耗争取资源时,工程师文化也就随风而去。这时,需要的是破局和坚持。

个人成长,任何一个工程师文化的团队都应该是个学习型团队。每一个人都需要有个人成长通道。职业生涯规划 是必不可少的。

自我突破、优胜劣汰。每个人都可能达到自己的瓶颈,当这个瓶颈到达时。团队和上一级需要向同学提供指导和帮助。当然一个团队需要长远发展,就必然需要有汰换。一个追求卓越的团队也要淘汰多次掉队的同学,这时梯队也就慢慢形成。

文化拆解-精英导向

实力是唯一获胜逻辑。外行领导内行应该工程师文化所不能接受的。时刻记住Linus的经典名言:talk is cheap, show me the code。

优秀的团队吸引优秀的人。太多的社会进步证实,创新属于少数优秀坚持的人,出色的工程师以一当十,严苛的招聘要求和昂贵的人力成本就是我们阿里对技术的最好认可。要提前做好精英成长规划。

前面讲了很多“自驱”,“效率”和“自由”这几个事情,但是没有讨论到“责任”,因为前面几个点背后就是“责任”。在公司发展过程中,会遇到很多复杂的问题,这些问题需要更专业的人才能解决。当企业很小,2-3人,没有别的选择。但是规模越来越大,很多困难的问题只有依靠专业人士,这时不允许你不进行专业化。


五、近期规划

文化建设,重要的是培养土壤、播种种子,建立机制。

1. 初步,做宣导。

2. 其次,布道,播种子,做激励政策。

3. 记录事件,推崇代表人物。

4. 半年度、年度总结,提升技术高度。


下图是淘票票的一些落实事项,需要尽早的把公司的期望和愿景向公司成员传达下去。而且要成员在公司所希望的方面有了进步,就需要实施奖励机制。同时公司要求也不能过于虚假,因为这样没有任何意义。

40de71ddbda86257e28b5c36374c0026168e17a9

最后推荐几个同行们的文化,其中Netfix的文化非常值得学习,他们也提到了两个关键词,一个是“自由”,另一个是“责任”。(下图中链接可以可下载PPT获取)

8f3cf3c5c65cc1551e2578aa115fd49b3b35632c 

本文由云栖志愿小组董黎明整理 编辑


社群技术交流:【阿里Java技术进阶】每周在群内进行【技术培训直播】和【在线回答技术问题】欢迎点击link入群: http://tb.cn/gXRstIw

或者 钉钉扫码入群:

6d9936ad24f3ddd048fdbf84ab662820df8f0c1b

相关文章:

阿里云栖开发者沙龙-Java技术专场 (最全资料下载)

【Java开发者专场】阿里专家梁笑:2018双十一下单成功率99.9%!供应链服务平台如何迎接大促

【Java开发者专场】阿里特邀专家徐雷:Java为王,互联网高并发架构设计选型之路

【Java开发者专场】阿里专家杜万:Java响应式编程,一文全面解读


相关文章
|
4月前
|
SQL Java 数据库连接
为何JDBC是Java开发者的“心头好”?原因竟然这么简单!
为何JDBC是Java开发者的“心头好”?原因竟然这么简单!
44 3
|
3月前
|
架构师 前端开发 Java
Java开发工程师的职业规划应该是什么样的?
Java开发工程师的职业规划涵盖多个阶段,包括初入行业(0-1年)、技能提升(1-3年)、技术专家(3-5年)及管理或专家路线选择(5年以上)。各阶段设定了明确的技能要求与职业目标,从掌握Java基础、常用框架到深入研究高级技术、微服务架构乃至担任管理职务或成为技术专家。通过持续学习与实践,结合个人兴趣,Java工程师可在技术或管理领域找到合适的发展方向,最终实现职业成功。
479 83
|
23天前
|
安全 Java 程序员
Java中的异常处理:从新手到专家
在Java编程的世界里,异常处理是每个开发者必须面对的挑战。本文将带你从基础的异常概念出发,逐步深入到高级处理技巧,让你在遇到代码中的“意外”时,能够从容应对,甚至化险为夷。
|
2月前
|
前端开发 Java 数据库连接
Spring 框架:Java 开发者的春天
Spring 框架是一个功能强大的开源框架,主要用于简化 Java 企业级应用的开发,由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立,并由Pivotal团队维护。
75 1
Spring 框架:Java 开发者的春天
|
2月前
|
Java 数据库连接 开发者
Spring 框架:Java 开发者的春天
【10月更文挑战第27天】Spring 框架由 Rod Johnson 在 2002 年创建,旨在解决 Java 企业级开发中的复杂性问题。它通过控制反转(IOC)和面向切面的编程(AOP)等核心机制,提供了轻量级的容器和丰富的功能,支持 Web 开发、数据访问等领域,显著提高了开发效率和应用的可维护性。Spring 拥有强大的社区支持和丰富的生态系统,是 Java 开发不可或缺的工具。
|
2月前
|
存储 算法 Java
Java的Set集合以其严格的“不重复性”著称,使开发者既好奇又困惑
Java的Set集合以其严格的“不重复性”著称,使开发者既好奇又困惑。本文将探讨Set为何如此“挑剔”。Set接口不包含重复元素,适用于需要唯一性约束的场景。其内部通过哈希表或红黑树等数据结构和哈希算法、equals()方法来确保元素的唯一性。示例代码展示了Set如何自动过滤重复元素,体现了其高效性和便利性。
40 2
|
2月前
|
Java 开发者 UED
Java中的异常处理:从新手到专家
【10月更文挑战第9天】在Java的编程世界中,异常处理是每个开发者必须面对的挑战。本文将引导你从基础的异常理解到高级的处理技巧,通过具体代码示例,展示如何优雅地管理程序中可能出现的错误和异常情况。无论你是刚开始学习Java,还是希望提高你的异常处理能力,这篇文章都将为你提供宝贵的知识和技巧。
|
2月前
|
Java 程序员
Java中的异常处理:从新手到专家
【10月更文挑战第9天】在Java的世界中,异常处理就像是驾驶时的方向盘,掌握它,你就能驾驭代码的运行方向。本文将通过深入浅出的方式,带你了解Java异常处理的奥秘,从基本的try-catch语句到自定义异常类的创建,让你的代码更加健壮和易于维护。
17 2
|
3月前
|
设计模式 架构师 Java
Java开发工程师转架构师需要学习什么
Java开发工程师转型为架构师需掌握多项技能:精通Java及框架、数据库与分布式系统;熟悉设计模式与架构模式;积累项目经验;提升沟通与领导力;持续学习新技术;培养系统设计与抽象能力;了解中间件及开发工具;并注重个人特质与职业发展。具体路径应结合个人目标与实际情况制定。
75 18
|
3月前
|
Arthas Java 测试技术
Java字节码文件、组成,jclasslib插件、阿里arthas工具,Java注解
Java字节码文件、组成、详解、分析;常用工具,jclasslib插件、阿里arthas工具;如何定位线上问题;Java注解
Java字节码文件、组成,jclasslib插件、阿里arthas工具,Java注解