使用Facebook方法处理复杂问题

这是BI挪威商学院(挪威最大的商学院)战略与物流系副教授Espen Andersen在ACM Ubiquity博客上发表的文章。(译者:李雅慧)

计算机系统曾经非常脆弱,以至于我们不得不简化它所处理的问题。现如今,即使最复杂不过的问题,计算机也能从容应对——但我们仍需懂得如何简化,才不至于令大众面对本不必要的复杂。

图片描述

已故的哈佛大学商学院教授James McKenny是我的导师,他讲过这样一个故事:人们刚使用计算机时,零售企业西尔斯(Sears)公司曾找他参与一套库存自动化管理系统研发。他很快发现,在当时,哪怕“男袜”这样的小商品门类都会耗尽全世界的计算和存储资源,因为这个门类有庞大的属性集合——号码、颜色、材质、样式、长度等等,它们组合在一起,复杂性呈指数增长。

对当时的计算机来说,这些问题过于复杂,若想自动化处理,西尔斯公司必须先简化问题,例如将一些商品的多个属性加以整合,用同一代码表示,或者直接在系统中忽略某些属性。

自那以后,计算机性能突飞猛进,存储成本可忽略不计,压缩算法也愈加精妙。能自动化处理的问题大大增加,但是组合带来的复杂性依旧——只不过现在是“人”应付不来计算机系统了,尤其在面对那些庞杂又刻板的系统时。

这些系统极度复杂,因为牵涉的场景太多,有些差别仅在毫厘之间。与用户交互时,系统需要喋喋不休地经过许多步骤才能与用户匹配。即便95%的用户都一样,但大家都逃不过5%特例才会面对的复杂问题。结果是,自动化系统把仅仅涉及小部分用户的复杂性施加到所有用户身上。

举个例子:一家大型IT服务企业顾问前几天跟我讨论大型公共系统的。所谓“大型公共系统”包括医保、税收、社会服务、军队系统等,一般都极其复杂,因为它们本身面对的问题就是如此——与民众和公务员们打了数十年的交道后,系统中积攒了无数的规则、规矩、实例和传统,连刑具、中世纪战舰这类琐碎的内容都在其管理范围内。这些系统就是书本报端中常提到的“项目管理灾难”。(这不是新问题,也绝不限于公共领域,私有企业一点儿都不少,只不过藏得深。)

依我之见,问题的根源出在公共系统架构师身上,他们首先追求自动化,其次才想到简化。之所以先把简化搁在一边,是因为这类工作需要层层批准。“简化”就是选择不做哪些工作,其困难之处在于,专家们往往坚持把复杂的特例纳入系统中。支持先简化的人太少,支持他们立场的具体论据也太少。即便这样,先简化再自动化才会令工作更高效。

那位IT顾问提到个具体案例:数据库中的“性别”字段。乍听之下,我天真的以为“性别”无非是三种情形:男、女和待定(如事故中受害者,或是未出生婴儿无法确定性别)。然而,事实上这个问题非常复杂:除了男女性两个主要性别,还有其他许多分类,与人性的各个细小分支有关。所有这些普遍选项外的变量产生了复杂的组合,让所有问题都变得异常复杂。

听完这个案例,我暗自思索:倘若在系统架构之初不纳入这些复杂的因素,而是使用Facebook的方法,会怎么样呢?Facebook只会问很少的几个与年龄、性别、职衔问题。其中一个我记忆尤深:“你正在恋爱吗?”选项是:“是的”、“没有”和“这很复杂”。

(当然,我知道Facebook现在已经把选项设计的更精细了。请继续往下看,重点在于我因为此事想到了什么。)

