微信号:yunqiinsight

介绍:云栖社区是由阿里云负责运营、阿里巴巴技术协会和阿里巴巴集团各技术团队提供内容支持的开放式技术社区.

张雪峰:创业团队极速发展过程中的分分合合

2018-05-30 22:14 云栖社区

云栖君导读:2018第二届研发效能嘉年华专场,云效邀请了饿了么首席技术官张雪峰带来主题为《创业团队急速发展过程中的分分合合》的演讲。本次演讲主要从三个方面进行讲述,首先介绍了著名的康威定律,随后阐述了创业团队不同阶段的分与合,紧接着对分与合中的lesson learned进行了深度地刨析。


直播视频回顾地址:http://click.aliyun.com/m/51153/


PPT下载地址:http://click.aliyun.com/m/51154/ 或点击左下角【阅读原文】进入下载!



以下是精彩视频内容整理:


康威定律@饿了么


康威定律的核心理念就是所谓的软件架构和组织架构是密不可分的,饿了么从创业至今已经有十年之久。2009创业之初的技术团队只有1个人,也没有软件架构。在09年到13年的稳定发展期技术团队发展到了几个人,并且当时也只有两个系统,分别是用户下单的系统与商户处理订单的系统,那时还没有物流,都是商家自己完成配送。爆发增长期是13年到14年,在短短两个月内订单数量10万猛增到100万,技术团队只有35人,由于订单数量的剧增,考虑引入运维。到2016年底,技术团队已经达到900人,从35人到900人的发展过程中也出现了很多分分合合,包括组织架构和软件架构。到2017年底,已达1800人,也在不断尝试一些新的挑战,比如智能调度、异地多活、饿百融合。


创业团队不同阶段的分与合


创业之初仅就饿了么这个行业来说是业务来驱动组织架构,进入稳定发展后,这时业务也进入了稳定期,这就需要开始去做下一个突破点或者说是爆炸点,也就是必需要创新。对于饿了么来说,在发展的稳定期间尝试着给商家做一个系统,甚至给商家买电脑装软件。通过线下的沟通交流,包括自己去体验痛点。经过不懈努力对新的系统不断的改进找到了痛点所在,把问题解决。当订单数量达到10万时,就出现了一些问题。比如系统会经常瘫痪,业务的不断扩大已经超过了技术所能承载的力量,所以支撑业务的架构和技术对业务发展非常重要。


创业团队或组织架构有两条分合规则,一是高耦合低内聚时就要考虑把高耦合变成低耦合,把低内聚变成高内聚,这是分与合的一个规则。团队的稳定性也是需要考虑的问题,当两个系统交互非常多也就是分与合的规则搞不定的时候,我们就会考虑引入中间层。虽然引入中间层会导致性能上出现一些问题,但是在一定场景下也是一种比较合适的解决方案。


这里有相关案例,外卖营销之领域归属与跨团队交互,凡是涉及到盈利的公司都要涉及到营销到底属于哪个团队的问题。营销会涉及到大数据、算法以及BU,表面上交易是通过app或者红包分享等方式进行的,但事实上这只是个支付界面,在其背后是很复杂的。对于做业务的团队可能对大数据、算法不是很专业,这就需要跨团队交互。


分与合中的lesson learned



在创业之初公司只有一个老板、一个程序员和一个业务员。也就是创业三马车,包括技术、产品加业务组成了最初的创业团队。发展过程中会有一些痛点,即产品、技术、运营三大组织间的分分合合问题。在一级部门上,倾向产品、技术分离 (CTO & CPO),而在二级部门上,倾向产研(PD)合一(横向技术团队无此问题)。CTO虽然有直线产品团队,但需要 follow CPO 整体产品规划与相关流程规范 (实际很少过问产品问题),CPO虽然有直线技术团队,但需要 follow CTO 整体技术规划与相关流程规范 (实际很少过问技术问题)整体上,算虚实汇报的一种,不同角色 follow 不同规范。


创业之初的关键就是要“快”,简单来说就是怎么发展的快就怎么发展,PHP + RN 最好。进入稳定发展期后,这个阶段要求稳,快已经不是最重要的,稳定下来之后再去发展技术问题。到10倍高速发展期的时候,随着业务的快速增长,技术也需要快速发展,这时做平衡是有一定难度的,对于公司来说是一个比较痛苦的过程。随着持续高发展后人员增多时流程规范也一定要跟上。其次就是一定要鼓励员工创新,鼓励创新是公司今后发展的源泉,只有不断创新才有可能不断的突破发展。


饿了么创业初期是没有KPI的,随着发展KPI的数字越做越多,慢慢上升到OKR。OKR也只是一个工具,许多公司在实践说自己是OKR,但实际并非如此。OKR如果站在公司的角度就是全局最优,公司就一个或两个大的指标然后分解,而不是说像之前一样每个团队都有自己指标。但OKR也会有自己的矛盾,这就是局部最优月全局最优,站在组织架构的角度来讲,局部最优到最后往往演变为局部的PK。如果出发点是全局最优,这时就需要在某一时刻要牺牲某个团队的某个指标去保护大的指标。所以局部最优与全局最优是一个很关键的问题。对于如何拆分团队问题,到底是按业务模块来拆分还是按功能方式来拆分团队。饿了么对于这个问题的做法就是随时应变,没有固定分法与绝对的答案。


如果现实情况暂不适合团队拆、并或引入中间层,如何处理这个问题是一个关键,首先可以跨团队共担OKR,也可以临时成立虚拟团队或成立特殊虚拟团队,如Growth Team,但Growth Team也存在一个问题,Growth Team不是每个公司都能做,因为这需要一个PU,他需要懂一些技术、产品、数据甚至还要懂一些AI、运营,可能还需要去线下跑商户,这样的全才的角色是很难找到的,最终找到一个大家都认可的 PO (product owner) 领衔主演。


归根到底,不管是软件架构还是组织架构解决的是两个问题,一是复杂度问题,不管是团队复杂度还是技术复杂度;一是稳定性问题,包括团队稳定性与技术稳定性问题。有时两个KPI可能是有矛盾的,它们在局部可能都是最优的,但是放在一起确是最次的。不管是组织架构还是软件架构,都是在不停的调整的。


简单总结架构的分分合合,架构可以分为几种,一是组织架构,整个技术的顶层设计。其次就是领域架构,需要找到合适的专家。最后就是技术架构,因为现在已经有很多技术可以直接应用,不需要自己去研发。无论是不是创业公司这些都是至关重要的。


end


胡晓明:“自主研发、共生共存、不碰数据是我们的三条生命线”

一份关于数据科学家应该具备的技能清单

阿里云弹性裸金属服务器-神龙架构(X-Dragon)揭秘

深度剖析卷积神经网络

更多精彩

点此下载PPT!

 
云栖社区 更多文章 阿里云技术专家金九:Tengine HTTPS原理解析、实践与调试 阿里HBase的数据管道设施实践与演进 深度剖析卷积神经网络 一份关于数据科学家应该具备的技能清单 阿里HBase的数据管道设施实践与演进
猜您喜欢 黑客马拉松需要什么样的创新项目 【交流分享】多终端架构 ops world 2016深圳-Zabbix高级玩法PPT 测试,遇见不同(上篇) 你为什么努力工作?我是说除了钱