http://mp.weixin.qq.com/s?__biz=MjM5NzAwNDI4Mg==&mid=205302496&idx=2&sn=43cff4050fc2207e9be1c767dc66196d&scene=1#wechat_redirect
不想成为优秀CTO的三点必备素质
技能一:写得一手好代码
这一点毋庸置疑,如果不是写过N年代码的优秀程序员,一定不是好的架构师。“架构师”这是一个听上去比较虚的职位,它的主要价值在于“落地”的过程中,而不是“指点江山”。eBay的架构师总结架构师在项目中的职责:
1)产品团队要做一个产品,架构师要帮助团队把技术可行性,技术方案权衡取舍一一剖析清楚;
2)技术方案权衡取舍出来了,架构师要设计整体的技术实现步骤,这个过程一定是和团队其他成员一起完成的,常见的实践是,1到2个核心成员出一个初稿,然后大家讨论完善;
3)技术实现步骤出来了,架构师要和开发团队一起,进行编码,可能架构师不一定细究到任何细节,常见的实践是,系统最困难最核心最关键的部分往往由架构师亲自操刀;
4)系统初版实现了,架构师要和开发团队、测试团队、运维团队一起,完成各类测试,协助解决最困难的bug,和团队一同完成线上部署、并一同排除上线初期系统的故障;
技能二:抽象思维能力
“逻辑思维,抽象思维”比“编码的时间”对架构师而言更为重要,如果你不能让某个非IT人员明白某个概念在说什么,这个架构师注定也是失败的(沟通能力非常重要,详见第六点)。
逻辑思维不用展开多说,程序员的代码都是逻辑,如果XXX就YYY,如果AAA就BBB,缺乏良好的逻辑思维能力基本不可能成为好的架构师,甚至好的程序员。
抽象思维又分两点,一个是将实在的事物概念化,一个是将模糊的感觉数量化。一个苹果,抽象为质量、大小、颜色、形状、味道等,这是概念化,是架构师的必备思维。至于质量、大小、颜色、形状、味道如何转变成数字来描述,这也是架构师必备的思维。
有了上述两点,架构师能将一个“虚”的架构概念描述清楚。
技能三:技术前瞻性
架构师与技术高手的区别在于,架构师不仅局限于如何调用、如何并发等架构细节(技术高手对这些也非常熟练),还跳出三界,考虑未来问题和潜在风险的应对之道。
技能四:分析能力
看到问题的本质,是架构师必须具备的素质。
架构师要有将“业务需求”转化为“技术需求”的能力,这是一个本质的挖掘。例如,业务层面看到的是一个“电子商务网站系统”,架构师看到的是一个多人在线,并发交易,需要保证数据一致性的站点、服务、数据系统,功能、性能、扩展性、维护性、安全性、可用性这些字眼会惯性的蹦到架构师的脑子里。
架构师之所以是架构师,他在庞大系统的面前,仍然能够敏锐发现其底层之真实,这就需要,他有多年多领域知识和经验的沉淀。
技能五:全面的知识库
架构师作为一名技术领袖,需要通过散发知识的光芒来温暖开发团队,如果只一个领域内的知识烂熟于胸,那也仅仅是一名技术高手。要想更进一步,需要对APP层面、服务层面、数据层面均要了解(系统分层),要对研发、测试、运维、安全也要有所了解(职能),上要对接口,下要对原理(接口与实现)都有所了解,甚至,要在多个业务领域都有所涉猎。
初级架构师所害怕的,是跳出自己的“独门绝技”,在一定程度上说,在一定深度之内成为一个“杂家”也没什么不好。
技能六:沟通能力
架构师和项目经理,对沟通能力的要求都很高,很多互联网公司甚至直接由架构师担任项目经理的角色。这两个角色其实还是有所偏重的,项目经理更倾向于与客户的交流,跨团队的协作与交流,架构师主要偏向技术团队内部的沟通与交流,纯技术上的沟通。
如何成为一名“善于沟通”的架构师呢?在目标清晰的前提下,首先做到平和,不能将自己所在象牙塔上,颐指气使的发号施令,这样的态度必然遭恨,大家都是技术人员,只是分工不同,为何要受你的气呢?其次,架构师要有一定的绘图能力。人对图形的理解远大于对文字的理解,一个层次图,一块小白板,几只笔,真的这么容易把问题描述清楚么?
技能七:对工具的运用能力
http://developer.51cto.com/art/201603/506697.htm不想成为优秀CTO的三点必备素质
凡事亲力亲为
明确地知道目前团队成员各自的能力以及你能调配的资源,一定远远比凡事亲力亲力的效果好
不愿在沟通上浪费时间
在管理团队的工作中,由于沟通不畅真的会引发许多问题,不仅会影响工作情绪,还会拖慢产品研发的效率,影响问题的界定等等。而且,团队成员间的默契很难信息不畅通的环境下建立,这非常不利于团队文化的形成。
热衷用技术思维解决问题
作为一名管理者,CTO一定要打破惯用技术思维解决问题的定式,站在管理者的角度,以更宏观的视角看待团队发展。不仅要把自己主要的时间和精力放到业务和管理上来,也不能放松在技术方面的关注和敏感度。二者如何兼顾,确实是一个很大的课题
http://www.codeceo.com/article/every-developer-be-architect.html
- 关注范围:程序员专注于具体细节,而架构师专注于“宏观视角”。
- 领导关系:程序员处于被领导地位,架构师则扮演领导角色。
- 资历背景:架构师的从业时间一般比程序员更长。
- 气质特性:架构师是重要的梦想家,而程序员则是面向繁琐任务的实干者。
- 技术取向:架构师做出选择,而程序员提供选项。
- 技能:架构师的技能水平高于程序员。
- 代码:架构师需要编写之代码平均少于开发人员。
- 组织互动:架构师所参与之“业务”会议数量远多于程序员。
- 薪酬:架构师薪酬水平高于程序员。
- 自身价值:架构师的价值要高于程序员。