CTO不同于CEO负责,CTO负责企业的技术部分,管理者整个企业的技术,而在现代企业之中技术又是至关重要的一个环节,要想成为一名合格的CTO需要走的路很长,海程在线教育今天就来为大家讲讲如何修炼成为一名合格的CTO。
一、核心目标
作为一名技术管理者,CTO的首要任务是实现企业目标,然后才是与之配套的技术目标和方法。招什么样的技术人员,用什么样的技术合适,都要与当前阶段企业的目标和需要相匹配。
其次,目标要以实现企业主体业务为主。要充分理解业务,理解业务才能设计出支持业务的好系统,*比业务同事更熟悉业务。
第三,要支撑业务,引领业务发展。支撑业务正常开展是基本目标,并在业务正常开展的基础上进行创新,通过技术手段引领业务发展。通过技术手段引领企业业务发展,是CTO尤其是互联网企业CTO的最本质的使命。
在战略层次,我建议主要从企业愿景及战略目标、业务目标、技术战略、产品规划、行业分析几个方面做起。在战术层次,则从系统架构和系统建设两个方面出发。
二、项目管理
项目管理的核心目标是“如期上线”
项目的按时完成涉及多个方面,比如成本管理、质量管理、时间管理、范围管理、采购管理、风险管理、沟通管理、人力资源管理等。从项目*来讲,这些方面的问题是必须要解决的事情。
对于CTO来讲,一定要成为一个好的项目管理者,因为任何事情最终都是有目标结果的,甚至所有问题都可以归结为项目相关的问题。
项目管理的核心是“沟通”
项目的成本管理、范围管理以及质量管理等是必要的,但是核心还是沟通。如果沟通不到位,很多事情会出问题。人是有情感的,员工是会有情绪的,人与人之间需要沟通,相互了解清楚事情原委,然后才是理解。
CTO也好,技术总监也好,作为项目管理者,一定要会沟通,不断地跨体系、跨部门进行沟通,企业上下沟通,行业沟通,企业内外沟通合作谈判等。如果沟通是你的短板,可以派遣善于沟通的人去交流沟通,然后通过他来了解具体的事宜。
项目管理之资源整合
资源在整合之前大多是零散的,要发挥它*的效用,转化为竞争优势,为企业创造价值,还需要运用科学方法将不同来源、不同效用的资源进行配置与优化,使有价值的资源融合起来,发挥“1+1>2”的放大效用。
企业资源*含内部资源和外部资源两部分。企业的内部资源主要涉及技术、产品、业务、营销和财务,还有各种BOSS(利用好BOSS的资源非常重要),企业的外部资源主要*含合作商、市场和软件、甚至*等。
项目管理之成本控制
成本确实有点像体重,上去容易下来难。一旦习惯了高成本的运作方式,再想由奢入俭,将会阻力重重。作为企业的CTO,需要做好事前计划、事中控制和事后分析。
事前计划:制定政策和计划,有效利用历年的资料。
事中控制:准确及时了解各部门、项目预算使用情况。
事后分析:得到更及时、完整和精确的统计分析报告。
作为一名企业CTO,我认为他必须要具备架构能力、产品能力、研发能力以及基础建设能力四个方面的看家本领。所以,接下来我来谈谈这四个方面的能力。
三、架构建设
如何建设一个好的架构?
首先要厘清企业要做什么,业务是什么,从用户端到交易端再到后端处理该如何做,财务和配送如何实现,性能如何处理,风控如何处理,可用性容灾等问题如何处理,等等一系列的事宜。
然后,才能知道系统和技术框架要怎么做。有些系统框架需要外购,有些则需要我们自己设计。
架构建设主要*含:系统架构、基础建设、风险控制以及安全建设四个方面。
系统架构:要注意系统架构的可用性、可复用性,新增业务的可扩展性、高性能以及灵活性。
基础建设:主要*含技术路线、中间件、服务、框架、软件架构、数据架构的设计和建设。
风险控制:主要指网络、硬件架构设计及建设、系统漏洞、容灾的防范、数据的攻击、交易资料的泄露。
安全建设:安全的建设主要针对系统、账户、数据、信息、产权、财务做好安全保障。
那么,架构的设计需要遵循哪些原则呢?
技术架构的设计首先要遵循可用性原则。以电商为例,在418、618、双11等特殊的节日,网购数量会达到一个很高的峰值,是平常的十倍或者几十倍。此时,我们就需要考虑可用性,看是否可以回馈,是否可以限流,假如出现问题我们该如何处理。
第二,就是成本问题。要考虑如何在成本有限的情况下去实现可用性,而不能仅仅是一味地增加服务器等硬件设施。
第三,就是可拓展性。容量怎么去扩展,性能怎么去拓展。我觉得这跟前面的架构是相辅相成的,你的技术架构决定了你的后续扩展性。如果扩展性不好,可能会遇到无法再增加服务器的情况。
接下来,再说说架构的分解原则。我总结了四方面。
水平扩展。针对应用系统实现多机集群,提高并发能力。同时,实现数据库的读写分离,如:商品读库、商品写库。
垂直拆分。按照业务域划分应用系统,如商品系统、交易系统等。并针对数据库按照业务分库,可分为商品库、订单库等。
业务分片。按照功能特点进行分开部署,例如秒杀系统。通过分库分表,提高数据容量。
水平拆分。进行服务分层,功能与非功能分开。此外,对数据库实现冷热数据分离,历史数据分离。
四、产品能力
我早期是做开发的,后来才接触产品,谈到产品能力,总结起来从以下四个方面来谈。
用户体验。任何产品都是给用户使用的,所以产品能力的*要素是用户体验。产品要能够呈现给用户视听操作上的体验,强调舒适性;在产品的操作上,需要实现易用性及可用性;目标信息要醒目而亲近,让用户能认同、抒发自己的内在情感。最终实现简约而不简单。
需要注意的是,用户的范畴很广,企业内外、直接或间接使用产品的人,都是用户。所以站在用户的角度,以用户的思维设计产品,才有可能做出来真正的让用户体验“爽”的产品。
业务设计。只有对业务真正的熟悉才能设计出适合业务的产品,才能打造一个优秀的产品部门。根据市场目标和企业业务需求,梳理业务流程,勾画业务蓝图,设计业务场景及功能,分析和优化流程,尤其要做到业务、财务、数据、用户操作整个过程的闭环设计。
产品设计。根据业务蓝图和功能设计软件产品,重要的是如何让用户用得“爽”。最后,输出结果才是PRD。PRD只是个结果,不是目标。
产品创新。创新一定要有目标,以潜在的需求为出发点,开发出差异性或全新的产品,将潜在的需求激活为一个现实的市场,实现产品的价值,引领驱动业务发展。要清楚产品上线仅是开始,还需以数据为检验标准,不断运营和优化。
总之,我们要从用户的角度、业务的角度、运营的角度出发设计产品。
五、研发能力
我是一名老程序员,早期主要是用C语言和VB进行编程。通过带团队这些年,我理解规模越大或者越重要的团队,考察其研发能力,首先指标就是关键技术是什么。*亲自制定代码框架,确定使用哪种技术框架和方案。要始终保持学习最新的技术及资讯,至少在理念上与行业同步,持续研究技术。
其次,代码管理问题。代码该怎么管呢?我们要制定合适的代码管理规则,制定合适的分支模式,并建立代码管理规范。
第三,规范如何建立呢?需要建立编码规范、接口规范、中间件使用规范、加密规范、密码规范、字符集规范……技术管理者需要在项目早期就建立相应的规范,以免最后发现代码和规则一团糟。
第四,建议尽量抛弃瀑布模式进行开发,采用敏捷模式开发。
第五,要注重代码的开发质量。要实现代码Review机制、单元测试机制、持续集成、自动构建和自动发布。
第六种武器、基础建设
系统出了什么问题,该如何监控,如何及时响应等一系列问题都属于基础建设的范畴。例如,国美现在实行的是24小时自动监控,任何环节有问题,系统都会自动报警,负责人会接收到短信,不能自动恢复的负责人会去直接处理。我们要求即使最高级别的故障,也必须在半小时内处理好,这就是机制。
在基础管理能力方面,我们需要做好服务监控、配置及变更管理、硬件管理以及运维机制。
服务监控:硬件、软件、流量、数据、故障的自动化监控。做好问题和故障反馈机制及故障响应机制、处理机制。此外,还需设计故障预案,实现预案的自动化执行。
配置及变更管理:*括服务的访问安全、权限控制以及服务器管理、大规模集群管理,以及软硬件的变更管理等。
硬件管理:网络及服务器架构,上架及安装、资源分配机制。远程管理是基本要素
运维机制:自动化部署、自动化运维是基本目标。
七、团队能力
关于团队能力,这里我总结了五方面的内容,分别是:保持激情、目标明确、身先士卒、容人长短、简单纯粹。
首先,作为团队的负责人,需要永远保持*激情。永远保持激情非常不容易,但对技术团队负责人来说一定且必须要创造并永远保持团队积极向上的*激情和*氛围。这是技术管理者的基本功。能否把士气带起来,是衡量一个技术管理者是否合格的重要标志。
其次,目标明确。有了激情,这劲儿要往哪里使呢?这就需要有明确的目标。要永远让团队成员知道目标是什么,以及完成目标后的结果。明确的目标才是*的团队激励措施。
第三,团队的管理者永远不能站在三线,一定要身先士卒,冲在*的最前线才可以。他需要保持一种激情,带着团队去冲。有句话说的好,只有不合格的将军,没有不合格的士兵。
第四,要懂得容人长短。随着团队人员的增多,你要能够容许团队中的各种角色,特别是能力较强的员工。团队中要有且要鼓励不断产生比自己的专业能力还强的高手。在我现在带领的团队中,就有很多人在专业领域比我强。同时,也要让水平一般的员工快速成长。
第五,简单纯粹。团队成员的关系要简单,只为完成目标。如果一个团队的领导比较复杂,那么他手下的员工也一定是比较复杂的,*也会乱七八糟。
说到管理,很多人都在讲心灵鸡汤,很多的书也在讲管理。其实只要做到目标明确,每个项目管理的各个细节的责任人明确,大家为了实现最终的目标而努力,其他的事情都不成问题。
海程在线教育依托于海文国际雄厚的教育资源结合互联网技术,以在线教育的教学方式,为18-28岁年龄段的青年人提供高质量、高水平的在线IT技术培训课程,多年来为众多的学员提供了优质的服务,让每位学员都能够取得成功。