第一要长得帅,第二要长的高,第三要长的白。
当然,以上都是开玩笑,这里说的长什么样,并不是说样貌上,而是说能力上。我既不高、也不帅、长的还挺黑,但有幸被Chris和芬芳拉来入伙,成为了现在这家互联网创业公司的CTO。
在万众创新,万众创业的当下,CTO可以说是稀缺资源,要想找到好的、合适的CTO更加是可遇不可求。
如果你现在已经是某家公司的CTO,那么恭喜你,你已经被列入了稀有物种。如果你还在前往成长为CTO的路上,或者刚刚上路,那么如下的几条内容也许对你有所帮助。
一、硬技能方面
1.技术水平
要想成为CTO,首先技术水平要过硬,在某一个行业或领域至少沉淀5-10年的时间,这样无论是技术功底,还是技能水平都达到了一定的高度,而且积累了深厚的行业经验。这样在带领技术团队时,能够比较容易服众。
我的技术水平也是慢慢积累起来的,先是在外企从事了多年的电子商务开发,从一个大头兵一路走到team leader。后又去了一家大型互联网公司,有2万的员工,经历了从部门成立到发展为几百人的规模。
经历了从传统行业技术到互联网技术的变迁。
从传统行业的思维到互联网思维的变革。
从Java开发语言到Python开发语言的迁移。
技术水平积累要靠自身努力,多参加一些社区、开源项目、技术交流峰会,都会有所帮助。
2.架构设计的能力
一般大公司都有专门的架构师岗位,但是对于创业公司,一般是没有的,架构设计的任务就落在了CTO的身上,所以架构设计的能力同样重要。
能否快速的搭建起支撑业务正常运转的系统架构,往往决定着公司能否在早期处于一个比较有利的位置;系统设计的是否有高可用性、是否有可伸缩性,决定系统的可靠程度;系统的扩展性设计的是否合理,决定新业务、新功能开发上线的速度。
最开始参加工作的几年是没有机会涉及到系统架构设计的工作的,逐渐技术水平提高之后,职位随之提高,机会也多变得多了。有时会和架构师一起讨论系统的架构设计、优化、重构。慢慢的对大型系统架构设计有了一定的了解。合伙创业之后,公司的网站系统架构都是我们逐渐搭建起来的,目前系统该有的都有了,系统分层,分模块,读写分离,缓存技术,监控系统,自动运维等。
一个公司的系统架构也是随着业务的增长在逐渐优化。所以需要CTO根据业务发展的规模和业务的需求来合理的设计系统的架构。
3.编码能力
CTO不一定要亲自写代码,这里指的是具有编码的能力,能够了解一线员工的工作,对他们所写的代码能够给出指导意见。如果CTO长期的脱离一线工作,会对一些技术决策产生影响。
从工作到现在,已经有十几年的时间了,一直没有扔下代码,目前虽然编码工作不多,但是偶尔也会写点东西,练练手。让自己保持对技术的敏感度,在做技术决策的时候,更加准确一些。
二、软技能方面
1.沟通能力
包括与上级(CEO)沟通、平级(其他部门总监)沟通、下级(下属)沟通,如何保证沟通的效率和有效性,是软技能方面第一要考量的要素。
如何做到让对方快速的理解你,如何迅速的抓住对方说话的重点。
如何做到心平气和的讨论问题,如何以比较好的方式说服对方同意你的观点。
如何让CEO理解你的技术方案、同意你的招人计划、赞同你的开发排期等。
如何跟其他部门领导沟通,协调资源。
如何与你的下属沟通,使他们理解你的技术方案,你的想法,你的目标,以便于他们更好的去执行。
工作以来,我就一直特别注意与周围同事的沟通,也看过很多关于沟通技巧方面的书籍,理论联系实际,逐渐的在日常的工作中锻炼和应用,摸索出自己的一套沟通方法。
使周围的同事都乐于和你沟通,保证沟通都比较顺畅。
有的时候比较强势、有的时候很平和、有的时候需要妥协,根据不同的人,不同的性格特点,不同的情况,采取不同的沟通方式,以达到沟通的有效性。
2.管理能力
CTO作为技术团队的指挥官,是需要一定的管理能力的。管理,其实就是两件事,管人和管事。一把人管好了,二把事管好了,整个团队发展就不会有问题。
2.1 管人
团队大了,人逐渐多了,管理起来就需要一定的方法。一个人最多的精力只能够管理好7个人,超过7个人就会有顾及不到的地方。所以一定要有合理的组织结构、层级管理、梯队建设。将团队划分成几个小组,每个小组委任一个team leader,你只要将每个小组的leader管理好就可以了。小组内部由team leader去管理,这样你不用牵扯过多的精力,他们也能得到锻炼管理能力的机会。
目前我们开发团队分为6个小组(PC、H5、IOS、Android、Python平台对接、Python功能开发),每个小组都有一个team leader,有的小组就只有一个人,但是仍然成立一个小组出来,是为了后期做人员补充做准备,提前把组织架构搭好。
我负责直接管理6个小组的leader,每个leader管理自己的组员,自上而下,梯队建设,每个人都有backup,这样的架构后期的抗风险能力比较强,有任何一个人员变动,都有backup顶上。
做好每个人的绩效管理,从五个维度(业务成果、为客户提供价值、创新、对他人贡献、技能)对公司的大目标进行分解,首先分解到部门的目标,然后分解到每个人的目标,这样每个人的目标实现了,公司的大目标就实现了。
为每一个人做职业规划,根据不同的岗位,个人的发展诉求,制定长期的发展规划,并定期review。
2.2 管事
创业阶段,公司每天一大堆事情,要想一天都把所有事情处理完是不现实的。所以事情要分轻重缓急,给每一件事情排个优先级,先做优先级高的,再做优先级低的。这个道理每个人都知道,但是做起来就没那么简单。人们总是愿意先做一些简单容易的事情,后做困难但重要的事情。
目前整个开发团队采用敏捷开发的模式,每天都有daily scrum(站会),一周一个sprint(开发周期),提前在backlog里边建好下个sprint要开发的user story,排好优先级,拆分成task,并对每个task进行工作量评估。
每个组都有自己的sprint plan,有自己的board,每个人及时的更新task的状态(to do, in progress, testing, done),更新remaining time,scrum master每天查看board和burndown chart,进度是否正常,是否有风险。
从团队成立至今,两年的时间,我们一直在用敏捷开发的模式,期间也做过一些调整和改进,目前运转的状态还是比较理想的。
2.3 理顺
管理,管理,除了管,还需要理,理的是什么呢,理的是流程、是规范。
目前我们理顺了开发流程、与其他部门沟通的流程、测试流程、上线流程、编码规范、部署规范等。
3.领导力
有人说领导力是与生俱来的,其实也是可以后天培养出来的。CTO作为公司的高管之一,没有一定的领导力,是难以服众的。
比如说你号召一件事情,你的手下没人响应,你想推动一个方案,其他部门都不配合,这工作就没有办法开展了。
有一种领导力五力模型,将领导力分成了五种能力:前瞻力、感召力、影响力、决断力、控制力。
我定期的审视公司的战略目标,与团队的目标,锻炼自己的前瞻力。
我找机会和大家打成一片,吃饭、喝酒、运动、游戏、聊天,使我能够吸引他们,以此来锻炼感召力。
我找机会给大家分享一些专业技术、架构设计、性能优化、工作方法、沟通技巧等方面的知识,使大家信服我,提高自己的影响力。
我在做决策的时候尽量不要优柔寡断,锻炼决断力。
我在目标实现的过程中,牢牢的把握进度,把控风险,锻炼控制力。
我自认天生没有这样的领导力,都是后天锻炼出来的。
小结
CTO作为公司几大Officer之一,各个方面的能力都不可或缺,不能有太大的短板,应放大自己的优点,改正自己的缺点,逐渐让自己成为一名出色的管理者、决策者。
祝各位在CTO的成长道路上一路通畅。