第二是架构师必须足够成熟。因为他们往往需要在无法获得完整信息的情况下,迅速领会问题,并根据经验做出审慎判断。其实微软内部有一个能力要求(Deal With Ambiguity),即能把一张比较模糊的图片清晰化。如果从经验层面上谈,我想归纳四个方面。首先当然是在专题领域的经验和对微软软件开发工程的经验。第二就是要有判断力、决定力和领导力,以推动各个团队的技术进展,并且能在压力下作出关键性的决策,然后将开发贯彻到底,并提高效率。架构师有权在技术上作出决定,在大家意见不一致的时候,他要能给出大部分人比较能够接受的意见。第三是善于沟通。沟通的关键就是赢得他人的信任。微软架构师跟其他合作人没有直接的上下级关系,应该通过沟通去赢得其他人的赞同,而不能靠命令强制指导。同时为了提高效率,架构师必须赢得项目团队、管理团队、合作伙伴和客户等多方面的认同,这样才能将产品开发出来。第四是通常说的抽象思维和分析能力。具体思维的人可能比较注重细节,但往往也会将问题复杂化,使头绪增多而无法收敛。抽象思维可以帮架构师从大量信息、系统文件中,看出一些规律来,并找出与之相关的方面,归纳关键问题,表述模糊的概念并将其变成相关各方能够理解的项目构件,并以具体的语言进行沟通。