一些原本刻板的系统之所以赢得青睐,是因为它们高效的应用了上面的方式。上世纪90年代,挪威税务管理局负责人叫Bjarne Hope,他非常有活力(可惜英年早逝),在他的领导下,管理局认为挪威人民花在填报各种税务表单的时间太多了,并不高效,因为许多需要人们填写的信息挪威政府已经从雇主、银行或其他来源得到了,不需要重复填写。于是他们采取了新方式,由挪威税务管理部门提前填写好一份简化后的两页税务表单,然后寄给纳税人。纳税人收到的表单上只有一个简单的问题:“以下是我司记录的本年度纳税信息,数额是否正确?”如果正确,只需签字确认然后寄回即可。(从2000之后的几年,纳税人就可以通过手机短信完成这项工作,大约从2010年,纳税人如果确认数额正确,甚至什么都不用回复。)如果数额不正确,只需要把正确的数额写在错误数额的旁边,签字确认完毕后再寄回。

最初,这套系统仅适用于挪威30%的纳税人,他们只有一份工作、一份固定的收入,只享受标准减税政策。年复一年,随着税收政策不断简化和系统升级,扩展到了更广泛的人群,如今已覆盖80%的纳税人。我自己的纳税情况比较复杂:一份主要的工作、几份兼职、运营了几个小公司。然而,去年我纳税的方式非常简单——看了一眼税务局发给我的纳税申报单(当然是在线的,不是纸质),然后什么也没做,因为申报单上的数额是正确的。我的公司纳税流程也是在网上进行的,直接通过会计系统完成。

大多数挪威人对税务管理局的评价很高,尽管也时不时抱怨税收太重(这很正常)。能够赢得纳税人的认可,全都是因为在系统架构之初他们就先想到要把简单的事情自动化,然后再持续简化流程和扩展系统。这件事还有个附带的好处,那就是给政客们带去了简化税收政策的压力,因为只有简化税收政策,纳税人才能轻松确认纳税申报单。

依我看,生活中需要更多这种“是的,不是,这很复杂”的选项。你们觉得呢?

或许你会回答:“这很复杂”。


原文链接:http://ubiquity.acm.org/blog/the-facebook-method-of-dealing-with-complexity/

用系统思考解决复杂问题 用系统思考解决复杂问题 摘要 系统思考是一种强有力的方法,用于理解和解决复杂问题。本文将探讨系统思考的基本概念、原理和应用,以及其在企业管理、公共政策制定、环境问题解决和社会治理等多个领域的应用。通过详细的分析和案例分析,本文将展示如何利用系统思考来揭示问题的根本原因,制定有效的解决方案,并优化系统的整体性 阅读详情

相关推荐

推荐系统11:Facebook是怎么为十亿人互相推荐好友的

回顾矩阵分解 矩阵分解要将用户物品评分矩阵分解成两个小矩阵,一个矩阵是代表用户偏好的用户隐因子向量组成,另一个矩阵是代表物品语义主题的隐因子向量组成。 这两个小矩阵相乘后得到的矩阵,维度和原来的用户物品评分矩阵一模一样。比如原来矩阵维度是 m x n,其中 m 是用户数量,n 是物品数量,再假如分解后的隐因子向量是 k 个,那么用户隐因子向量组成的矩阵就是 m x k,物品隐因子向量组成的矩阵就是 n x k。 得到的这两个矩阵有这么几个特点: 每个用户对应一个 k 维向量,每个物品也对应一个 k 维向

qq_28286027的博客 400

面对复杂问题时,系统思考助你理解问题本质

随着业务的持续发展变化,业务不可避免的越来越复杂和难以理解。这里给大家介绍一个帮助自己全面理解复杂系统的工具:“系统思考”,希望对大家有所帮助。

阿里技术 5843

Unity UI适配实战:从Canvas Scaler到主流游戏适配方案解析

本文深入解析Unity UI适配的核心技术,重点介绍Canvas Scaler组件的关键参数如Reference Resolution和Screen Match Mode,并提供主流游戏适配方案实战分析。通过九宫格拉伸、动态调整等技巧,帮助开发者解决多设备适配难题,提升游戏UI在不同分辨率下的表现。

weixin_29001419的博客 970

NP问题概述

P问题:Polynomial-time问题,可以在多项式时间内用算法进行求解的问题。 NP问题:非确定性多项式时间(nondeterministic polynomial-time)问题,所谓的非确定性是指,可用一定数量的运算去解决多项式时间内可解决的问题,不确定是否存在多项式时间求解算法。可以在多项式时间内验证一个猜测解的正确性。 不可判定问题(undecidable problem):"不可能“解出的问题。 多项式时间: 知乎里面看到的一个比较容易理解的解释如下: 简言之: 对于时.

mxrsunshine的博客 3917

Android逆向进阶篇 Charles + Drony Vpn绕过代理检测方案 获取猫眼App数据

Android逆向进阶篇 Charles + Drony Vpn绕过代理检测方案 获取猫眼App数据

曾用名:极客柒 1851

FOC无刷电机磁编码器机械角度与电角度自动对齐校准及电机极对数自动获取的方法

本文提出磁编码器机械角度与电角度自动对齐校准方法及电机极对数自动获取方案。通过通直流电流使转子定向,读取机械角度并计算电角度偏移量,实现精确对齐;同时利用低速旋转时检测反电动势过零点次数,结合机械角度变化量自动计算极对数。核心算法包括转子定向、偏移量计算、极对数推导等步骤,并提供了基于STM32的C语言实现代码。该方法适用于工业伺服、机器人等高精度控制场景,需注意负载安全、参数调整和误差处理。两种自动化流程可有效解决电机安装调试中的角度对齐和参数识别问题。

qq_29653575的博客 2481

对于复杂性问题可以用机复+人杂

解决复杂性问题可以使用人类与机器各自的优势与分工,尤其是在面对复杂任务时,如何利用机器的计算和自动化能力来处理可重复性部分,而将复杂、模糊或杂乱无章的部分留给人类。这种思路有助于更有效地利用机器和人类的独特能力。1.机器解决可重复性部分机器在处理可重复性任务时表现出色,尤其是在以下几个方面:(1)自动化和高效性:机器和人工智能能够快速、精确地执行高度结构化、重复性的任务。例如,在生产线上的机器人...

人机与认知实验室 676

arcgis根据矢量范围统计栅格数据众数、最大值、均值、中位数、最小值、少数等

像元统计数据 根据多个栅格数据计算每个像元的统计数据。 可用的统计数据有:众数、最大值、均值、中位数、最小值、少数、范围、标准差、总和及变异度。 https://desktop.arcgis.com/zh-cn/arcmap/10.3/tools/spatial-analyst-toolbox/an-overview-of-the-local-tools.htm ...

GIS哼哈哈的博客 6万+

[管理与领导-92]:IT基层管理者 - 扩展技能 - 5 - 职场丛林法则 -6- 复杂问题分析能力与复杂问题的解决能力

管理者不仅仅管理好人(上司、下属、同事),更重要的要具备问题分析和解决的能力,职场的本质,就是解决公司遇到的问题,解决上司遇到的问题,没有问题要解决,就意味着你要失业了,鸟尽弓藏在职场丛林中一样存在。问题的分析和解决能力是一个人的核心能力。问题(problem)是指在实践、思考或研究中遇到的难题、困惑或需求,需要找到解决方案或答案的情况或情况描述。问题通常意味着一种现实与期望之间的差距,需要找到合适的方法或策略来解决或满足需求。问题可能在各种领域出现,包括生活、工作、学习、科学等各个方面。

文火冰糖(王文兵)的博客 1253

OpenClaw赚钱实录:从“养龙虾“到可持续变现的实践指南——原生“龙虾”OpenClaw快速部署、问题速查与避坑指南

至此,你已经完成了从选购服务器到配置AI大脑的全过程。无论是想在云上养一只7x24小时的“龙虾”,还是在本地体验AI Agent的魅力,上述指南都提供了明确的路径。下一步,就是接入飞书、钉钉或QQ,让你的OpenClaw真正开始“干活”赚钱了 [citation:6]。

冯·诺依曼 989

基于PCL的电力线点云提取与分割实现

