千人技术团队背后的CTO:CTO的修炼远不止于技术修炼
当绝大部分的技术人还在思考创业团队 CTO 需要有什么胜任力的时候,有人已经把技术团队从 7 年前的不足 10 人带到了千人规模的技术团队。
聊起这 7 年的经历和故事,远比在纸上讨论“CTO 是否要写代码”要精彩得多。现实中的 CTO 面临的挑战也不止于技术挑战,还有业务挑战、团队挑战、视野挑战等等。
9 月 9 日,51CTO 旗下 CTO 训练营第五季的开营课上,国美互联网 CTO 于斌平为现场的 40 位技术管理者分享了他在国美 7 年的 CTO 经历以及对 CTO 七大基础能力的理解,从这些经历里面我们也可以窥见一些领悟。
CTO 七大基础能力
能力一:核心目标管理
明确公司目标,充分理解业务,技术目标与之配套
01
与公司目标一致
作为 CTO,要时刻明确公司目标,实现公司目标是首要任务。其次才是与之配套的技术目标。
02
充分理解业务,比业务更熟悉业务
如何让业务增长,是每个做技术管理的人都要考虑的问题,也是最根本的价值体现。
每个小团队的业务/技术人员只需了解所负责的业务即可,但作为 CTO 要比这些人更了解业务,了解每个业务的同时还要把所有业务串起来,明白整个公司的业务和规划是什么样。
03
支撑业务,引领业务发展
大家常说,互联网行业技术要引领业务,但支持业务正常开展是基石。在业务正常开展的基础上,才能站在未来看现在,才能进一步创新,通过技术驱动/引领业务发展。
在核心目标之下本质的内容,是企业愿景及战略目标、业务目标、技术战略、产品规划、行业分析等战略层次部分和系统架构、系统建设等战术层次部分。
如出现 CTO 和公司/CEO 的目标不一致情况,只有两条路,要么调整到一致;要么离开。
技术管理者充分理解公司目标之后,就是要确立非常明确的技术目标。
主要列举以下几点:
整体技术战略目标。
眼下要完成的事&近期要完成的事&中长期要完成的事。
技术路线&实现方法。
技术架构。
建立和带领团队。
规范、制度、流程。
考核方法。
当然,这些内容不是一成不变,而是不断修正的过程。
能力二:项目管理
提炼是“基本功”,合理分解是“基本规范”,沟通是核心
无论有多少个部门、是瀑布/敏捷开发、还是大小的各种目标,所有都可以拆分成件件小事,每件事都可当一个项目来看待。
如下图,左侧是九大项目管理,右侧是四个关键环节。
左侧图中所示的这些技术管理者必备的常见基本技能,大家都已经很了解,在此不一一展开。
右侧是提炼需求、分解需求、沟通、如期上线等四大关键环节:
提炼需求。面对老板及业务提出的众多需求,从中提炼出核心的目标是“基本功”。当然是在充分理解业务下的情况下,才能做出清晰正确的梳理和判断。
分解需求。提炼出核心需求后,要根据轻重缓急合理的拆分需求,分解成多个项目阶段是“基本规范”。这里等同于敏捷开发过程中的合理迭代,但切记要先上线简单可用版本,之后再纵向切,逐步推进。
沟通。沟通是项目管理的核心,管理过程中,沟通对最终结果起到决定性作用。
如期上线。项目的最终目标是“如期上线”,否则之前做的所有事都是白用功。“如期上线”不是简单的上线完成任务就行,质量和成本一个都不能少,尤其是质量不能忽略。
更不能为了上线而上线,表面上上线完成了项目,但实际跟原来的目标相差很远,甚至用户都没法使用。
其中,沟通、资源整合和成本控制这三方面无论项目大与小,都贯穿整个管理过程,且对于大多技术管理者来说,多少会遇到一些难题,下面分享一些方式方法。
01
沟通
前面说到,沟通是项目管理的核心,但很多技术管理者并不是很擅长沟通。
面对不同的人,要如何进行沟通呢?方法如下:
与职级高的人。提倡跨级沟通,但需采用一些技巧,如发送邮件同时抄送直属领导;如和直属领导打招呼,再去汇报;如非正式,“恰巧偶遇”,不经意提及;如从团队中找到善于沟通的人去做沟通。
与职级相同人。和同级别人沟通,就需要把技术语言翻译成非技术语言,以便业务、财务等不懂技术的管理者更好的理解。
与团队和下属。初创/互联网公司与下属的沟通相对开放,职级的观念相对较小。但对于大型传统的公司来讲,下级会对上级不自然产生戒备/恭敬的心态。技术管理者需要做的是先缓解心态,之后像朋友一样坦诚的去沟通。
与合作商。与合作商沟通,要时刻谨记自己代表的是公司,然后是合作共赢,找到利益平衡点,把可能的情况先谈清楚了,避免后续一些不必要的麻烦。
02
资源整合
一个项目完成与否,资源会从中起到很大作用。资源在未整合之前大多是零散的,要发挥其最大的效用,转化为竞争优势,为企业创造价值,还需要运用科学的方法将不同来源、不同效用的资源进行配置与优化,使有价值的资源融合起来,发挥“1+1>2”的放大效应。
业务、营销和财务这些属于企业内部资源,合作商、市场和投资方属于外部资源,这些大家都很了解。这里需要注意的是直属领导/领导的领导是很好的内部资源,用好会事半功倍。
03
成本控制
很多人感觉做技术管理和成本没有关系,成本是采购才会考虑的问题。
实则不然,例如:
时间和人力。如一个项目管理不善,因工作效率或其他原因,导致不仅超时完成,还用人过多,这是看不见的最大成本浪费。如一个项目研发三个月,最终没有上线放弃,这也是一种成本浪费且还可能丧失机遇。
招聘牛人。要招聘当前需要的人,一些技术牛人可能未必适合当前阶段。初创小公司不需要很牛的人,只需要成熟技术,能支撑业务,保障业务的正常运行就好。当业务达到一定量,才需要招聘牛人,反之就是成本浪费。
超前技术。很多时候,时间和人力的浪费,就是因为招聘牛人,研究超前技术所致。所以在每个阶段,需考虑技术是否合适。
技术方案。不要迷信最好的技术方案,根据实际情况,采用最快方式实现目标。
综上分享的核心目标和项目管理是做技术管理最基础的胜任力,下面我们来分享作为CTO必备的看家本领,如下图:
如图中所示,一名合格的 CTO 必须具备的四大看家本领分别是架构建设、产品能力、研发能力和基础建设。
能力三:架构建设
CTO 应该精通大架构,不是仅仅单一的技术架构
提及架构,很多人认为是代码的架构,涉及方向也是采用哪种框架,是开源还是自研等。这里分享的架构是作为一个 CTO 应该精通的大架构,如下图:
业务架构。业务架构是 CTO 应该首要知晓的,就是所处公司的业务组成及发展规划,清楚具体业务,以及它们之间的关系,是相关,还是独立等。
应用架构。对应业务,决定采用什么样系统配套支持,是要采购,还是必须自研,是纵向独立划分,还是横向逻辑划分。
数据架构。一定要了解数据流的现状,很多技术牛人会忽视数据架构,对于数据如何存储、如何流转、安全机制都不是很了解,往往信息安全问题,就是因数据流出现状况所致。
技术架构。这里就是有些系统架构,如代码框架、中间件、服务治理等。
运维架构。进行运维建设、安全建设等,做好风险控制,针对系统、账户、财务做好安全保障。
从业务、应用、数据、到技术、再到运维整个贯穿下来,就是做 CTO 应该有的视点,切记不是仅仅做单一的技术架构,那是架构师或研发主管应该做的事情。
如下图,是电商行业基本的技术架构:
如图中所示,用户层/流量入口、业务单元、应用系统、业务服务、中间件、平台层,这一层层逐级下来是一个很清晰的电商行业比较通用的架构。作为 CTO 要清楚每一层的数据流、运行机制,由哪些人在主导,关键负责人是谁。
如下图,是架构设计原则:
做开发的人对于这个图都很熟悉,可用性、可扩展性和成本这三大原则大家应该都很了解,这里不一一展开。
作为 CTO 要走在前面,在扩展、成品和可用三者制约的情况下,架构要如何建设?
建议遵循 DID 原则,按照 20 倍体量去设计,因会遇到如双十一等流量猛增的情况。之后,开发按照 3 倍的体量去实现,上线按照 1.5 倍的体量去部署。
能力四:产品能力
交互和业务逻辑是基本功,懂技术实现和项目管理是升华
作为 CTO 首先要很清楚研发的系统/产品,最终用户是谁?根本诉求是什么?之后才是用户体验、业务和产品的设计及产品创新。一定切记,从用户、业务、运营的三个角度出发去设计产品。
01
用户体验
产品整体要简约而不简单,提供给用户应该是视听上的体验,还要强调舒适性。操作方面,要尽量满足易用/可用性。目标信息尽可能的醒目而亲近,让用户能认同、抒发自己的内在情感。
02
业务设计
要充分理解产品背后的业务逻辑,基于市场目标和公司业务需求,梳理业务流程,勾画业务蓝图,设计业务场景及功能,分析和优化流程。业务、财务、数据、用户操作等设计要尽可能形成闭环。
03
产品设计
依据业务蓝图和功能设计软件产品,重要的是如何让用户用的“爽”。最后的输出结果才是 PRD(是结果不是目标)。
04
产品创新
创新方面,要以潜在的需求为出发点,开发出具有差异性或全新的产品,将潜在的需求激活为一个现实市场,实现产品价值,引领/驱动业务发展。要清楚产品上线仅是开始,还需以数据为检验标准,不断运营和优化。
这里需要提醒的是,有的产品经理侧重于交互,但对业务逻辑不是很清楚。有的产品经理很明白业务逻辑,但交互方面较弱。
一名合格的产品经理,交互和业务逻辑是两大基本功,在此之上,还要知道产品如何技术实现、也具备一些基本的项目管理能力。
走的相对较远较顺的产品经理,一定是对上要懂 CEO,对外要懂市场、懂用户,对中间要懂业务,在实现方面还懂一些开发的逻辑。
能力五:研发能力
不是某位技术牛人,而是团队整体多方面的调整与标准制定
谈起研发能力,很多人会想我就是一个技术牛人,可以一人顶几人。但是当项目很多的时候,又能顶几个呢?
所以,从技术牛人晋级 CTO,还需要在关键技术、交付效率、代码规范和开发模式等方面做很多调整和标准:
关键技术。作为开发领导最好能亲自制定代码框架,确定使用哪种技术框架或者方案。要始终保持学习最新的技术及资讯,至少在理念上与行业同步。还要不间断的研究技术。
代码管理。制定合适的代码管理规则,制定合适的分支模式,并建立代码管理规范。
规范标准。需要在项目早期建立一系列的编码规范、接口规范、中间件使用规范、加密规范、密码规范、字符集规范等等。
开发模式。用敏捷还是瀑布要依照实际情况而定,对于轻量级的需求,或研发人员较少的情况下,可采用敏捷开发模式。当业务很重,就选择瀑布模式,把项目规划清楚,做好细节拆分,可规避需求不匹配的情况。
开发质量。要实现代码 Review 机制、单元测试机制、持续集成、自动构建和自动发布。
能力六:基础管理能力
从传统响应服务向自动化、可持续集成提升
基础管理能力,更多是体现在运维方面,服务器宕机,网络不通,如何配置/部署/监控等都属于运维范畴。
早期运维是 ITSM(IT 服务管理),侧重流程,是一套帮助企业对 IT 系统的规划、研发、实施和运营进行有效管理的方法。
布设总服务台来监控,出现故障后服务台负责通知相关开发人员,响应机制和绩效挂钩。ITSM 整体过程很流畅很严格,但它的缺点是事后的管理。
现在提倡 ITOM(IT 开发运维、运营管理),侧重 IT 运营管理,从开发设计开始就考虑上线后如何运维,如何设计代码架构、部署架构,如何发现问题,发现问题后如何自动故障转移和修复,包括申请资源、建设配套的 CMDB-DCMS 等。
ITOM 更侧重于一个 IT 运营或者运维的管理思想,目标是持续交付和自动化运维。
整个运维的流程大致由四步构成分别是:
服务监控。硬件、软件、流量、数据、故障的自动化监控。做好问题和故障反馈机制及故障响应机制、处理机制。此外,还需设计故障预案,实现预案的自动化执行。
配置管理。包括集群、部署、变更等管理。
硬件管理。网络及服务器架构,VM、资源分配机制。
运维机制。自动化部署、自动化运维是基本目标。还需建设日志平台,报警机制及相应处理机制。
如下图,是我们的基础架构(GCP):
能力七:团队能力
拥有团队能力的基础上,还应了解学习一些领导艺术
团队能力部分,主要总结六点,如下图:
作为 CTO/技术管理者具备团队能力的同时,还应该了解一些领导艺术。这个时代的比拼不仅是兵对兵,更是将对将的较量。
只有领导的能量不断放大,团队的竞争力才能整体提升。也可以说,领导之道是现代化竞争中的核心要求。
领导艺术主要体现在三方面分别是:
多个部门的协作。合理选择,知人善任;扬长避短、宽容待人;合理使用,积极培养;用人要正激励人才。
工作效率的提升。统筹兼顾、把握关键、指令明确;决断及时;想象力、洞察力、应变力、善于调动他人的积极性。
快乐的工作。平等待人,尊重别人,注意方法;简化语言,积极倾听,控制情绪;把握主动;创造互信环境。
啥样的人能晋升 CTO
最后,啥样的人能晋升 CTO?个人认为,晋升 CTO 主要看三方面:懂技术、懂管理和修炼。
懂技术
CTO/技术管理者自始至终都要懂技术,不断地研究学习新技术,才能够带领技术人员往前冲,对团队给出有高度的建议和合理的技术架构、技术方向的判断。
懂管理
技术再牛,不懂管理,不知道核心目标,不能理解业务,不知道怎么管理人,也不是优秀的 CTO/技术管理者。
修炼
技术和管理是基石,修炼是一个长期的过程,个人的视野和能力修养通过不断历练才能升华。
站在山下跟站在山腰看到的风景不一样,站在山顶看到的风景和感觉又不一样,从山脚到山顶的路途肯定不平坦,付出的不仅是汗水和努力,不经历风雨,如何见彩虹。
这所有的过程,都是历练,也是修炼。“横看成岭侧成峰,远近高低各不同”,“五岳归来不看山,黄山归来不看岳”,这形象的反映出了一个人的境界。
总之,不会打仗的士兵,做不了将军;只会打仗的士兵,也做不了将军;CTO/技术管理者晋级之路就是不断学习,历练、升华的过程。祝各位成功!
作者:王雪燕
编辑:陶家龙、孙淑娟
本文选自CTO训练营
于斌平
国美在线、国美互联网 CTO
公司技术、产品领头人,全面负责国美互联网的技术和产品工作。2010年8月带领5名技术人员开始从"零"做起,筹建国美互联网技术体系,至今团队规模达到千人,成功建立了国美互联网的产品、技术及大数据策略,建立了支撑年销售超500亿的技术系统,主导构建的国美互联网技术架构在中国电商互联网行业处于领先地位。
CTO训练营,为51CTO旗下面向中高端技术管理者的学习和社交平台,邀请一线互联网公司的CEO、CTO以及知名投资人做客,为从业10年以上的技术管理者提供企业战略、企业运营、团队管理等内容分享。
精彩文章推荐: