关于技术问题和解决方案的多方面观点

多年来,一些人询问有关Etsy的建筑审查过程的细节。

在这篇文章中,我将重点介绍架构审查工作组在促进技术决策对话方面的作用。其中一部分实际上只是关于一般的工作组(职业,缺点,格式等),另一部分则依赖于丹麦·麦金莱(Daniel McKinley)在他的讲话中的一般哲学,所以我会考虑阅读这些然后回到这里。

基础:工程决策是一个社会建设的活动

但首先,我们需要从一点基础理论入手。1985年,比利·沃恩·科恩(现任德克萨斯大学荣誉教授)介绍了我以前写过的“工程方法”的想法。关键的观点是他的观察结果表明,工程师的定义不是他们生产的,而是他们的工作方式。他简洁地描述了工程方法,它说:

“在现有资源范围内做出最不了解或不确定情况的最佳变化的战略”

请注意规范性条款最好和不好。

换句话说,工程(作为活动)对问题没有“正确”的解决方案。除此之外,如果您正在寻找解决问题的正确方法,我建议您在不同的领域工作(如数学); 工程很可能会让你失望。

我完全同意这个想法,我会再说一遍,说成功的工程团队很大程度上是通过对话找到问题的解决方案。我的意思是,他们从事各种形式:

描述他们认为需要解决的问题。这可能或可能不是直接的解释或描述,所以一个组织通常需要一个来回来来完全掌握它。
生成关于所描述的问题是否需要或多或少完整或穷举的解决方案的假设。一些问题描述可能真的很狭窄,或者说真的很广泛,一些问题不一定要全部“解决”,等等。问题会永久存在吗?
评估解决方案的选项。优缺点都有什么?需要支持解决方案的团队能否维持或维护该解决方案?某些解决方案是否有“到期日”?可能的意想不到的后果可能会导致依赖于此解决方案的上游/下游系统?
建立对实施给定解决方案的信心。集团如何以积极或消极的方式发挥解决方案的不确定性(以及在什么方面)?
等等。
我意识到这应该是显而易见的,但我将这个观点纳入其中,因为我不断惊讶,当这个主题是公司选择使用特定技术(框架,语言,架构等)时,这是多么的困难,或不。

一旦你可以理解工程决策在社会上构建的概念,那么你可以理解我相信“架构审查”的设置和设置是至关重要的。

的概念和意图

当凯兰和我2010年第一次来到Etsy时,我们制定了一个过程,一个工程师(或一个小组)正在寻求实施新的东西(不同于我们已经在做或正在使用的)将提出他们是试图解决,为什么他们认为Etsy的现有解决方案不是理想的解决方案。我们称之为架构审查。

我们称这些“新事物”的事情离开了。再次,丹的帖子/谈话已经过去了,但基本思想是有成本(其中许多在许多方面都可以隐藏和惊奇),用于在不考虑全局影响的情况下尝试解决本地问题的出发可以在组织上

出发可以包括以下内容:

用已经在公司不广泛使用的语言编写功能或功能
重新设计功能或功能(即使是已经广泛使用的语言)
引入了一种尚未使用的模式或架构
使用新的服务器软件来存储,缓存或检索尚未使用的数据
基本上,任何有可能惊奇和挑战的团队(最终)破裂的事情
上面那些子弹很模糊,我相信你注意到了。那么你怎么知道什么时候应该要求架构审查?问你的同事 如果你正在辩论你的事情是否需要一个,那么你可能会这样做。

那么这个建筑评估会议呢?真的很简单 这只是工程师的一个演示文稿,就他们提出的解决方案寻求反馈,而凯兰和我会提出问题。会议开放给想参加的公司的任何人。希望许多工程师实际上会参加。这里的意图是帮助工程师尽可能彻底地描述他们的问题,通过提出问题,我们可以帮助我们提出他们在思考问题时所做的默认假设。简而言之,这是一个批判性思考的工作,我们希望工程师想要做到这一点,因为它是理想的提供反馈。

从这个角度来说,这个想法可以从一个想要反馈的工程师的角度来看:

“嘿,大家 - 检查一下:我相信我必须解决问题X,而且我已经考虑过使用A,B和C来做,但是它们似乎都不是理想的。我想我必须以离开Y为解决方案。请尝试跟我说这个。“

这种方法导致了上面提到的对话的一些非常好的提示。提示如:

“可能我甚至不需要解决问题X?”
“我错过了A,B或C的东西吗?他们有可能工作得很好吗?“
“如果我和Y一起去,我们需要做些什么来确定支持Y作为这种类型问题的解决方案?”
在很高的水平上,我们在早期的这种做法是相当成功的,因为我们能够让工程师来到,谈论他们所做的判断和假设,并就他们的理解细节提出问题和建议的问题和潜在的解决方案。即使它开始主要是凯兰,我提出问题,我们也积极鼓励他人。慢慢地,他们做到了,它成为了一个真正强大的信心来源的团队,集体。

做这些审查有一些非常令人惊讶的结果。不止一次,房间里的某个人会认识到所提出的问题,并且继承了他们也在与代码库的不同部分过去一样几乎相同的问题。他们说,有一些微小的变化,它可以解决手头的问题,而不是重新发明一些新的东西。大!

有一次,工程师走过一个相当复杂的图表,概述了他们将如何收集,总结,存储和处理数据以提供新功能。他们的解决方案不仅将新语言纳入应用程序的关键路径,而且还向堆栈引入了一个新的(并且在当时相对不成熟的)数据存储区。来了几个问题后,很明显,他们需要的数据已经存在,而且只有一个SQL查询和一个cron工作远离实现新功能。

这些结果并没有经常发生。但是当他们这样做的时候,这是相当满意的。

其他时候,一位工程师会出面对话,很明显,从多个角度来看,出发(新的和新颖的建议)似乎是最好的路线。

总的来说,我想说,从早期的架构审查实践中我们获得了很多好处。工程师在职业生涯中开始了很好的做法,介绍他们的工作和思考,老员工有机会分享一些他们不会拥有的知识或专长。就像我提到的,有时工程师通过走一条更简单的路线可以节省大量的时间和头痛。从领导层面来看,我对组织关于设计的建设性谈判能力的信心增加了。

多视角对话如何演变

但是,有一个问题:当你是首席技术官和高级副总裁时,当你邀请他们来参加会议时,你不会感到惊讶。我经常想知道有没有问题和意见,因为在房间里的力量动态不被说。我知道,除非房间中的大量工程师证明了实践的精神(即创造和支持一个批判性思维对话,旨在帮助工程师,个人和组织),那么将有一个很好的机会它将成为一种分层次的“美国偶像”风格的判断小组,严肃的政策掌握。

当然,这个想法是,更好的决策来自于人们对提出可能被视为“愚蠢”或“天真”的可能被看到的问题感到放心,并且主持人的听证会作为评论意见的设计,而不是在评论他们的技能。这意味着设计的起源(当时打算解决什么问题,当时人们关心的是什么)可以被记录下来

组织越多,单个人(甚至CTO或SVP)就越难以维持这种方法,并将工程师带入建筑评估中的假设。

特定类工作组的开始

因此,开发了一个建筑评估工作组或“ARWG”。主要思想是,如果没有高级工程领导层,这样一个团队可以保持这种做法,为会议带来专制风格,并不断地为行为所需的行为提供模型,以鼓励需要离开的多个视角。

一个小组成立,4或5人。原始的工程师将来自产品,基础设施和运营团队,但是其他团队的工程师则在之后加入。在某些时候,一些成员旋转进出。

该团队的章程基本相同,在高层次上,正如我们打算如何早期的建筑评论一样:提供一个稳定和受欢迎的环境,工程师可以公开地描述他们如何在解决问题时解决潜在的新颖和新颖的技术和模式。这个环境需要支持组织其他部门的关于权衡,假设,约束,压力,维护以及离职的责任的问题和意见。最后,记录如何确定出发的决定,因此存在一种人类学的工件来为未来的决策和对话提供信息。

你可能会在想:“但决定的时间和地点 何去何从?”

ARWG的作用不是作出决定。

ARWG的作用是创造和维持可以进行对话的条件,同时在既定时期内就可能遇到的问题和解决方案提出许多观点,然后便利围绕决定进行讨论。

在这一点上,我想在“对话”和“讨论”之间进行语义上的区分,我将从之前的博客文章中提到,在那里我提出了“对话:思考的艺术”

对话是探索选择的本质。选择是选择替代品。对话是关于唤起洞察力,这是一种对我们的知识进行重新排序的方法,特别是人们把握的假设。
讨论就是作出决定。不同于对话,寻求开放的可能性和看到新的选择,讨论寻求关闭和完成。这个词决定的意思是“通过削减他们解决困难。”其根源字面意思是“谋杀的替代品。”
ARWG的作用是首先促进对话,然后讨论。关键思想是在离开(问题和解决方案)之前通过“开放和好奇的心态”轻松地散发光,然后进入选项的评估阶段。对话旨在首先引起注意事项的细节(并假设必要性),然后只能讨论不同选项的优点。

