编者注:人们常常对首席技术官存在误解,以为编程能力最强,就能成为首席技术官。但是编程对其来说,反而是最不重要的。在这之外,你需要做的还有很多。比如了解企业和客户的需求,比如赋予你的团队思想和灵魂,为你的团队扫除障碍,创造舒适的环境等。首席技术官,不仅与技术相关,更与管理和商业相关。
如果你只是写过一篇讨论PHP(超文本预处理器)糟不糟糕的博文,那你还没有准备好成为一名首席技术官。
作为一名首席技术官并不意味你是团队中最疯狂的黑客。事实上,编写代码对你来说,反而是最无关紧要的一件事。 你所要做的,是与队员们进行技术方面的交流,并引导他们将项目付诸实践。甚至某些时候,你需要保护技术团队不受外界的干扰,并且在需要的时候,站出来为错误承担责任。
成为一个首席技术官很容易。如果你受雇于一家没有其他开发者的小型公司,你会惊讶地发现,自己居然一不小心就成了首席技术官。这样的情况在大多数创业公司中很常见。虽然名头叫着好听,但你的实际定位应该是“过度劳累的开发者”。接下来要做的就是了解这个职位的需求,以及如何成为一个真正的首席技术官。
我很讨厌把技术部门的功能简单地看作是实现他人的想法。它完全可以作为外包开发团队而存在,因为它能够独立于决策过程之外。首席技术官必须避免自己的技术团队成为没有思想,只知道单纯执行他人命令的工具。这也是Camille Fournier所说的“首席技术官的责任”。
从零售电子商务,到移动应用程序,所有一切都建立在技术之上。随着技术开发团队不断地完善,技术的影响会越来越大,益处也会越来越多。这是首席技术官必须坚持并且鼓励团队努力实现的方向。
我曾与首席技术官们举行过几次会议。讨论主要关于如何让公司的其他部门尊重技术部的开发过程。比如,如何让董事会认可单元测试的方案。哦,不不不!就我而言,我不想征求你的任何意见,我只是告诉你:“这就是我们工作的方向,这就是它运作的方式。”简而言之,首席技术官说什么,那就是什么。如果一个首席技术官连这点技术决策上的权利都没有,那么他就不能称之为首席技术官,充其量就是一个穿着西装的首席工程师。
首席技术官主要在商业策略中起作用,负责定义公司的技术方向。如果你讨厌开会,讨厌和非技术人员打交道,并且认为所有的经理都是整天坐在那里无所事事,那你并不适合这个职位。
因为会议一般是讨论公司的发展目标,以及如何利用技术帮助公司实现这个目标,有时候也会聊聊怎样利用技术帮助公司创造新的发展机会。所有的这些都需要用简洁的语言来阐明,以便每个人都能理解。
因此了解企业和客户的需求至关重要。从我的经验来看,很多技术人员都喜欢远离“商业的东西”。但这却是一个首席技术官最应该知道的事情。很多时候不应该单纯地根据软件或硬件问题来做出技术决策。 大多数时候,首席技术官需要与产品经理保持沟通,这样产品策略才能与公司的发展运营保持一致。
首席技术官最终要做的,就是为团队创造一个能让他们实现远大目标的环境。今天很大一部分问题来自招聘方面。市场上的开发者供不应求,因此团队的环境要尽可能舒适才有吸引力。首席技术官曾是他们当中的一员,更应该知道怎么做。如果团队想要进行TDD(测试驱动开发)、结对编程,可以在首席技术官那里得到批准。这些变化产生的影响,也由他来考虑。
财务对技术操作也有重要的影响。如果一项技术是最新的或者最棒的,创企可能会倾尽全力地投资它,但是大公司不会。在大公司里,一切都用投资回报率来衡量。它究竟能带给客户多少价值?值不值得投资?因此在大多数情况下,都是在发展和更新现有的基础上寻求平衡,而不是进行大规模的代码重写。
我曾经问过几位首席技术官候选人,他们会问我:“你为什么要坚持旧版本?为什么不用React.js来重写它? ”也许将来,旧版本应用程序的管理费用十分昂贵,但是重写程序,也不一定会给客户带去新价值。这是一个平衡发展的问题。如果一个团队中尽是一些想尝试新技术的人,那么这个团队是不会长久的。
此外,为你认为最重要的事情,构建一个实现的平台。比如,我认为可靠性和安全性是软件的两个最重要的特征。因此商业目标的任何变化,都要用它们来衡量。当然,隐私也很重要。但是有时候尊重隐私和公司的追求会发生矛盾。过分强调隐私会限制公司的发展。我的工作就是处理这个问题,并保证隐私不会泄露。
虽然我做的是技术,但我认为技术对用户而言,是不可见的。所以PHP到底糟不糟糕,我相信这不是一个重要的问题。也许它是个很有意思的话题,值得讨论,但是对公司来说,无关紧要。不要把目光局限在这个问题上,也不要过分关注技术的细节,多考虑团队的问题,多看看技术以外的其他方面,才是成为首席技术官的基本要素。
技术具有深远的影响,它既能影响企业的发展,也可以决定给客户带去怎样的价值。成为首席技术官,就是将这些美好的愿景,一一实现。
转自:【猎云网(微信号:ilieyun)】(编译:请淡定)