Skip to content

Instantly share code, notes, and snippets.

@zhanhai
Last active September 3, 2016 04:09
Show Gist options
  • Save zhanhai/53af4bb861db9f7433c97fd9f01fefa9 to your computer and use it in GitHub Desktop.
Save zhanhai/53af4bb861db9f7433c97fd9f01fefa9 to your computer and use it in GitHub Desktop.

架构师职责

架构师在团队中承担什么责任?这个问题不搞清楚,不利于架构师开展工作,不利于团队对架构师作出合理期望,还导致无法正确评估架构师的工作绩效。

从各个公司对架构师的JD来看,一般会要求架构师是个技术大牛,负责搭建系统架构,解决技术问题,提高团队技术实现能力。在这个基础上,有些团队还会要求架构师承担一些团队管理和组织学习方面的工作。没错,架构师确实应当承担这些职责。但在我看来,所有这些,其实都围绕着一个中心:软件质量。架构师职责的核心就是要实现和保障软件质量,所有的具体架构工作都是服务于软件质量这个目标。

架构师对交付软件的质量负责,所有质量上的问题,即使不是架构师自己设计和编码的,架构师都要担当最终责任。注意:QA不保证质量,他们只负责发现问题。

架构活动

架构师通过架构活动,实现并交付质量合格的软件。架构活动包括多种类型,不同类型的活动的驱动因素、活动形式、内容和输出都不同,但目的都是为了提高质量,及时发现和解决可能危及软件质量的问题。

需求驱动的日常架构活动

新的需求提出来以后,架构师要主动参与到相关的分析、设计、实现、交付和运营等各个阶段。

  • 需求 理解需求,梳理分析,设计领域模型

  • 设计 担当或者review其他团队成员设计

  • 编码 及时code review,通过reivew可以达到目的:保证实现和设计不偏离;发现原有设计中的问题;了解成员的实际能力;传递架构知识和领域知识;

  • 测试 关注问题性质,对频繁出现的普遍性问题,提出公共的解决方法;对由于技术难度造成的问题,提出支撑框架,降低实现难度;

  • 发布 通过自动化的手段,不断提高发布效率,减少发布中的出错

  • 运行 关注生产问题,对和质量相关的问题,从架构的角度考虑如何避免

问题驱动的架构改进活动

开发、维护和运营中暴露的各种质量问题,包括: * 开发人员的困难和障碍 * 软件缺陷 * 生产问题 上述问题是否有可能通过架构和软件方面予以解决?

新技术驱动的架构改进活动

新技术和其他成功/失败案例和现能有实现比较后,是否有值得借鉴、引入的方面?

技术交流活动

  • 架构师发起并确定交流内容
  • 全员参与,团队成员主讲
  • 通过活动,提高成员的学习能力和总结能力

架构宣讲活动

  • 架构师发起并主讲
  • 介绍架构的设计思路,why/why not
  • 通过活动,帮助团队熟悉架构,提高开发效率。同时根据交流中的问题、建议、争论和挑战,完善架构
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment