CTO的眼界到底有多宽?
CTO的眼界到底有多宽?
作为一名成功的CTO,需要什么样的技术实力?如果才能在CTO这个职位上做出一番成就?围绕这几个问题,CSDN记者特别采访了长期从事软件开发工作的CTO吕建伟,为大家诠释优秀CTO的真正面貌。
CTO的概念之本
CTO直译就是首席技术官,在国际通用做法都是负责前沿技术的研发,主要关注前沿技术和未来商业的结合。因为国内大多数软件公司规模都偏小,不太可能设置专门的项目管理职位,所以CTO还担负着管理研发部门的责任。
吕建伟认为,与国外的CTO相比,国内CTO在国际技术标准的跟踪上明显不足。国内所做的大部分产品技术,其实在国外的研究和产业落地都开展很多年了,几乎都有了成熟的做法和标准,但是国内的开发人员还在自己摸索着该怎么做,仍然处于土炉炼钢的阶段。但是,国内的CTO在研发跟踪和产品化之间的转换和平衡做的很好,可以在非常有限的资源条件下做出比较有竞争力的产品。这也说明了国内在引入CTO概念时进行本土化与适用性上的调整的成功。
四项能力走进CTO之位
多年从事软件开发和软件开发管理,吕建伟以他自己的工作经历总结出了做好一名CTO所需要的四个基本能力:商业眼光,技术目光,产品架构,管理才能。
在他看来,商业软件公司的研发目标最终还是要落实到商业盈利上,所以对新应用、新产品、新盈利模式,总是需要不断地跟踪、分析、梳理、引进。
第二就是技术目光,因为一代产品的开发,关系到企业未来7-8年的发展,责任重要,耗资也大。所以要选用符合未来发展趋势的技术,要采用思想更先进的产品框架,踏准时代的潮流。否则,与时代发展的方向偏离,就无法顺势而起。
具体到产品开发上,所要采用的产品架构,需要很多细节技术的支撑。一个好的产品架构,可以使应用开发人员写很少的代码就能很快实现需求,而且稳定性、性能、定制化、技术支持诊断,部署都非常的好。这正是架构师的魅力所在。当然,CTO无需去亲自调试每个技术细节能不能做到,这个可以由架构师或架构组来做,但整体框架必须CTO来驾驭,因为这是一个产品的根。
软件开发过程管理能力,直接关系到研发组织结构建设与可持续发展,团队协调异常处理,需求质量、产品进度、产品质量和竞争力的保证,产品理念在营销人员、实施人员、服务人员、客户之间的传递,等等方面。所以,优秀的管理开发过程管理能力,也是CTO必备本领之一。
业界潮流的跟踪与交流是必不可少的,而且自己的不断梳理和总结也是必须的。这也是吕建伟做了这么多年CTO所得出的结论。
CTO之位如何发展
面对新技术新思想不断产生的狂潮,吕建伟一直采取“有利才使用”的原则,只有当新技术明显有利于提高研发生产力和生产质量的时候,他才会投入人力去收集详细资料、翻译资料、做演示、做研发部门研讨会、做引进项目。在技术上,如果新技术不能产生生产力无法提高工作效率,那么这就不能被用作实际的开发与生产;在企业发展角度,因为企业总是处于不进则退的残酷商业竞争当中,他们没有闲钱去研究和试验技术,只对最能提高生产力和利润的技术买单,这样其实最能验证一项技术的有用性。适用性是他决定是否采用新技术的第一原则。
谈到未来的职业发展,吕建伟认为自己很有继续在企业管理软件行业发展的动力与活力。结合到新技术在开发与企业运营之间的关系,他非常喜欢在软件开发这个行业继续打拼下去,并且乐于和最终客户/用户去交流,并获悉他们目前的挑战、机遇和解决方法。所有这些都让他感到很充实。在以前的工作经历中,有很多机会可以使他进入到纯技术产品公司工作。但是,如果脱离了具体的企业应用,就无法想像新的技术到底在企业应用中会产生多少种特殊的用法和效果。而只有继续在企业管理软件行业,他才能感受到技术发展与实际应用完美结合时产生的快乐。
开发者的自我提升
吕建伟与很多朋友有过交流,其中不乏已经从事软件行业多年的技术人员。他们往往会对自己的未来产生过迷惘,走完面前一步就不知道接下来该如何发展。而且IT业每年都会有新的浪潮产生,面对不断推陈出新的IT产业,不少朋友因为追逐潮流而惶惶不安。
在他看来,虽然每年都会出现许多新的技术,但是主流阶段和分支其实不多。从主机/终端时代、C/S时代、B/S时代到RIA时代;从面向过程、面向对象、面向组件到面向服务;从硬件、操作系统、开发语言、中间件到客户端;从服务器、桌面、移动设备到嵌入设备。大致都是这样的行进阶段和层面视图。开发员根本无需面面俱到,只要把握好未来趋势和自己所擅长的核心,继续精进,就可以在时代变化中占有一席之地。
CTO的眼界到底有多宽?的更多相关文章
- [转] 从知名外企到创业公司做CTO是一种怎样的体验?
这是我近期接受51CTO记者李玲玲采访的一篇文章,分享给大家. 作者:李玲玲来源:51cto.com|2016-12-30 15:47 http://cio.51cto.com/art/201612/ ...
- 从知名外企到创业公司做CTO是一种怎样的体验?
这是我近期接受51CTO记者李玲玲采访的一篇文章,分享给大家. 作者:李玲玲来源:51cto.com|2016-12-30 15:47 http://cio.51cto.com/art/201612/ ...
- Wpf 获取指定字体和大小的字符的长宽
Wpf 获取指定字体和大小的字符的长宽 运行环境:Win10 x64, NetFrameWork 4.8, 作者:乌龙哈里,日期:2019-05-09 参考: 章节: 比如一个 Consolas 字体 ...
- Unreal Open Day游记
前几天去参加了Unreal Open Day,周四早上从北京出发,坐地铁跟徐导,呵呵,simon他们汇合后,打车去了北京南站.一路上有小雨,不禁让人多少有点担心堵车,好在一路顺利.由于还没有一台较牛的 ...
- (翻译)开始iOS 7中自动布局教程(二)
这篇教程的前半部分被翻译出来很久了,我也是通过这个教程学会的IOS自动布局.但是后半部分(即本篇)一直未有翻译,正好最近跳坑翻译,就寻来这篇教程,进行翻译.前半部分已经转载至本博客,后半部分即本篇.学 ...
- 关于Div的宽度与高度的100%设定
http://www.cnblogs.com/clare-zhang/archive/2011/08/26/2154220.html 正像你所知道的那样,设置DIV大小的有两个属性width和heig ...
- 16、手把手教你Extjs5(十六)Grid金额字段单位MVVM方式的选择
这一节来完成Grid中的金额字段的金额单位的转换.转换旰使用MVVM特性,总体上和控制菜单的几种模式类似.首先在目录app/view/main/menu下建立文件Monetary.js,用于放金额单位 ...
- 关于div宽度和高度的100%设定
设置DIV大小的有两个属性width和height,以前在学习DIV每次给DIV设置100%宽度或高度时都很迷惑,不明白这个100%的宽度(高度)到底有多宽有多高?这个100%是从哪里得到的从哪里继承 ...
- 过渡与动画 - steps调速函数&CSS值与单位之ch
写在前面 上一篇中我们熟悉五种内置的缓动曲线和(三次)贝塞尔曲线,并且基于此完成了缓动效果. 但是如果我们想要实现逐帧动画,基于贝塞尔曲线的调速函数就显得有些无能为力了,因为我们并不需要帧与帧之间的过 ...
随机推荐
- C# 操作数据库的几种方式(数据库使用SQL SERVER2008)
一:通过常规 T-SQL 语句 (只写删除操作,其他同理) string strConn = ConfigurationManager.ConnectionStrings["SiteConn ...
- Deep Learning 学习随记(三)续 Softmax regression练习
上一篇讲的Softmax regression,当时时间不够,没把练习做完.这几天学车有点累,又特别想动动手自己写写matlab代码 所以等到了现在,这篇文章就当做上一篇的续吧. 回顾: 上一篇最后给 ...
- 摘录android工具类
import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.Pac ...
- Core Canvas–Day1
绘制 1.坐标系统: canvas的坐标以左上角为原点,如图 可对canvas的坐标系统进行变换,变换的方式有 平移translate 旋转rotate 缩放scale 创建自定义的变换方式,切变 2 ...
- zlib压缩解压示例
#include <stdio.h> #include <string.h> #include <assert.h> #include "zlib.h&q ...
- 利用Linux系统生成随机密码的10种方法
Linux操作系统的一大优点是对于同样一件事情,你可以使用高达数百种方法来实现它.例如,你可以通过数十种方法来生成随机密码.本文将介绍生成随机密码的十种方法. 1. 使用SHA算法来加密日期,并输出结 ...
- 禁止选择文本和禁用右键 v2.0
禁止鼠标右键(注:在火狐浏览器没有起到效果作用) <script> function stop() { return false }; document.oncontextmenu = s ...
- html中th 与thead tbody的 使用
上午工作的时候,遇到一挺纠结的问题,在<th width...> width根本不起作用. 后来才明白<th>标签不能写在<tbody>里,不符合语法. 所以顺便总 ...
- 贴板子系列_1-km算法,匈牙利算法
KM算法 #include <bits/stdc++.h> #define N 1500 #define inf 999999999 using namespace std; ,ny=,k ...
- App - 版本控制
/** 版本判断 ***/ NSString *versionKey = @"CFBundleVersion"; // 上一次使用版本号(存储在沙盒中的版本号) NSString ...