本文基于PCL库实现电力线点云提取与分割,包含6个核心处理阶段:文件读取与结果文件夹创建、高程滤波分割候选点云、欧式聚类去噪、电力线分段提取、球形邻域搜索补全点云、最终分割与可视化保存。通过PCA计算点云线性特征(阈值0.91)筛选电力线点,采用欧式聚类(容忍度3.0)去除噪点,并针对不同规模聚类差异化设置球形搜索半径(4.0/6.0)补全点云。最终通过欧式聚类分割并可视化带颜色点云。算法对高程滤波阈值、聚类参数等具有敏感性,需根据点云特性调整优化。

weixin_45196569的博客 192

使用LangChain加载和处理Facebook Chat数据:实用指南

本文介绍了如何使用LangChain的加载和处理Facebook Chat数据,并提供了一些基本的分析示例。这只是处理对话数据的开始,您可以基于此进行更复杂的NLP任务,如主题建模、对话生成等。LangChain官方文档Python自然语言处理实战(书籍)Coursera上的NLP专项课程。

ppoojjj的博客 590

全新RT-DETR 有效涨点改进目录 | 包含各种卷积、主干改进、各种注意力机制、Neck特征融合改进、损失函数、AIFI创新改进、独家创新、小目标检测、特殊场景检测等最全大论文及小论文必备创新改进点

《全新最全RT-DETR涨点改进专栏》提供500+种创新改进方案,涵盖卷积、注意力机制、主干网络等模块优化,适用于PCB检测、工业缺陷检测等场景。专栏包含顶会论文改进点、数据集增强方法、热力图可视化等实用功能,帮助科研人员快速提升模型性能。提供完整环境配置指南(Python3.10+Pytorch2.5.1)和训练教程,支持不同版本RT-DETR模型。定期更新涨点策略,配套QQ答疑群免费指导,适合从入门到发论文全流程需求,特别推荐给目标检测领域的研究生和工程师。

Ai缝合怪、助力小伙伴高效发论文 3398

React-Facebook完全指南:如何用React组件轻松集成Facebook社交功能

想要在React应用中快速集成Facebook社交功能吗?react-facebook组件库是你的终极解决方案!这个强大的React组件库让Facebook登录、分享、点赞、评论等功能变得前所未有的简单。无需繁琐的Facebook SDK配置,只需几行代码就能实现完整的社交功能集成。无论你是新手开发者还是经验丰富的工程师,react-facebook都能帮助你快速构建现代化的社交应用体验。 ##

gitblog_01102的博客 867

华为od 面试八股文_C语言_02_含答案

华为od 面试八股文_C语言_02_含答案

MISAYAONE的博客 2229

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Facebook如何使用Haskell处理垃圾邮件

Facebook使用一个名为Sigma的系统打击垃圾邮件、恶意软件及其它恶意行为。该系统的任务是主动发现这些行为,并自动删除检测到的不良内容,避免它们在用户的动态消息中显示。最近,他们完成了为期两年的Sigma重新设计工作,用Haskell取代了仅在Facebook内部使用的FXL语言。现在,基于Haskell的Sigma系统已经应用于生产环境,每秒为100多万请求提供服务。对于像Sigma这样的...

weixin_33875564的博客 290

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Facebook-Messenger-Bot常见问题解决:从数据解析到模型训练的10个实用技巧

Facebook-Messenger-Bot是一个基于Seq2Seq模型构建的聊天机器人项目,能够通过训练模仿个人的聊天风格。本文将分享从数据解析到模型训练过程中最实用的10个问题解决技巧,帮助新手用户顺利搭建自己的个性化聊天机器人。 ## 1. 环境配置难题:快速安装必备依赖 安装过程中最常见的问题是依赖版本不兼容。根据项目要求,需确保安装**TensorFlow 1.0+**、NumPy、

gitblog_00241的博客 874

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Vue Facebook Login 开源项目教程