根据我的经验,当一个架构审查引起了一个问题的注意,并从多个角度提出了解决方案,决策变得不那么有争议。当一个广泛群体的决定似乎是显而易见的(“问题:我们(或者我们不应该)是否对关键数据库进行备份?决定:是的)”决策的做法几乎消失了。

只有当一个决定没有普遍的协议(或者即使有必要的决定)时,知道如何,谁以及何时作出决定变得重要。架构审查的想法是以足够的方式将问题空间和提出的离职思想暴露给对话,尽可能地减少对它们的混淆。关于这个话题的较少的混淆可以帮助减少解决方案的不确定性和/或焦虑。

现在,这里存在一些陷阱:

工程师(无论是呈现还是作为观众参与)都需要了解架构审查的目的是开发更好的结果。而已。它不是展示他们的技术实力。
如果没有什么只关注“但是谁做出最终决定”呢,这就是一个信号,即批评和反馈(再一次是关于问题和解决方案)并不是真正的需要,而工程师则认为他们的偏离想法应该从任何理由得到通过批评。问这些原因是有用的。
没有强烈和持续地强调“批评代码,而不是编码器”,这种方法可以(并且将会保证它)在多个方面发挥防御性的作用。首先,正在寻找有关出发点的反馈意见的工程师需要将其视为作为成熟工程师的角色的一部分。
有时候,您可能会发现一位工程师对于他们针对特定问题开发的解决方案非常的热心,他们开始将重点放在演示文稿上,作为“销售点”,而不仅仅是表达了获得反馈的愿望。好消息是,检测发生的时间相对来说比较直观。坏消息是,审查的目的并不普遍。

其他时候,您可能会找到一组负责开发解决方案的工程师,这些解决方案与负责维护解决方案的团队不同。这个权威责任“双重约束”确实揭示了自己甚至是最小的组织。在这种情况下,恭喜!建筑审查能够将潜在的大象带入桌面。

在几乎每一种情况下,无论结构如何,建筑审查的结果都将永远在人们心中留下深刻的怀疑,就是离开而不是一个很好的决定。这些挥之不去的阴影是正常的。

欢迎来到工程部门,解决问题归结为“ 在可用资源范围内对知识不足或不确定的情况进行最佳变化的战略”。

虽然我不能指出,采用这种方法是在技术离职时总是做出最好的决定的气密方式,但我可以这么说:没有从技术上的不同群体获得多个观点,比如这种方法,你是所有这些都是保证不太理想的决定。

所以下一次你确定一个特定的新方式做得更好,组织的其他部分应该落后于你的想法,我会告诉你的:

“很好,听起来你有一个假设!我们要做一个架构审查。如果您认为它是一个明显的解决方案,组织的其余部分应该很容易得出相同的结论,这将使实现和维护更容易。如果有一些不明显的缺点,我们至少有机会挑逗出来!“

时间: 2024-11-02 19:11:22

关于技术问题和解决方案的多方面观点的相关文章

一个应用区块链技术的安全解决方案

本文讲的是 一个应用区块链技术的安全解决方案,面对日渐脆弱的网络安全基础设施,有一个新型的但被忽视了的解决方案值得考虑,即比特币.Ethereum和Zcash之类的开放区块链网络. 某种程度上,开放区块链网络与域名服务商等传统基础设施提供商所用的技术很像.如同中心化的DNS服务器,开放区块链网络记录重要数据,并保护数据不受恶意或欺骗性干扰.对于密码货币,比如比特币,这些数据就是比特币用户之间的类现金交易列表.但开放区块链网络也可以用于安全记录所有类型的信息,从DNS记录到智能设备实体,到物联网用

对数据分析解决方案供应商而言 技术与业务性解决方案并重

当下,企业寻求的不仅仅是数据分析解决方案本身,还需要考虑一些专业的业务性解决方案.因此,对于数据分析解决方案供应商而言,方向越来越明晰,在技术创新的同时还应进一步加强与客户互动的方式.做为拥有四十余年历史的数据分析解决方案供应商Teradata,早已意识到这一点. 提升能力:咨询.技术多方面布局 Teradata天睿公司国际集团执行副总裁Peter Mikkelsen在2017 Teradata大数据峰会的媒体沟通会上表示,在过去这一年,Teradata发生很多变化: 一方面,为更好地服务企业,

云安全的挑战:涉及技术、监管等诸多方面

