业界 | 成为CTO之前,我希望有人告诉我这些-阿里云开发者社区

开发者社区> 技术小能手> 正文

业界 | 成为CTO之前,我希望有人告诉我这些

简介:
+关注继续查看

如何成为一位合格的CTO,在成为CTO之前又需要哪些职业素养,即将离职的 SketchDeck CTO讲述他在过去四年担任此职位的经验。

这是一段刺激又美妙的体验,在创业公司工作与传统的任职大不相同:一开始,你完全不知道公司是否会成功,也不知道它会不会变成一份全职工作,之后,随着公司的发展,你体验着新的各不相同的职位。总的来说,你会经常做着你曾经从未做过的工作。在你还未充分利用手中的权力之前,新的责任已经来到了你的面前。

0a98077aa080db4f460b6766c3d6dc85d1490d62

创业公司像大海中小船,能够灵活处理突发事件,但是你在第一天做出的决定会随着时间的推移不断往外产生涟漪。我现在知道的是,你选择的基础建设、框架结构和语言都将在未来的很长一段时间里伴你左右。

随着公司的成长,构建更多功能和子系统的重压会不断增大,每一个都将进一步锁住你的选择。伴随你获得更多动力的,是压力的持续增加,这时你再想停下来重新修改这些已经不可能了。

我对我们的选择非常满意:Amazon Web Services, Elastic Beanstalk, Firebase, AngularJS, Coffeescript, Kafka, Simple Queue System, SocketStream, Docker, SemaphoreCI, MySQL。列表中,仅有 AngularJS和MySQL在规模方面存在问题。我们的整个AngularJS代码包太大了,下载需要相当长的一段时间,应用程序也有点太慢了。随着BI查询复杂性的增加,(RDS中的)MySQL会崩溃并重新启动,这个问题很难解决。

众所周知,一项技术的生命周期惊人的短。CoffeeScript和AngularJS是已经过时的组件(我们计划迁移至TypeScript和最新的Angular)。当我们采用这些技术的时候,他们都相当的先进,真是庆幸,我对前沿科技的偏爱并没有引起任何严重的问题。我极其欣赏CoffeeScript ,因为其简洁的功能性语法,这些年里它极大地帮我大大提高了生产效率。

52493771ad9579981f830273602ee2a4b10d6283

基于以上,你得明白你需要准确计算预算时间,并为技术的更替制定策略。你在采用任何技术时都得接受长期的“技术债务”。

同样,你编写的组件和库将长期存在,不管你写得好不好,他们的状态一直都会这样——所以,为将来的维护人员着想,你最好多花一点时间在上面。

我们试图在我们所处理的代码领域进行小幅改进。有时,考虑到代码库的(总是不完美)的总体状态,可能会有压力,此时,我就会进行不断的小改进。

最后,是关于测试的简短说明:我发现让我们的团队编写测试代码真的很困难。我为我们系统中的很多部分都编写了测试用例,并配置好了测试服务器,在每次有代码提交的时候会自动运行。尽管如此,我很少看到其他人添加测试。我总是希望团队里能够重视测试,但是不尽如人意。以下是我解决这个问题的想法:

  • 开设有关如何编写测试的复习课程;

  • 要求重要功能包括至少一个测试;

  • 优化我们的测试服务器,使之在10秒钟内完成而不是10分钟(哎!),让程序员及时看到测试结果。

除了纯粹的技术决策之外,一名CTO还应兼顾人员管理。每天的大部分工作将是管理,领导,招聘和解雇人员。我不得不将学习这些贯穿始终。当然随着实践的进行,对这些流程会越来越熟练。

虽然员工是公司最宝贵的资产,但招聘员工的过程同样让人精疲力尽。相比收获了新入职的人,你可能需要花更多的时间来考虑雇用和拒绝更多的人。你可能需要更严格地过滤。我从未想到完美的创业团队成员是多么难得,也没想到会花如此多的时间和精力来寻找他们。

c1588872ff04adcc782f3dd5f07fb947dac7a14b

明确何时招人也是一个棘手的问题:是现在还是之后为这个职位招人?应该先为哪些职位招人?这些问题在你得到投资之后会尤其突出,因为你觉得你有义务让这些资金发挥最大价值。幸运的是,我们从Michael Siebel和YC那儿收获了一些具有帮助性的建议:

  • 当你感觉某个职位需求非常迫切的时候才开始招聘(比如快赶不上合同进度了的时候):

  • 招人是为了满足业务发展的需要,不能本末倒置(这条主要适用于还没有形成规模化的早期公司);

  • 不要招人来做一些你都还没想明白的事情(一些优秀的候选人也许能给公司带来新的动力,但通常的做法还是靠“有魔力”的创始人配置公司资源来适应新的发展)。

综上所述,如果你不确定是否需要为某个岗位招聘员工,可能做这个决定为时过早。我们也曾试图雇人来给公司实现我们自己也没有计划好的增长方案,但大部分时候都失败了。

员工管理一直相对比较顺利 —— 定期开诚布公的检查,明确什么是该做的,什么是不该做的,这些措施让我和我的员工保持着良好的关系。

管理人员一直相对比较顺利——与员工定期的、开诚布公的交流,这让我和同事们保持良好的关系。

8be77a92b673bd3e1391f34f97353a98aafc5cc9

我发现解雇员工是工作中很棘手的问题。你能从其他地方找到很多有用的建议,我在这儿简单地重申一下,早在你理性地决定和正式解雇一个人之前,你的直觉就已经做出判断了,但是解聘员工的这个过程非常痛苦。

良好的定期交流有助于双方接受最坏的结果。最后,基于一份个人发展计划,有一部分人真的能够应付自如,成为高效的团队成员;每个人都应该有这样的机会去展示自己。

伴随公司发展的一大乐趣就是看到一些优秀的人才在各自的领域能够独挡一面。在此,我要向我的整个团队致以诚挚的敬意和祝贺。


原文发布时间为:2018-03-21

本文作者:文摘菌

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“大数据文摘”微信公众号

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10086 0
使用NAT网关轻松为单台云服务器设置多个公网IP
在应用中,有时会遇到用户询问如何使单台云服务器具备多个公网IP的问题。 具体如何操作呢,有了NAT网关这个也不是难题。
26793 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
11628 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
9161 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13891 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7365 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
4506 0
+关注
技术小能手
云栖运营小编~
7208
文章
9
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载