架构师要通过优化架构方案、干预架构活动,以保证最终交付的项目不仅能满足既定目标,还能适应不断变化的外部环境。这个过程有一个总的指导原则,那就是为最终产生的架构设计不断注入外部适应性。
外部适应性是指一个企业对外部环境变化的适应能力,以及对新机会的捕捉能力。
架构师是技术职能的一种,所以也是通过打磨技术体系来为企业注入外部适应性的。当然,架构师这个职能有自己的特殊性。首先,架构师与研发经理不同。后者具有人员管理的职责,因而可以通过人才招聘、培养和组织架构的调整来创造价值。
然后,架构师也不同于研发人员。研发人员可以通过优化数据模型、算法迭代、代码重构和模块升级来为企业直接注入外部适应性。而架构师仅仅可以通过组织架构活动与优化架构方案设计,来为企业注入外部适应性。
业务、产品和架构师所处的技术视角,分别代表研发活动的三个不同层次。
第一个层次,研发活动由业务驱动,直接在业务人员的指挥下响应外部机会。把这一组研发人员称为业务线研发。在一些公司里,这些人一般直接向业务部门汇报。比较常见的是增长的产品和技术人员同时汇报给增长业务部门,以迅速响应新的业务机会。
第二个层次,研发活动由产品规划驱动。产品把业务活动抽象为一组产品,沉淀出产品矩阵,并通过产品运营不断打磨用户心智。在这个过程中,相应的技术人员会不断提升自己对产品的理解,并通过技术手段放大产品提供给用户的增值。
比较常见的产品有营销产品、供应链产品、物流产品等。除了产品特性本身外,一些纯技术手段,比如营销的资金池优化、反作弊、供应链优化、物流调拨等等,也会为产品带来新的增值手段。
第三个层次,研发活动就是由架构师主导的架构活动。架构师和研发同学对业务、产品做了一系列的抽象,最终形成由技术驱动的技术产品。比如工作流引擎、风控引擎、策略引擎、算法的特性引擎和标签引擎,都属于这一类产品。
影响技术体系外部适应性的因素如下:
1、企业内部压力的影响
第一,业务交付时间的压力。技术同学经常受到来自业务和产品同学交付时间的压力,这样一来,技术质量都很难保障,更不用说技术的外部适应性了。
第二,技术岗的供给压力。最近几年技术岗的供给比较缺乏,很多技术同学频繁跳槽,在一家企业的工作时间较短,因而他们在客观上就不太关注自己的技术口碑。
第三,考核的压力。不少企业把技术岗的考核内容、考核周期都与业务线牢牢绑定。而需要长期打磨的技术能力,既不能被关注和度量,也没有资源被孵化。结果就是短期效应非常明显,自然,技术同学就很少关注技术的长期适应性了。
除了团队内部的压力外,企业也面临着不少压力。首先,时间对于所有的职能而言都是稀缺资源,大多数互联网企业都采用了小步快跑的迭代方式,很少有企业是先把问题研究清楚才入场的。大家都是边打边学。不论是业务岗、产品岗,还是技术岗,都是摸着石头过河,这就不可避免地导致所有职能都被自己的认知局限所羁绊。
2、企业外部环境的影响
最常见的削弱一个技术体系外部适应性的外在因素就是竞争。竞争会打乱企业的部署和节奏,迫使企业不得不响应市场环境的变化,而不是有规划有节奏地做自己的业务和产品。
除了竞争外,还有其他环境因素也会影响技术体系的外部适应性。比如用户需求的流行趋势、宏观经济周期、监管环境、资源供给、技术趋势等等,无时无刻不在发生变化,这些也可能导致企业原有的外部适应性的计划失效。
3、企业组织结构的影响
最后一类削弱技术体系的外部适应性的因素,与企业的组织结构有关。不论是业务线研发、产品研发,还是基层技术的研发,这些同学的本能反应,都是先维持自己的生存空间。
另外,因为各个领域的内部目标、具体挑战和资源环境都不相同,所以每个领域的研发人员设计出来的软件架构自然也存在差异。
也就是说,研发人员由于自身认知局限、沟通的局限,或者是为了保护自己团队的利益,导致他们的设计都是局部最优,而不是全局最优。这种局部和全局的冲突,在一个跨团队的大型架构活动中很容易外化出来,导致整体的外部适应性随着组织复杂度的提升而被削弱。
那么你作为一个架构师,就要通过技术抽象为一个企业创造出经得起时间考验的整体设计,从而为企业的整个技术体系注入外部适应性。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: Multiserver游戏服务器Demo[C++&Lua]
代码参考 代码文件参考下述详解的类图,工程参考第零章工程说明 关键特性 对Socket库进行封装,抹平Socket的Window&Linux的平台差异。 C++嵌入lua脚本,增加开发者编码效率,减少编译时间消耗。 非阻塞网络IO 多线程任务模型 多服…