打造高质效的技术团队 —— 酝酿篇

入职半年后的2013年6月份左右,淘宝浏览器团队和搜索团队被剥离出阿里巴巴集团,成为阿里巴巴与UC优视所成立合资公司——广州神马移动信息技术有限公司——的主体。在合资公司正式成立之前,主管在一次与我的面谈中告知“我们得成为一家小公司的一部分,且可能要重新基于Chromium的最新内核开发新的浏览器”(注:“新的浏览器”正是指现在的“UC浏览器电脑版”)。当听到这一消息时我非常高兴,因为看到这是一个难得的团队重新审视过去和甩掉历史包袱的契机。在这次面谈中,我回应主管“看来我得好好发挥一下”。也从这次谈话开始,我非官方地成为了开发团队的软件架构师。之所以说是“非官方”,因为我只是在内心任命自己成为了团队的软件架构师。

改变整个开发团队各种乱相的第一步是让工作有章可循,即制定开发活动的各方面规范。我在入职之初曾发起过《软件开发指南》(后面简称“《指南》”)的编写,初衷是试图通过工作规范化去改善团队的工作质量与效率,而此时要做的是全方位地充实其中的内容。

规范首先要立足于技术角度,指导团队解决在开发活动中因不遵守Chromium架构而导致的各种混乱问题。在之前的淘宝浏览器时代,团队对所扩展功能的代码采用集中组织的方式(如下图左边所示例的那样)。然而,这种组织方式存在两大弊病:一,表面上工程师无需完全掌握Chromium的架构就能开展工作,但也正因如此导致模块间存在混乱的依赖和耦合关系;二,由于没有清晰的架构,工程师增加文件和目录时完全没有指导思想,这进一步助长了混乱。新规范要求将一个功能模块采用“打散”的方式组织(如下图右边所示的那样),而“打散”到什么程度完全以Chromium的架构为参照,即要求扩展功能的代码与Chromium的架构完全吻合。尽管这一改变看似很小,但却迫使工程师在日常工作中得先理解Chromium的架构,所带来的积极影响却极其深远,因为它能彻底杜绝大模块的混乱问题!团队中的小盘同学有一次对我说“现在(按照规范)增加文件和目录很是轻松”,而这一工作之前很是让人纠结,那时大家能感受到别扭但却不知如何解决。

规范还得从技术层面解决自有代码与原生代码的解耦问题。由于我们的产品是对Chromium开源项目的二次开发,需要通过良好的软件设计解耦使得能快速跟进其发展步伐,以解决团队长期遭受的内核升级之痛。在淘宝浏览器时代,由于没有明确的规范,以及检查规范实施是否到位的手段,使得自有代码与Chromium原生代码难以明显区分,导致在每次内核升级时得花大量的时间进行代码合并,甚至对不少代码进行重放。新规范要求在Chromium原生代码中所变更的每一处都采用宏加以控制,其所达到的效果是我们只在Chromium的原生代码之上做加法。另外,宏在下次内核升级活动中起到了“灯塔”的作用(这是团队的雷翼同学做过3个内核版本升级后的切身体会)。新规范还从软件设计层面多方位指导如何实现解耦。

显然,《指南》中不可能规范开发活动中的每一处细节,这就需要整个开发团队有更为明确但抽象的开发策略以指导大家对所面临的未加规范的内容进行决策。为此,我在《指南》中明确“以快速跟进Chromium内核的发展”作为整个开发团队的开发策略。从用户层面,这一策略使得他们能更早用上安全漏洞更少、性能更好的产品;从开发团队层面,这使得我们能通过快速跟进的方式,将内核升级的工作以小步快跑的形式推进。这一策略的制定同样在将来产生了深远的影响,它甚至引发了开发团队与其他团队的一些思路碰撞,这是我们后续篇章要涉及的内容。

除了规范层面,在进入UC浏览器时代之初,团队在技术层面也积极储备。雷翼与小盘同学完成了git的部署并引导整个团队从SVN转向git;雷翼同学完成了buildbot的部署,buildbot使得我们能快速定位开发过程中引入的问题和及时发现对Chromium原生代码变更不符解耦规范的内容;小盘同学则开始着力于更深层次的性能优化;另外几位同学与我一道将淘宝浏览器的一些模块搬到了新的Chromium内核上,并对代码结构根据《指南》的要求进行了优化。

