2. 架构师是一个纯粹的技术工作

某方面讲这是对的,但又不全对,因为技术工作只是架构师工作做的一个核心关注点而已。一个nb程序员可能在技术方面是nb的,但是在很多方面确实欠缺的,并不适合做架构师。

做企业应用的,牵涉的面太广,加上行业生存环境又不是很好,企业管理普遍也不规范,所以很难象某些领域,架构师就是一个纯粹的技术工作。

首先,如何获取项目经理和管理层对你的信任和支持, 是你开始工作的起点, 这一块和技术并没有直接的关系,取决于你的表达能力和主动性,你如何展现你的实力,你做事是否足够主动,是否有意识和能力去推动项目。不能让老板感觉你就是一个greek,这一条是很多不错的技术人员难以做到的。而实际工作中,你也绝不能把所有时间都花在技术上,你至少要拿出4分之一的时间去和pm,和老板沟通,协商问题, 才能得到你的生存空间。

其次,如何获得团队成员对你的信任和支持,是你展开工作的基础,如果你不够传奇,就需要你做一个牧师或者善于聆听的人, 通过熟悉自己的团队成员的构成和技术特点,才能充分发挥他们的所长,赢得他们的信任和支持,看起来这好像是pm的工作,但是不尽然,如1所诉,架构设计并非是一个个体脱离团队的行为。和团队成员打交道,多半又要花掉你4分之一以上的时间。

好吧,你还要明白,为啥要叫架构师而不是高级工程师(这个已经out了), 是因为你还需要承担售前售后任务, 如何简单清晰的向不懂技术或者半懂技术的客户讲清楚技术问题,这是个学问,要做到这点,按我以前的老板说法,你必须有常识, 常识要多道可以用一些简单的故事例子把东西讲出来,所以有空要多看看电视,多和销售学学,顺便还得学点基本礼仪,上次我差点把某公司来给我们推销产品的工程师给踢出去了,在我提了意见以后,丫居然坚持跟我说他们东西是最好用的,你敬业没错,但是好歹我才是用户吧。

如果你的公司是做项目为主的,恭喜你,你还要学会如何和客户周旋,如何回避到客户内部以及客户和其他供应商之间的矛盾里去。因为某方面,作为架构师,你就代表了技术上的权威,你要明白一点,管理上出了问题,从来都是往技术上推是最简单的。项目之外的话,说起来一定要谨慎,再谨慎。比如如果有客户不愿意购买设备和软件实现负载均衡,找你咨询,你随口一说,啥啥免费软件可以做,好吧,你完蛋了,你要么就是得罪了某供应商(搞不好还就是你们公司卖的),要么,就是等着将来客户给你套口子吧。

而且,作为一个企业应用的架构师,你不可避免的要和各类厂商打交道,这里面也是大堆的学问,虚虚实实的东西大把,偶尔你甚至会受到美色或者银弹的攻击(记住,只是偶尔,人家一般不乐意在你这个级别上下血本)你要一不小心分不出真假,很可能就做了大堆钱公司的小白鼠,搞的在客户和公司间里外不是人。


还有,架构设计往往还需要考虑到技术的生命周期问题, 那么你对客户公司,对开发公司的状况的了解,对整个行业的发展趋势的了解,也会影响到你设计的决策,这种东西往往跟市场有关,并不取决于技术,这考核的就是你的视野和对问题的敏感程度。 打个比方,你开发了一个很好的系统,但是到了你离职的时候,客户却发现你选择的这种技术已经淘汰了,现在很难再找到合适的人员进行维护了,这样的架构师,算合格么?

说完了外面的东西,再说里面的。

一个成熟的企业应用的架构师,除了对行业技术应用有准确的把握和经验积累之外至少还需要有丰富的业务知识。

一般来说,架构设计由几个面构成,其中一个面是技术架构,还有一个面是业务架构, 技术架构必须通过后者的验证。积累一个行业的业务知识,少则一年半载,多则3年5年,这都不是单纯看书阅读资料可以获得的。客户可不会只因为你的技术如何先进,nb 就验收项目的。


再有, 再好的架构,也需要向程序员沟通和推广, 那么你至少也要是个合格的技术讲师吧? 兄弟们管你叫那个师,你总还得有能力教人家一点东西吧?

某些项目,技术甚至可能根本就不是关注点,我曾经参与的一个项目,在我加人的时候架构设计和开发工作都已经完成,而且是基本构建在相对错误的道路上,基于项目进度的压力,我已经没有可能重新推到再来,所以我把工作的重心转移到如何培养提高团队成员的技术能力,降低不成熟架构对他们工作的干扰,换句话说,我干的工作就是打补丁。这些看实不够nb的工作大部分都和技术无关,和流程图,模式无关,但是有效的弥补了架构的缺陷,保证了项目的顺利进行。

既然不能选择离开,那么菜刀也是刀,对吧。


最最后,你还要有点人脉,有在天涯海角到处混的兄弟,这样你搞不定问题的时候,卡住的时候,或者他们一个小小的提示就可以救你于水火之中。不会不是你的错, 解决不了问题才是你的错。

在我看来架构师的工作,是一个混合了各种知识和经验的工作,架构师更象酒店里的行政大厨,只会炒菜那是绝对不行的,很难单纯的定义为技术工作。当然,动不动就把架构师抬举为艺术家,开口闭口XX的艺术,哪还是过了,你以为画画的都是艺术家么? 我家狗仔还能用嘘嘘画地图来着。

指望多读书,多写代码,一个人对着电脑就能迅速成长为架构师,嗯, 我觉得可能性不是很大。