每一个程序员都有一个架构梦。
上面其实本质上是一句富有事实哲理的废话,要不然也不会有这么多人关注你的公众号。这些年随着“企业数字化”转型的口号,一大批企业奔跑在转型的路上,希望领先一步对手将企业IT部门从单纯的成本中心转变为业务驱动者,而这个过程中,企业的架构师起着举足轻重的作用。架构师的工作在很多撸码的开发者眼中是很一项很神圣的工作,而且富有挑战性。
但是事物都有两面性,很多管理者和技术人员都认为架构师的薪酬不符合实际,有很多架构师确实只会用PPT和大幅海报来应付了事,而且会依仗着在公司地位把自己的一些想法强加给公司其他同事,有的架构师甚至会追求一些无关紧要的概念,在高层和底层灌输一些错误的思想,从而导致做出一些不可逆转的糟糕决策,使公司陷入危险逆境。
很多时候,公司给予架构师这个角色太多的责任,管理者希望他们能在突发性能问题时能快速解决问题,还能推动企业快速转型,甚至能帮助企业文化的快速建立,作为一个架构师是不是要抗下这些职责呢?
我不是项目经理
架构师的日常工作经常会面临并行处理多个不同维度的问题,这些问题可能是不同的主题,甚至在做决策的时候也需要考虑人员的分配,项目时间表的排期,需要用的核心技术以及组件等。有很多高层领导喜欢直接在架构师这里获取项目的详细信息以及技术方案,虽然架构师角色涉及这些信息并且很了解这些信息,但是这并不是架构师的职责所在,甚至很多情况下令架构师处于项目经理的尴尬角色。
我不是开发人员
我想很多人看过那篇文章:作为架构师该不该写代码?很多架构师是出身于开发人员,这也难怪会出现这样的疑问。但是,架构师其实和资深开发是两条不同的职业路线,我认为两者没有高低之分。出色的开发人员需要很深的开发功力,需要最终交付出可运行的软件。而架构师则需要更广阔的知识面,更好的组织战略思想,更好的沟通能力。在一个产品的开发流水线上,架构师可能会负责一部分核心代码的编写,但是最主要的工作还是保证这条流水线的正常运转。
我不是救火员
由于架构师这个角色在公司的地位,很多管理者认为架构师要随时随地的能分析并解决任何突发的问题,不瞒各位,这种现象在很多大厂依然存在,包括我司(虽然只是一个四线小厂)。如果一个架构师每天都忙着“救火”这种工作,根本没有时间去做真正的架构工作,真正的架构设计需要思考,是不可能在短短时间内完成的。但是架构师必须接受出现的产品问题,因为这些问题的产生有可能和架构有着直接关系,在很大程度上能反应架构的缺陷或者问题。
写在最后
架构师作为企业中很重要的一环,在很多重大技术问题中都作为决策者而存在。很难用代码的多少或者质量来衡量一个架构师的好坏,如果一个系统在正常运行5年后依然能良好运行并且可以承受一定的变更能力,说明这个系统的架构师的工作是很出色的。如果非要给架构师定义一个KPI标准的话,以下这些工作也许能成为一个参考
-
定义IT战略。小到一个系统的组件列表可行性的确定,大到公司技术的发展方向,乃至未来10年公司技术的预测与大胆尝试。这些技术战略都需要架构师根据自身经验来制定。
-
落实对IT蓝图的管控,以实现协调一致,降低复杂度,保证公司所有系统有条不紊的正常工作,架构师的工作之一就是要把复杂度降低,化繁为简,这需要架构师很强的抽象能力。
-
关注项目的实际落地情况,并根据项目实施中反馈的问题进行战略的适当调整。一个合格的架构师从来不会忽略来自实际项目中的问题反馈。
架构师一定要避免和消除那些系统设计中不可逆转的错误决策
来源参考:架构师应该知道的37件事