即便开发团队那时为UC浏览器电脑版的开发准备工作开展得如火如荼,但管理层对后续开发究竟基于淘宝浏览器还是最新的Chromium内核实施仍犹豫不决。基于淘宝浏览器开发的好处是项目时间更可控,但整个团队得背负之前的很多历史包袱,且很难借助这次开发新浏览器的机会卸去这些包袱;基于Chromium全新内核开发虽需要更多的开发时间,但这也是整个团队重新塑造自己的一次大好机会,只是当时管理层对团队能否抓住这次机会重塑并没有十足的信心。在最后一次开发团队内部开会讨论最终的实施方案时,好几位同学与我一道力荐基于最新的Chromium内核实施,为了说服大家采纳这一方案我以“这次不同,因为有我在”这句话想给团队带去更足的信心,而不少同学报以掌声表达了自己的意愿。

也就这样,整个开发团队酝酿好了抓住这次机会重塑自己!

至此,相信读者所看到的更多是技术因素,而没有管理因素的影子(读者会在将来的篇章中看到,请保持耐心)。对于中国的技术团队来说,我坚信促使整个团队改善的首要驱动力一定来自技术领域,只有采用以技术领域为切入点逐步渗透到管理领域的方式,才更有可能让团队发生质的变化。原因在于,不少工程师天然地将技术与管理做了明显的割裂,这些人关注的焦点在于掌握更广、更深的技术,对于管理能力并不大在意,且对自我管理能力很是不以为然。然而,真正专业的工程师也好、管理者也罢,很重要的一点却是他需要具备良好的自我管理能力。自我管理能力的普遍缺失,很好地解释了中国的技术团队为什么难以高效运作,也从某种程度上解释了不少工程师单干可以但合作却不行。

相信读者在自己所呆过的团队见过各种技术规范,但大多情形下这些规范被束之高阁。与之相似地,UC浏览器电脑版技术团队在技术规范的真正落地方面也经历了一定的过程,这是后一篇文章我们将一同回顾的内容。

作者微博:@至简李云

时间: 2024-10-08 23:31:14

打造高质效的技术团队 —— 酝酿篇的相关文章

打造高质效的技术团队 —— 混乱篇

2012年平安夜,我离开工作了近十年的通讯行业投身互联网行业,入职了当时阿里巴巴旗下的淘宝浏览器开发团队.过去的两年,这个团队完成了从淘宝浏览器过渡到UC浏览器电脑版开发团队的巨变.之所以说是巨变,是因为整个开发团队的工作方法.工作质量和精神风貌在过去的两年发生了翻天覆地的变化.在这个过程中,我作为"领头羊"引领着开发团队向前发展,并在最近有机会成为了带领包含开发和测试在内的整个技术团队继续向前发展的负责人. 个体在两年内取得巨大变化相对容易,而对于一个团队来说挑战就大了很多,因为其中

《打造高质效的技术团队》总结

总结自:阿里巴巴李云的<打造高质效的技术团队> 一.现象 1.职业化水准偏低 1.1 服从 vs 责任:没有思考,领导说了就做 1.2 勤劳 vs 效率:加班不等于能力和贡献,要提高质量和效率 1.3 团伙 vs 团队:合作,成员往往自我管理能力非常差 1.4 技术能力 vs 专业做事:心态 2.能力与价值的认知 2.1 能力不等于高价值 2.2 如何输出价值 3.基层技术管理缺失 3.1 忽视管理的价值 3.2 过度关注结果而忽视过程 二.思考 1.从代码入手 2.1 技术切入点好于管理切入

打造高质效的技术团队

2012年平安夜,我离开工作了近十年的通讯行业投身互联网行业,入职了当时阿里巴巴旗下的淘宝浏览器开发团队.过去的两年,这个团队完成了从淘宝浏览器过渡到UC浏览器电脑版开发团队的巨变.之所以说是巨变,是因为整个开发团队的工作方法.工作质量和精神风貌在过去的两年发生了翻天覆地的变化.在这个过程中,我作为“领头羊”引领着开发团队向前发展,并在最近有机会成为了带领包含开发和测试在内的整个技术团队继续向前发展的负责人. 个体在两年内取得巨大变化相对容易,而对于一个团队来说挑战就大了很多,因为其中包含了技术

