Lightweight Architecture Decision Records | 雷达哔哔哔

写在前面

ThoughtWorks每年都会出品两期技术雷达,这是一份关于科技行业的技术趋势报告,在四个象限:技术、平台、工具以及语言和框架对每一个条目(Blip)做采用、试验、评估、暂缓的建议。(参考阅读:解读技术雷达的正确姿势)

一直以来,我们都未对每一个Blip做进一步的解读,而这次决定尝试一个新的专栏——《雷达哔哔哔》,由作者根据自己实践与理解,对雷达中部分条目作出解析,致力于用一篇篇短小精悍的文字,帮助读者加深对雷达的理解。

今天是《雷达哔哔哔》的第一篇,Blip是Lightweight Architecture Decision Records

位置:

2018年5月第18期技术雷达技术象限,建议试验

目标受众:

系统架构师,技术管理者,开发设计人员

关注问题:

  • 传统的重文档编写维护量大,随着业务发展,很难保持同步
  • 在一些敏捷项目中,随着关键文档的缺失、项目Knowledge及决策丢失导致长生命周期的项目知识传递问题

解决方案:

使用“ Lightweight Architecture Decision Records”(轻量级架构决策记录)来记录项目的重要决策,并将其与代码等其他项目资产一样,纳入到版本控制系统之中。

解读:

“项目要不要写文档”一直是一个很有争议的问题。在过去,项目一般都要写众多的文档,类似于需求说明书、概要设计、详细设计、数据库设计和其他各种各样的设计文档,而这些文档的作用往往只是为了【过评审】或是【招投标】,写文档的形式也更多是简单的复制粘贴。

项目拿下了,过审了,一旦开动起来,文档反而就被束之高阁,再也无人过问了。

很多人没日没夜地写着千篇一律的文档、文档、文档……终于有一天,盼来了敏捷,并看到了敏捷宣言中硕大的一句:

(敏捷宣言)

唉呀妈呀,终于见到了亲人,从此高举着敏捷的大旗,与文档势不两立。

再有人敢提起写文档,就把早已准备好的“敏捷大棒”从身后掏出来,劈头就是一棒槌……

不得不说,敏捷又一次背了口黑锅。敏捷宣言所推崇的并不是简单的不写文档,而是认为之前那种写文档的方式根本没有体现出其应有的价值。还不如代码写的漂亮些,测试写的完备些,让代码和测试成为真正有价值的活文档。

而这,相对于简单的复制粘贴攒文档,对于团队的要求反而更高了。

世间万物,物极必反。

随着时间的推移,再好的敏捷团队也会出现知识流失的问题,尽管有着完备的测试和易读的代码,但这些毕竟过于细节,无法快速还原当时设计或重构时的所有上下文。

所以技术雷达推荐使用“ Lightweight Architecture Decision Records”来记录项目的重要决策,相比于传统文档,它最大的特点就是轻量(Lightweight),关注于创造价值而不是遵循流程。 让我们看个ADR的模板:

(ADR Template)

同时技术雷达也建议我们不要将ADR束之高阁、放到Wiki或是文档库中。而是随着代码放到Git或其他版本控制工具里,这样既可以保持最大程度与代码同步,又能跟踪Decision的变更历史。

推荐的Adr-Tools工具,可以帮助我们更容易的做到这些。

相关Blip及延展阅读:

  • Lightweight Architecture Decision Records
  • Blog | Documenting Architecture Decisions | Relevance
  • GitHub - joelparkerhenderson/architecturedecisionrecord: Architecture decision record (ADR) examples for software planning, IT leadership, and template documenation
  • Documenting Architectural Decisions Within Our Repositories — Embedded Artistry
  • Architectural Decision Records | adr.github.io
  • What are lightweight Architecture Decision Records?

工具:

  • GitHub - npryce/adr-tools: Command-line tools for working with Architecture Decision Records

原文发布于微信公众号 - 思特沃克(TW-Insights)

原文发表时间:2018-10-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据文摘

[译] 天龙八步 第二弹:8步从Python白丁到专家,从基础到深度学习

2817
来自专栏SDNLAB

白盒网络设备如何影响网络

3885
来自专栏新智元

FaceApp:基于深度网络为人像照片加笑容,实现年龄、性别变换

【新智元导读】 FaceApp 不仅是一个有趣的应用,它证明了人工智能如何使得处理照片变得前所未有的简单。比如,p上笑容、年龄和性别转换均可以轻松完成。过年拍...

41511
来自专栏新智元

深度学习动手实践:用 TensorFlow 打造“会看”的机器人

(文/Lukas Biewald)物体识别是当前机器学习最热门的方向。计算机早已能够识别如人脸、猫之类的物体,但识别更大范围里的任意物体对人工智能来说仍是难题。...

4706
来自专栏腾讯社交用户体验设计

那些蒙版引导的小细节

2244
来自专栏机器之心

开源 | 微软发行 Cognitive Toolkit 2.0 完整版:从性能更新到应用案例

选自Microsoft 作者:John Roach 机器之心编译 参与:黄小天、蒋思源 近日,微软在其官方博客上撰文宣布全面开源 Microsoft Cogn...

3448
来自专栏大数据挖掘DT机器学习

基于微软案例数据库数据挖掘知识点总结(结果预测篇)

前言 本篇文章主要是继续前几篇Microsoft决策树分析算法、Microsoft聚类分析算法、Microsoft Naive Bayes 算法,算法介绍后,经...

3166
来自专栏新智元

【Science重磅】自学习人工智能在预测心脏病发作上击败人类医生

【新智元导读】Science 今日报道,科学家使用能够自学习的人工智能技术,让计算机在预测心脏病的发作上击败了人类医生。一旦投入使用,这一新的诊疗手段每年将拯救...

3806
来自专栏木东居士的专栏

DataTalk:是一个宽表好还是多个维表好?

8443
来自专栏量子位

不会SQL?没关系,以后动动嘴就能查询数据库了 | 附论文

陈桦 编译整理 量子位 出品 | 公众号 QbitAI ? 在编程世界里,SQL非常简单。然而,这种语言仍有一定的学习难度,导致许多人无法与关系数据库进行交互。...

3479

扫码关注云+社区

领取腾讯云代金券