Vue Facebook Login 开源项目教程 1、项目介绍 vue-facebook-login 是一个基于 Vue.js 的开源项目,旨在为开发者提供一个简单易用的 Facebook 登录组件。该项目允许开发者轻松地将 Facebook 登录功能集成到他们的 Vue.js 应用程序中,而无需深入了解 Facebook 的 API 细节。 2、项目快速启动 安装 首先,通过 npm 或 ya...

gitblog_01020的博客 626

【知乎问答】为什么很多看起来不是很复杂的网站,比如 Facebook 需要大量顶尖高手来开发?

问题某知乎下的问题:为什么很多看起来不是很复杂的网站,比如 Facebook 需要大量顶尖高手来开发?答案因为他们仅仅是看起来不复杂……举个现实中的例子: 收银员干的工作不复杂吧,简单的收钱、找钱两个动作,然而就是这么简单的工作一旦在顾客多的情况下,也会变得十分复杂。现在可以类比下,Facebook的服务器就是收银员,而用户就是顾客。而访问Facebook的顾客可是成千万上亿的。如果要说的稍微深入

伊甸园 2753

先知模型 facebook_Facebook先知

先知模型 facebook 什么是先知? (What is Prophet?) “Prophet” is an open-sourced library available on R or Python which helps users analyze and forecast time-series values released in 2017. With developers’ great...

weixin_26746401的博客 1751

5分钟掌握无API密钥的Facebook数据抓取神器

在社交媒体分析、市场研究和数据驱动的决策中,获取Facebook公开数据是许多专业人士面临的核心挑战。传统方法需要复杂的API申请流程,而今天我将为你介绍一款革命性的Python工具——facebook-scraper,它能让你在5分钟内开始高效的Facebook数据抓取工作,完全无需API密钥! 这款开源Python爬虫库专为需要快速获取Facebook公开页面、群组和个人资料信息的数据分析师

gitblog_00739的博客 345

Facebook的API的一些说明

 Facebook平台介绍Facebook为开发者提供接入方法和数据的一个服务网站。我们已经制作了尽可能简单易懂的方法,还有所有相关的文档来帮助你了解更多。Facebook开发维客对每个在facebook平台上进行开发的人而言,这是一个很好的资源。接口(应用程序编程接口)Facebook的应用程序接口是用一种基于REST的接口(REST是 Representationa

伏龙的专栏 1万+

react-facebook高级技巧:自定义组件与多语言支持的实现方法

react-facebook是一个强大的React组件库,它简化了Facebook SDK的集成过程,提供了社交登录、分享和分析等功能,并且支持TypeScript和hooks。本文将详细介绍如何自定义组件以及实现多语言支持,帮助开发者更好地利用这个库。 ## 自定义Facebook登录组件 在实际项目中,默认的Facebook登录按钮可能无法满足设计需求。react-facebook提供了灵

gitblog_00014的博客 795

React Native FBSDK Next实战:Facebook Graph API的10个高级用法

React Native FBSDK Next是一个功能强大的库,它允许开发者在React Native应用中无缝集成Facebook的各种功能,特别是Facebook Graph API。通过这个库,开发者可以轻松地与Facebook平台进行交互,获取用户数据、发布内容、管理社交关系等。本文将详细介绍Facebook Graph API的10个高级用法,帮助开发者充分利用React Native

gitblog_00143的博客 829

10分钟实现Facebook登录:Passport-Facebook全攻略(2025版)

你是否还在为Node.js应用集成Facebook登录而烦恼?OAuth流程复杂、权限配置混乱、用户数据解析繁琐?本文将带你从零开始,使用Passport-Facebook实现企业级Facebook登录功能,解决90%开发者会遇到的5大痛点,让社交登录集成效率提升300%。 读完本文你将掌握: - 3步完成Facebook OAuth应用配置 - Passport-Facebook核心API全解

gitblog_00279的博客 651
上一篇: Brython:使用Python 3进行Web客户端编程
下一篇: 在调试器里看百度云管家
923940cub
博客等级 码龄17年 121粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值