过去几年,云计算的兴起一直都是科技领域的热门话题.而随着全球经济陷入衰退,公司控制成本的需求与日俱增,是否将业务流程通过"云"进行外包成了管理者们愈发关注的话题.这种趋势下,"无论是作为实时联网工具,还是作为应付经济衰退的措施,云计算的运用都在增长",Strategy Analytics最新的一份报告指出.而根据埃森哲的预计,2013年,中国的云计算市场将达到1174亿元人民币,正处于快速扩张之中. 众所周知,"云"从字面意思来看,意味着云一般宽

NEC推出面向5G时代采用AI分析技术的无线传输解决方案

NEC近期宣布推出适用于全球的"智能无线传输网络"(以下简称Smart WTN)解决方案,用于解决5G网络移动回程中的瓶颈问题,该方案具备传输容量大和动态网络优化的特点. Smart WTN包含NEC在E-band频谱内提供10Gbps传输能力的超小型无线通信系统iPASOLINK EX,和用于回程资源管理(BRM).可以动态控制有线和无线网络的SDN控制器以及NEC广泛部署的人工智能(AI)技术 "NEC the WISE"(注*).该方案能够为项目提供从首次小型

无线城市建设技术分析及解决方案

无线城市在中国的发展表现出强劲的势头,除了台北,香港大规模部署外,中国大陆地区的北京,上海,广州,武汉,深圳等地也已经或准备开始无线城市建设.目前中国大陆地区无线城市建设采用的主要无线技术体制为wimax+mesh wifi,其中wimax处于无线骨干网络,用来汇聚各个区域的流量,与有线网络连接;mesh wifi则处于无线接入层,完成终端到网络的接入,以及小范围内无线数据的跳接.使用mesh wifi作为无线接入层的好处在于:1. WIFI技术产业链成熟,各个环节的产品种类繁多,竞争充分,产品

利用开源技术搭建视频解决方案平台,以色列初创公司Kaltura获4700万美元投资

4G 时代已经来临,视频作为下一个新的流量增长点,其地位已经越来越不可小觑.当视频越来越担当着传播品牌.推广产品等重任的时候,随之而来的就是如何高效.便捷地生成视频.进行传播.并得到反馈.而这些,正是一个以色列团队正在努力的方向. 这家名叫Kaltura的以色列视频初创公司在其网站上宣布获得了4700万美元的投资,其投资方主要包括 SAP Venture 和 Nokia Growth Partners 等.这笔资金将被用来加快产品开发,并在巴西.中国.墨西哥.日本.新加坡.韩国以及澳大利亚推广服

4种恶意软件反查杀高级技术 反病毒软件和APT解决方案都在为此头疼

在8月末,安全加报道了 恶意软件每天至少30万个变种,这些恶意软件的作者通常使用4种恶意软件反查杀技术 ,对抗各种检测扫描,今天我们接续来说更高级的 混淆技术 以及可用于检测回避式 恶意软件 的新方法和技术. 对抗反汇编和调试工具(防护程序) 恶意软件作者对恶意软件研究员的工作了如指掌且了解他们采用哪些工具定位威胁.例如,研究员和程序员经常采用反汇编程序和调试工具检测代码行为.多种工具和技术均可检测反汇编程序和调试工具,如Windows内置功能.很多此类技术旨在对攻击者进行防御,因为攻击者可能会

GNTC顶级大咖共绘网络技术发展蓝图

2017年11月28日-30日,由天地互连-下一代互联网国家工程中心主办的GNTC 2017全球网络技术大会(www.theGNTC.com)将在北京长城饭店会议中心火热开幕.作为中国本土规模最大的网络技术盛会之一,GNTC 2017将汇聚超过2000位行业精英,共话全球网络重构.在大会第一天上午的全体大会上,中国工程院院士邬贺铨.吴建平:互联网名人堂入选者Paul Mockapetris.Paul Vixie:美国国家工程院院士.斯坦福大学教授Nick McKeown: APNIC主席Paul

区块链技术指南.

区块链技术指南 邹均 张海宁 唐屹 李磊 等著 图书在版编目(CIP)数据 区块链技术指南 / 邹均等著. -北京:机械工业出版社,2016.11 ISBN 978-7-111-55356-4 I. 区- II. 邹- III. 电子商务-支付方式-指南 IV. F713.361.3-62 中国版本图书馆CIP数据核字(2016)第268750号 区块链技术指南 出版发行:机械工业出版社(北京市西城区百万庄大街22号 邮政编码:100037) 责任编辑:高婧雅 责任校对:殷 虹 印 刷: 版 次