45-架构重构内功心法第二式:合纵连横
前文讲到的是有的放矢,需要架构师透过问题现象看到问题本质,找出真正需要通过架构解决的核心问题,而不是想一次性解决所有的问题。
下文讲述架构重构的合纵连横。
合纵
架构重构是一个大动作,持续时间比较长,而且会占用一定的研发资源,包括开发和测试,因此不可避免的会影响业务功能的开发。因此,要想真正推动一个架构重构项目启动,需要花费大量的精力进行游说和沟通。这里不是指办公室政治,而是和利益相关方沟通好,让大家对于重构能够达成共识,避免重构过程中不必要的反复和争执。
一般技术人员有谈架构重构时,会出现大量的技术术语:可扩展性、可用性、耦合、性能、代码乱...。但如果这样和非技术人员沟通的话,基本上是没有效果的,甚至可能会被觉得是在忽悠人的。
除此之外,在沟通过程中还容易出现一个问题就是凭感觉说话,而不是凭数据说话。没有数据就没有说服力。
所以在沟通协调时,将技术语言转换成通俗语言,以事实说话,以数据说话,是沟通的关键。
连横
上面讨论的是和上下游的沟通,有的重构还需要和其它相关或者配合的系统进行沟通和协调。由于都是做技术的,相对来说比较好沟通,但是也会存在一些阻力,比如:“这对我有什么好处”和“这部分我这边不急”。
对于“这对于我有什么好外”,很多人认为这是自私的表现,认为对方不顾全大局,于是沟通的时候人为的把问题拔高。这时候的沟通效果是非常差的,这种拔高一般都比较的虚,无法明确,不同的人理解也不一样,无法达成共识。如果方案是对公司和部门有利,但对某个小组没用甚至不利的话,那很有可能是目前的方案不够好,还可以考虑其它方案。
那如何有效的推动呢?有效的策略是:“换位思考、合作双赢、关注长期”。就是站在对方的角度思考,重构对他有什么好处,能够帮他解决什么问题,带来什么利益。
当然如果真的出现了对公司和部门有利,但是对某个小组不利的情况下,那可能需要协调更高级的管理者才能够推动,平级推动是比较难的。
对于“这部分我们不是很急”这种说法,不排除有可能是认为对方在找借口。但就算是找借口,也是大家没有达成一致协议。可以参考以上的做法进行推动。
如果对方真的因为有其它更重要的业务,此时勉为其难也不好,还是要换位思考。毕竟大部分的架构重构并不是火烧眉毛的时候才开始的,而是有一定前瞻性的规划,如果对方有其它更重要的业务,采取等待的策略也不是不可以,但要明确正式启动的时间。
除了计划上灵活一点,方案上也可以灵活一点,可以先不做这个系统的重构,先把其它需要重构的事情做完。因为大部分需要重构的系统,需要做的事情很多,分阶段处理,在风险处理、风险规避、计划安排等方面更加灵活可控。