软件架构师如何工作?
本篇博客为阅读王概凯的 架构漫谈九篇博客总结而出,原文地址:https://www.infoq.cn/profile/1279517/publish/all
如何定义架构?如何利用架构知识完成工作学习上的需求?又应该怎样做好一个架构师呢?
什么是架构呢?架构是人类发展过程中,由被动的认识世界,变成主动的去认识,并以更高的效率去改造这个世界的方法。一个整体会有很多小任务要去做,这个整体同时也会包含很多个体。如果我们能把整体需要做的种种任务进行划分,划分之后把每块任务一一分配给擅长此任务的个体,个体高效地完成这项任务。而个体之间也会有信息的交流使得彼此之间能有联系体现出一个整体的概念,就像是一个大型机器里的无数个齿轮一样,共同运转,负责各自的任务,在一起便实现了一个大机器的任务。总之,就是把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构 。
如何利用架构知识完成工作学习上的需求,又如何做好一个架构师呢?
软件架构师最终目标是解决别人的问题,只专注与解决自己工作的问题没办法称为软件架构师,为别人的利益服务是架构师的义务。义务与权力是相辅相成的,有为别人利益着想的架构师也必须有领导权力的架构师,架构师作为组织领导,组织内部每个人的权力与义务会得到均等的划分,每个人都会得到发展。而要做好架构,首先需要识别需要解决的问题,识别出问题了,那么目标就不难实现,而识别问题的前提就是找出这个问题是谁的,找到这个问题的主题,这样才可以知道问题的边界,从而了解真正需要实现的目标是什么,才能真正的认识到问题是什么,然后是实现目标。发现问题要比解决问题更重要,如果一味的解决问题,但是并没有弄清楚问题是谁的,真正的目标是什么,那么解决问题只是空谈,而架构师的能力很大程度就体现在发现问题源头上面。所以说,如果一个人在工作中,只是致力于完成自己的工作,以做好自己的工作为主要目标,那么最多只能成为一个工匠,无法成为一个架构师。
因此,首先,作为一个架构师要可以明确“要解决的问题是谁的问题”进而明确“有问题的主体都有哪些问题”。若可以明确“问题的主体”,我们已经可以很自然地解决大部分的问题了,因为很多时候问题是因为沟通不畅而产生的,这部分的问题当我们弄明白“主体”后,自然而然地就解决了。架构师是要去平衡别人的利益,甚至会调整别人的利益的。一旦架构师是全心全意的为别人的利益服务,自然而然的架构师就拥有了强有力的影响力,肯定会是一个 leader。但是只是民意上的 leader 是没有用的,不能完全发挥架构师的能量。反过来,具备架构师能力的组织领导人,一定是一个很好的领导,这个组织一定是很健康向上的,因为每个人的权利和义务就是比较均等的。并且这类领导对于组织成员权利和义务的对等状况会非常的敏感,会及时的调整组织架构,在问题发生之前就解决了。这样这个组织就会具备更好的抗压能力,能够更好的为这个组织的客户服务,这个组织的成员内心一定都是比较平衡的,每个人的能力都能够得到比较好的发展。当然读者可能又会说,这不是管理学的东西吗? 是的,但也是架构的问题。所有架构的核心就是组织架构。或者也可以这样说,一个合格的组织领导人,一定必须是一个合格的架构师。