软件架构师如何工作

  在看了王概凯作者的架构漫谈之后,感触颇多,在这里就软件架构师如何工作进行一些讨论。

  王概凯作者的网址:https://www.infoq.cn/profile/1279517/publish

  在生活中经常会谈及或者听说架构师这个职位,那么什么是架构师呢?架构师并不只是做架构工作的那么简单。如果一个人把按时解决别人的问题当成自己的问题的时候,潜意识里会形成一种对时间的恐惧,这种恐惧会使我们想方设法、不择手段的完成工作。在这种情况下是不可能成为架构师的。要成为架构师必须超越这种恐惧,看清楚我们解决的是别人的问题,而不是我们自己完成工作的问题,如果我们把完成别人工作当成自己的最大利益,这个对时间的恐惧自然就会消失,这个时候就自然而然的开窍了,就知道怎么去发现问题了。只有做到这一点,才能在自己所服务的领域建立起自信,成为一个合格的架构师。

  作为一个架构师,要善于发现问题,主动找上你的问题都不是最根本的问题。要根据别人的利益来发现最根本的问题。“如果问题不解决,究竟谁会有利益的损失? 如果问题解决了,究竟谁会有收益,谁的收益最大?” 回答了这两个问题就找到了问题的主体。只回答一个是没有用的,因为很多时候这个世界的事情,权责是不对等的。明白了这两个问题,我们只要让事情权责对等起来,让每个人为自己的权利产生的结果负有义务,大部分时候我们自己根本就不需要做什么,问题就都解决了。这就是最高明的架构师。

  架构师是要去平衡别人的利益,甚至会调整别人的利益的。架构师必须是一个组织的领导人,有权利调动这个组织的架构,才能够更好的发挥架构师的作用,更好的把利益的调整落到实处。架构师必须要明白,所给出的解决方案 -- 架构的分拆、合并方案,只有让问题的主体的权责对等,才能够真正的解决别人的问题。一般明白了问题的主体,以及主体的利益所在,做到这一点也没有问题。

  软件架构师必须要对自己的技术等领域有足够的自信。当面对问题的时候能够根据长期的成本和利益,快速选择解决问题最高效、成本最低的技术方法,或者自己创造一些能够帮助解决问题,但不需要太多成本的新技术。软件架构师还要理清技术与架构以及业务之间的关系。很多架构师、技术人员主要专注于计算机相关的技术,忽略了业务本身,甚至看不起业务,这就导致技术总是和业务发生冲突。架构师应该承担起解决业务问题的这个角色来,专注于软件本身的架构,让技术人员致力于为业务在计算机中跑起来而努力。只有把这两者很好的结合起来,才能更好地完成业务的目标,才会让软件更好地服务于大家。最终一定会得到一个很好的软件架构,令软件开发团队和业务部门都能够很好地开展工作并降低成本。

  一个事物在进行空间拆分之后,必然会变成一个一个不同的个体。每个个体从原有事物中独立出来之后,会形成各自一个一个的独立生命周期,软件也是一样。软件架构师必须要管理拆分之后子生命周期的全生命周期,才能够享受到架构拆分的好处,大家对此要有清醒的认识。他必须要了解拆分后子生命周期的全生命周期活动,而不是仅仅关心自己想要的其中那一个活动。 所以做架构拆分时,要谋定而后动:只有管理好每个独立子生命周期的成本自己可以承受,并且有应对的办法,才可以做架构拆分。软件架构师必须要拆分的利弊,不能盲目架构拆分。架构拆分是有成本的,哪怕它能够节省时间。如果不合适的架构拆分,或者架构拆分时考虑不周,则会导致人们整体花费更多的时间成本,那么这个架构拆分则是不值得的。只有能够管理好架构拆分的时间成本,并能够让架构拆分后的时间成本低于原有的时间成本,这个拆分才是值得的。所以架构拆分也不是想怎么拆就怎么拆,也不是拆完了就结束了,架构拆分有其自身的规律。架构师必须要先考虑好架构拆分的代价再进行拆分,这样就不容易掉进坑里。

原文地址:https://www.cnblogs.com/quyangzhangsiyuan/p/12332269.html