传统企业打造互联网技术团队

最近传统企业向互联网转型的话题越来越热,对于处于不同行业的人对这个肯定有不同的看法.我作为一个一直在互联网从事技术研发工作的人也简单来谈谈自己的感受. 最近也和一些传统企业的相关人员做了交流,首先肯定主要是在技术层面上.其实现在很多传统企业进行转型主要有两个方面,一个是电子商务,另一个就是云计算.做云计算的目的是为了改善现有的IT基础设施,能够更加适合企业在各个业务上的增长.当然就目前的情况来看,还没有哪一家传统企业真正的算转型成功了,很多企业苦不堪言,甚至很多已经失败,然后吸取经验又从头开始,

Lyft高管的技术团队管理实战

Lyft 的技术总监沈思维分享了他对于管理技术团队和打造工程文化的经验,也欢迎添加他的微信公众号"人家的屋顶"了解更多(微信公众号ID: othersroof).沈思维毕业于密歇根大学和卡内基梅隆大学.他早年在 Google 任软件开发工程师 (2005 - 2011),2011年加入 Twitter,后任产品安全部高级研发经理,负责反垃圾及帐号安全方面的工作.2015年底至今在 Lyft 担任研发总监,负责包括支付平台,风控平台.开放平台在内的多个团队.工作之外,沈思维关注并致力于提

出色技术团队的关键要素

原创作品,同意转载,转载时请务必以超链接形式标明文章原始出处 .作者信息和本声明,否则将追究法律责任. http://blog.csdn.net/hzliyun/article/details/7078947. 对于出色技术团队的关键要素能够从下图中找到.以下让我来对其进行解读. 这幅图首先映入眼帘的是,它是一个三角形,而其顶点则是求精.求精离不开以下三个要素的支持,即分享.责任和合作.求精应是技术团队所追求的最高目标,仅仅有拥有求精的精神,团队的技能才干得到逐步的提高,也仅仅有求精的精神,团队

微管理——给你一个技术团队,你该怎么管

微管理--给你一个技术团队,你该怎么管(最简洁.最高效的团队管理落地实践方法,IT/互联网行业15年管理实践 + 中欧商学院EMBA经历,杨老师手把手教你如何用"微管理"打造高效团队/京东:最简洁高效的IT/互联网团队管理实践方法) 杨立东 著   ISBN 978-7-121-22886-5 2014年5月出版 定价:59.00元 236页 16开 编辑推荐 1.最简洁.最高效的团队管理落地实践方法,IT/互联网团队管理的宝典,用互联网思维打造的技术管理NO.1实战手册. 2.IT/

技术团队激励方案

技术团队激励方案 在一个团队中,除了极少时间的心情亢奋,更多的时候是实现需求,修复bug,实现新项目,这一定是一个心情压抑的员工的总结:在一个团队中,我们实现了xx项目,系统架构灵活,性能稳定,为公司的营收作出了巨大的贡献,这同样是一个员工的看法.那么在我们自己的团队中,我们看到的是什么情形,相信无论员工还是领导都希望看到第二种.我们怎么才能实现这个目标?我们距离这个目标还有多远,甚至说我们有没有这个目标呢? 上面提出了很多问题,我们最终要实现的是公司蓬勃发展,员工激情满满,那么有没有这样的方案

如何管理初创公司的技术团队?

管理学博大精深,希望本文能对阅读此文的人有所帮助. 打造学习型组织 学习型组织,这是<第五项修炼>里面讲的一个核心概念,我觉得这个概念特别适合技术性组织,因为技术人才是需要一直学习提高的,不然不管是作为管理者还是被管理者,都将会逐步散失行业竞争力. 彼得·圣吉 学习型组织理论认为,企业持续发展的源泉是提高企业的整体竞争优势,提高整体竞争能 力.未来真正出色的企业是使全体员工全心投入并善于学习,持续学习的组织--学习型组织.通过酿造学习型组织的工作氛围和企业文化,引领不断学习,不断进步,不断调整