透明思考


Transparent Thoughts


  1. 机器学习项目如何管理:现状

    Atlassian今年4月的一篇博客提出,到2020年有87%的Jira用户认为他们的工作会被AI改变。具体到项目管理上,Atlassian的观点是,AI首先会作为项目管理助手进入我们的视野,然后透过数据拓展我们对项目的理解,更进一步还能通过主动猜测、倡导优秀实践、创造新的元数据层等方式弥补数据的缺失,最终对项目提出有益的建议。

    然而愿望是美好的现实是骨感的。还不要说在项目管理中使用机器学习,关于机器学习的项目应该怎么管理,业界似乎已经有很多不甚圆满的经历。例如一位创业者谈他们如何用自然语言处理技术推动销售。看起来他们尝试了各种不同的数据源、多种特征工程的方法、以及多种算法,接下来还有很多想要尝试的东西。从这个故事中我们看不到的是,他们给自己设置的目标是什么、目前的进展是什么、基于什么原则在指导每一次的尝试。简而言之,这位创业者的机器学习项目并没有任何有效的管理。

    另一个同样缺乏管理的机器学习项目就没有那么幸运。年薪百万的数据科学家被认为“没有给公司带来实际价值。高管们不知道他们具体做了什么,业务人员每周都给他们提出预测需求,却很少能在短时间得到回应”。与前面一个故事相比,这里的数据科学家需要在别人的管理之下开展工作,管理方法的欠缺无疑是矛盾累积和激化的原因之一。针对这个故事,作者提出了五点非常抽象的建议:1.从最简单的模型开始;2.探索更多问题;3.用全部的数据和特征训练模型;4.业务驱动模型;5.专注于自动化。我认为这几点并不能引导这家公司的管理者更有效地管理他们的数据科学家。

    这种缺乏管理方法的现象,一个重要的原因是典型的IT管理者对机器学习缺乏必要的了解(甚至更糟糕,有一些似是而非的半吊子的了解)。目前而论,咨询公司和商业/科技传媒在普及“必要的了解”方面并没有起到很好的作用。麦肯锡2015年的文章说,关于机器学习,企业领导层需要了解的问题还是“传统行业能通过机器学习获得什么新的洞察”这种高层面的,提出的建议也是“机器学习要分描述、预测、处方三步走”这样的宏观建议。当然麦记的建议历来是面向CxO级别的,不落到项目管理层面也很正常。

    HBR也在2015年讨论“每个管理者都需要了解的机器学习知识”,提出了一些很重要的点:不光需要大数据、还需要广泛的数据;机器学习只是做预测、不提供因果性;要区分信号与噪音(还提到了特征提取、规则化、交叉验证等具体技术);以及一些容易犯的错误(例如强行归因、不恰当的期望、迷信大数据量、对人的判断利用不足等)。但这篇文章的问题在于,它没有提供一套成型的工作方法。这些技术应该什么时候用,这些错误会在什么时候犯,文章没有提供出来,于是读者仍然被置于一个“等你该知道的时候你就知道了”的状态,很难对项目管理带来立竿见影的改变。

    2014年的一篇博客着重谈机器学习项目的布置,包括应该有哪些目录、数据怎么管理、代码怎么组织等非常具体的实践。作者提出了项目流程的几个原则:透明;可维护;模块化;可迁移;可复制;效率。关于项目的可复制性,作者也从工程实践角度提出了10条原则。在工程实践这个角度,这位作者给出的指导原则具有很好的可操作性。

    但是在项目管理角度,行业仍在继续探索。今年7月InfoQ的一篇文章讨论如何开发机器学习的MVP,作者总结了四个思考步骤:第一问题是否能转化成分类/回归的问题;第二目标是否是容易获取、客观无偏差的数据;第三是问题的预测目标,因果关系是什么;第四是这个问题是不是一个真的业务需求。这也是几个很重要的思考点,不足之处仍然是缺乏系统性,并且缺落地的方法指导。

    有一篇博客提出了很有意义的问题:机器学习项目为什么未实现敏捷开发?作者发现算法类项目流程漫长,并结合之前实践Scrum的经验,提出了一些可能可以优化的方面,尤其是在团队组织形式上,是否可以参考敏捷的全功能团队经验。作者并且提出了一个重要的问题:对算法模型的评估是否必须在线上进行?或者换个角度来问这个问题:如何降低线下模型评估的偏差程度?

    敏捷软件开发之所以成为一种被广泛接受的软件开发方法论,不仅仅是因为它有高阶的思想支撑和指导原则,更重要的是它有一系列非常具体、非常可落地的实践。这些实践对于一线工作者的意义在于:(1)知道什么时候该做什么事;(2)知道什么时候该看什么指标;(3)知道什么时候可能有什么风险。机器学习类的项目要真正普及,也会需要这么一套具体可落地的实践指导。


  2. 保持现状与有意为之的无知

    (本文同时发表于土逗公社

    1970年9月,萨尔瓦多·阿连德当选智利总统。智利人民用自己的选票,选择了他倡导的社会主义路线。执政之后,阿连德政府开始收购智利最重要的工业企业,将它们纳入国家控制。到1971年底,国家开发公司已经必须负责指导下属150多家企业,包括智利20家最大企业中的12家。国有经济的高速发展创造了一个笨重的、智利政府从未见过的怪兽,管理已经成为国有化进程的一个核心问题。为此,阿连德政府联系到了英国控制论学者斯塔福·比尔。比尔发现,控制论中关于反馈与掌控的思想能够指导开发一套新的科技系统来改善国有经济的管理,从车间直到国家开发公司办公室。这样一个系统将会搭建起实时信息交换的网络,管理者和政府官员将能够基于实时数据来做决策,并能够快速调整行动。这个系统,就是传奇的Cybersyn,距今半个世纪前出现在智利的大数据系统

    按照比尔的构想,这个基于他的“自由机器”和“可生存系统模型”理论构建起来的大数据系统,将能够兼顾国家经济整体方向的一致性与企业的自主性,并且充分调动一线工人参与企业管理体制的设计与执行。然而在Cybersyn系统实施的过程中,智利科技专家们的实践与政府的政治理念并不吻合。虽然阿连德坚持要系统鼓励工人参与管理,但工人在Cybersyn实施中扮演的角色实际上是被边缘化的。更多时候,技术官僚主义在基层车间压倒了意识形态。尽管收到明确的指示要与工人委员会协作,但工程师们经常并不这样做,而是带着优越感看待工人,或是完全忽视工人、只和管理者打交道。

    1973年9月,皮诺切特的军事政变推翻了智利社会主义政府,阿连德本人丧生于总统官邸。政变之后,军队中止了Cybersyn项目,团队的工作成果要么被抛弃、要么被破坏。在新的军政府和新自由主义“休克疗法”背景下,Cybersyn没有任何意义。然而客观地说,即使没有军事政变,Cybersyn是否就能如起初设计的成为对劳工赋权、鼓励工人参与管理、兼顾民主与集中的信息系统,比尔对此也并非没有怀疑。为何科技系统——甚至是那些原本为了革命的目标而建立的科技系统——常常倾向于维持社会与经济的现状,这是Cybersyn留下的值得反思的若干问题之一。

    1973年,比尔反复思考了Cybersyn遭遇的各种问题,包括项目团队在科技上花的心思多过组织变革、智利工人没能用Cybersyn来辅助生产组织和管理等,并把自己的思考写成了《现状》(Status Quo)一文。他在文中写道:

    对于马克思而言,资本是邪恶的敌人;对我们而言,资本仍然是邪恶的,然而敌人是保持现状

    比尔认为,科技的发展,尤其是通信与计算机领域的发展,使得资本主义已经发展出了新的生产形式与新的剥削关系。在这个新的关系中,不仅有资本家与劳动者的对立,受过高等教育的专业人士扮演了一个重要的角色。比尔从控制论的角度指出,官僚体系总是偏爱保持现状,而专业人士扮演的则往往是保持现状的力量、而非推动革命的力量。

    仍然以Cybersyn为例:尽管顶层设计把它视为一个“革命的装置”,但在科技团队内部,很多人认为应该把意识形态放在一边,专注于科技性的目标,例如提升政府监管经济的能力、解决经济的效率问题、消灭官僚主义。Cybersyn项目主管埃斯佩霍说,很多科技专家想要加入这个项目是因为它“充满智力挑战”,这些科技专家对于科技与政治之间的关系有着不同的解读,并非所有人都赞同阿连德的政治理念。这个团队得以持续“健康”运转的基础,也许就是——如埃斯佩霍所做的——搁置意识形态的目标,专注于科技的目标。于是,专业人士团队基于自身利益角度出发的“求生意志”,就成为了一种保持现状的动力。

    时隔四十多年以后,我们在今天的科技-社会的讨论中看到,这种来自专业人士角度的保持现状的动力变得更加强大,甚至时常被称为“科技本身的逻辑”(凯文·凯利还专门写了一本书来讨论“科技要什么”)。比尔在1970年代的反思让我们看到,这种“科技本身的逻辑”,经常是来自专业人士有意而为之的对意识形态、对社会问题的搁置。专业人士倾向于将自己的工作描述为纯粹科技的、“政治中立的”,使得自己不必接受“我的工作对社会有何影响”的追问。在快播案、魏则西案等一系列关于互联网伦理的讨论中,我们皆听到了这种纯粹科技论的辩解。我把这种“将自己的专业工作与社会/政治/伦理问题划清界限”的努力,称为“有意而为之的无知”(minded unmindedness)

    这种有意而为之的无知,部分出自科技本身的复杂性与抽象性。例如广为讨论的人工智能技术,无论是向读者推荐视频、还是在读者的搜索页面显示广告,从技术的角度都可以归约为一系列在高维矩阵上进行的线性代数运算(以及与之相关的特征工程、算法优化等工作)。这种高度的复杂性与抽象性,使得科技专业人士能够埋头于诸如“计算稀疏矩阵中向量间的欧氏距离”这样的纯技术问题,而毫无愧疚地无视技术的应用对社会产生何种影响,并且在面临来自人文社科领域的置疑时轻易地给自己构建起坚固的保护壳。

    然而问题并非只出在科技专业人士这一边。人文社科领域的专业人士同样有自己的有意而为之的无知,表现为对新技术的盲目恐惧,或者说是“将自己的专业工作与科技问题划清界限”。于是我们看到,来自人文社科领域的关于科技伦理的讨论经常流于表面,例如用科幻小说的方式讨论“强人工智能”,而缺乏对机器学习、神经网络等核心技术及其应用场景和局限性的基本了解。其结果是,来自人文社科领域对新科技的批评要么“脱靶”,要么在科技人士实用主义的反问“那你说该怎么办”面前黯然失语。像Cathy O’Neil这样能准确地指出科技系统中问题所在、能提出行之有效的解决方案、能持续量化监督科技公司改进的跨学科左翼人士,实在是太稀缺了。

    解决这个困境需要科技与人文社科两边专业人士的共同努力。科技的专业人士当然需要更多地了解社会的问题及其渊源、更多地反思自己工作与社会/政治/伦理问题之间的关系。另一方面,我在这里想强调的是,人文社科的专业人士应该打破自己对新技术的盲目恐惧,不能坐等科技专业人士的觉醒,他们需要立即开始学习编程和人工智能的基础,使自己掌握有效批判的武器。

    实际上这两项技术的门槛比很多人想象的要低得多。除了克服入门时的恐惧与不适,Python编程需要的理科知识基础约等于0——我曾经与同事半开玩笑地说,我们开发的软件只需要小学高年级数学水平,四则运算都用不全,主要是除法不怎么用。另一个学习编程的门槛是英语,然而人文社科领域的年轻学者大多具备相当良好的英语读写能力。自学一门编程语言(例如Python)这件事,我认为每位人文社科学者应该都能做到。

    人工智能技术所需的理科基础则更高一些:如果想要比较深入地了解其原理(而不止是使用几个工具),需要微积分和线性代数的基础知识。以高中水平的数学能力,在一学期时间里重新捡回这两门课应该是可以做到的。(听说一些高校的文科院系大一已经不上高数课,我认为这是一个错误的导向。)

    除了这一点数学基础以外,大部分数据处理和机器学习算法可以说是出人意料地简单。John Foreman的Data Smart一书教它的读者用Excel(是的,你没看错,就是你每天用的Excel)实现分类、推荐、预测等典型的机器学习算法,我认为这本书非常有助于破除笼罩在“人工智能”这个概念之上的神秘感。另外我也强烈推荐人文社科学者在学了一点Python基础之后尝试一下华盛顿大学的机器学习公开课。学完它的第一门课程,你就会发现,机器学习(乃至“人工智能”)其实是一件很简单、毫不神秘的事情——这一点,对岸的科技工作者们其实一直都知道。

    科技与人文社科的失联,会导致整个左翼运动陷入一种尴尬的境地:对于资本用以牟利并同时制造社会不公的科技工具,科技工作者看不到其社会危害所在,人文学者又无法提出有效的批判和改进方向。无形之中,双方对于对方专业领域的有意为之的无知,都在帮助保持当前科技-社会结构的现状。要打破这种现状,需要双方都开始努力了解对方的专业领域,包括——我今天特别想强调的——人文社科学者学一点编程和人工智能技术。


  3. 数据管理平台(DMP)综述

    在线广告技术生态

    ADN(广告网络)批量地运营媒体的广告位资源,按照人群或上下文标签售卖给需求方,并用竞价的方式决定流量分配。广告网络的结算以按点击付费(Cost per Click,CPC)的方式为主。面向多个ADN或媒体按人群一站式采买广告并优化投入产出比的需求方产品叫交易终端(Trading Desk,TD)。

    在ADN中,核心的竞价逻辑是封闭的,不能满足需求方越来越明确的利益要求,于是市场上产生了大量聚合各媒体剩余流量并采用实时竞价方式为他们变现的产品形态——广告交易平台(AD Exchange,ADX)。

    在ADX上通过实时竞价的方式,按照定制化人群标签购买广告,这样的产品就是需求方平台(Demand Side Platform,DSP)。对应的管理媒体广告位的产品就是供给方平台(Supply Side Platform,SSP)。

    DSP会向DMP(数据管理平台)寻求数据支持,达到更精准的投放。

    在线广告业务中数据的价值

    对精准广告业务产生直接贡献的数据有以下几类:

    1. 用户标识。对广告而言,如何确定哪些行为来自于同一个用户是非常关键的问题。
    2. 用户行为。转化、预转化、搜索广告点击、展示广告点击、搜索点击、搜索、分享、页面浏览、广告浏览等在线行为是可以被广泛采集并且对于受众定向或广告决策有明显作用。这些行为又可以分为决策行为(转化、预转化)、主动行为(广告点击、搜索、搜索点击)、半主动行为(分享、网页浏览)、被动行为(广告浏览)。
    3. 人口属性。一般来说只有与用户实名身份绑定的服务可以得到此信息,也可以利用网络行为数据进行人口属性标签的预测,但准确程度有限,而且仍然需要标定的数据用于训练。
    4. 地理位置。地理位置信息随能获得的精度不同,其用途也有相当大的差异。
    5. 社交关系。社交关系可用于用户兴趣的平滑。

    数据管理平台的功能

    DMP日渐火爆源于广告主对投放效果的更高追求以及对营销浪费更低的容忍度,DMP即是为解决这些问题而生。广告主希望更精准的对目标人群进行广告投放,如果投放的对象对某些广告不感兴趣,却反复被广告轰炸只会适得其反。如果企业能够在投放广告或其他营销手段前就能对受众进行具体、精准的识别,广告投放的效果会因此增强。

    数据的来源分为三类:

    • 第一方数据:广告主自有用户数据,包括网站/APP监测数据、CRM数据、电商交易数据等。
    • 第二方数据:广告商在广告投放过程中积累的业务数据,如DSP平台业务中积累的受众浏览广告、点击广告等相关数据。
    • 第三方数据:非直接合作方拥有的数据,如运营商数据等。

    第三方数据中,BAT的数据只能应用于各自的生态圈,实际产生效果并不容易;运营商的数据不一定总能通过商务关系得到,又有各地军阀割据的问题、有流量劫持等争议问题,而且越来越多网站和APP采用加密,运营商看不到了;垂直领域的数据相对比较细和专,质量高。

    DMP有下面几个核心的产品功能:

    1. 它可以为网站(可以是媒体也可以是广告主网站)提供受众定向功能,并将得到的用户标签应用于网站业务。
    2. 如果媒体网站授权,DMP可以提供接口对加工出来的用户标签进行变现,并与网站分成。
    3. 广告主网站可以通过DMP广告采买渠道进行更方便的数据对接。

    可以从以下几个角度对DMP进行评估:

    1. 数据来源。有多少优质的数据源可以利用。在中国能使用BAT的数据是一个重要因素,腾讯广点通和阿里达摩盘在这方面有优势。
    2. 数据处理。进入DMP的数据(包括结构化的和非结构化的)能多灵活地处理。
    3. ID联结。DMP能多准确地联结来自不同数据源的用户信息。
    4. 受众区分。对受众分群的多样性和准确性。受众定向标签可以分为人口学标签、上下文标签、行业定制标签三类。
    5. 数据建模。通过对数据的分析提供look-alike或其他更深度的洞察和投放指导。
    6. 与程序化广告平台的整合度。

    这里有一个国外DMP产品的排名。Oracle收购的BlueKai排名第一。SalesForce收购的Krux紧随其后。

    针对BAT各自DMP的功能,这里有一个分析对比

    为何企业要自建DMP

    自建程序化广告系统的主要目的是增加透明度、控制力和效率:

    • 透明度:企业希望清楚知道广告投放的效果,不想被欺诈。据ANA的统计,可能有多达37%的在线广告点击是虚假的。
    • 控制力:企业拥有越来越多的第一方数据,希望有更强的数据掌控,尤其不希望自己的第一方数据被广告平台用来帮助竞争对手投放(以增强广告平台DMP能力的形式)。
    • 效率:企业希望基于DMP能做更复杂的分析、更多的实验、与市场营销更紧密配合。

    Target选择自建DMP,分析师认为除了以上理由之外,Target还希望充分利用自己已有的客源流量,把自己变成数字化媒体。

    自建DMP需要有以下功能模块:

    • 数据的获取入口
    • 数据的清洗,整合
    • 标签的计算,挖掘
    • 打标签及标签的展示
    • 用户分群

    前三块是DMP的基础,虽然看不见,但是决定了一个DMP的质量。后两块是比较偏产品前端的内容,DMP是否简单易用,是否友好易懂就是这部分体现出来的。

    参考资料


  4. 智能技术的伦理风险:研究框架

    前一篇文章中我们已经提到,当下常见的关于智能技术伦理危害与风险的讨论总体上强调人工智能对人类整体的影响,并不凸显其对当前社会不同人群造成不同影响的情况,并且在分析这些风险时往往聚焦于技术层面,而并未将社会和政治层面的因素纳入考虑。从这个角度出发的分析难免失于片面,无法充分认识智能技术的潜在风险。由于缺乏一个全面的、结合科技与人文视角的研究框架,使得对于这一问题的研究普遍零散而不成体系,且容易陷入“机器 vs. 人类”的未来学视角。

    例如在分析智能技术对就业造成的影响时,以Kevin Kelly为代表的未来学家认为人工智能取代人类工作是必然趋势,并乐观地相信“被失业”的人群能找到更有价值的工作。另一些研究者则认为应对大规模结构性失业的关键是社会保障,例如在就业之外提供全民最低收入保障。然而更早的计算机伦理学、乃至科技伦理学研究已经指出,就业对于人而言不仅是提供生活保障的方式。正如维纳在70多年前就已经指出的,人需要发挥创造力和灵活性,人需要做决策、需要感受到自己为社会与他人做出的贡献,而工作是满足这些需求、使人获得尊严与成就感的重要途径。如果只看到失业对收入的影响,忽视智能技术在其他方面对人的影响,便无法全面理解智能技术的潜在风险。

    Peter Cullen提出了一个用于讨论伦理问题的框架。在这个框架中,抽象的“伦理”被表述为“价值观”——即个人与群体定义人生意义或集体目标所基于的核心信念与理想,随后价值观再以“原则”的形式具体表述出来,从原则引申出“政策”或“指导方针”,最后通过规则、流程、评估、培训、工具等方式得以“实现”。

    早在1950年代,维纳就已经指出,在与自动化机器并存和协作这个上下文中,需要关注人的一些核心价值,例如生命、健康、快乐、安全、资源、机会、知识等。基于对这些价值观的重视,他提出了计算机伦理的4条基本原则:

    • 自由原则:人应该有选择各种可能性的自由。
    • 平等原则:不同的人群应该享有同样的权利。
    • 博爱原则:人与人之间的善良愿望应该得到鼓励。
    • 最小侵犯自由原则:团体对个人自由的侵犯应当限制在最低程度。

    基于类似于这些被普遍认同的价值观和基本原则,在智能技术的上下文里,不同的研究者提出了大致相似的一些指导原则。例如IBM在“大数据与分析的伦理要求”中指出,技术本身可能是技术中立的,但技术的使用者不仅应该考虑技术的可能性、组织的诉求和法律的约束,还应该考虑一系列伦理的指导原则,包括适应社会环境、给人们选择的权利、使用合理的数据深度和广度、适当的数据和分析结果所有权、公正性、访问权、可追责等。再例如,King和Richards提出了几条大数据伦理规范

    1. 隐私应该是信息规则的基础
    2. 分享出来的私人信息应该仍然保密
    3. 大数据需要透明性
    4. 大数据可能导致身份泄露

    针对“隐私”这个受到广泛关注的话题,Rijmenam提出了几条大数据隐私指导原则:企业应该更主动地提供透明度;从系统设计之初就考虑简明性;为潜在的安全事故做好准备;在所有环节全面关注数据隐私。英国商业伦理研究所(IBE)则提出了6个与隐私相关的问题,包括数据如何使用、如何采集个人数据、如何评估风险、如何保护数据等。

    除了隐私之外,另一个重要的问题是智能技术的可追责性(accountability)。正如Harpin所说,在社会越来越多地由算法运转的同时,机器学习等智能技术使支撑社会运转的算法变得越来越不透明MIT的两位研究者指出,智能算法可能在人无法理解的情况下强化结构性歧视、拒绝为某些人群服务、甚至破坏民主制度的根基。因此他们提出了算法可追责性的五项指导原则:算法应该负责任、可解释、精确、可审查、公平。围绕着这五项指导原则,他们又提出了更加具体的实施策略,建议至少在系统设计、上线前和上线后分别进行一次评估,并列举了一些基本的评估问题。

    这种将“系统生命周期”作为一个维度纳入伦理框架的方式,在Etlinger这里得到了进一步发挥,形成了一个二维的大数据伦理框架:数据使用的伦理原则(例如有益于人群、推动进步、可持续、尊重、公平)构成一个坐标,数据的生命周期(例如数据采集、处理、分析、存储、治理、使用、交流)构成另一个维度,两个维度交织形成一个完善的伦理框架。

    伦理框架的落实仍然是一个难题。在层出不穷的新技术和新挑战面前,传统的机构审查委员会(IRB)明显缺乏大数据时代伦理判断的能力。与此同时,又有像ORCAA这样专门从事算法审计的企业。“数据与社会”研究机构的建议是,应对智能技术带来的伦理问题,需要政策、教学和业界网络共同努力。在“平等、可追责和透明的机器学习”研讨会上,研究者指出:平等和偏见等问题不是抽象的概念,而是与实际的人和人群相关的,因此智能技术的伦理问题必须由科技专家与人文学者共同研究,包括有意图地设计实验,才能深入理解问题并找到解决办法。


  5. 智能技术的伦理风险

    (旧文一篇,已发表于土逗公社

    人工智能的风险已经不再是一个新话题。在过去几年中,很多研究者提及了人工智能(以及与之紧密相关的技术,尤其是机器学习和大数据技术)可能带来的危害与风险。值得注意的现象是:在公众话语空间中流行的关于智能技术伦理危害与风险的讨论,大多将“人类”整体视为潜在的被损害的对象。大量的叙事被构建为“机器 vs. 人类”的形式。而关于智能技术如何被当前社会的权力结构主导、并反过来强化当前社会的权力结构、加深对弱势边缘群体的压迫,这一方面的讨论数量较少,且较缺乏系统性。本文将介绍一些关于智能技术伦理危害与风险的讨论,并着重介绍一些智能技术强化社会与经济不公正的案例。

    一些关于智能技术伦理危害与风险的讨论已经进入了流行文化空间,吸引了大众的兴趣。这类讨论通常呈现未来学的形式,试图推测人工智能技术成熟、尤其是具备了自我完善的能力之后可能的未来图景。如超级智能人工智能毁灭人类技术奇点等讨论吸引了大众对于智能技术的伦理问题的广泛关注。

    比起这些事关人类存亡、略带科幻感的宏大叙事,另一些由智能技术带来的伦理危害与风险正在更加现实地发生。例如智能技术对就业的影响,是一个经常被提及的主题。Kevin Kelly认为,机器在工作中对人的取代是一个不可逆的过程,有一些工作暂时只有人类能做或做得比机器更好,但机器终将胜过人类,绝大多数人类在几十年后将不再需要从事生产工作。麦肯锡的一个研究则更具体地列出了各种职业被机器取代的可能性,其中生产线工作、准备食物、包装物品等“可预测的物理工作”是最容易被机器取代的。

    除了造成大面积、结构性失业,对人工智能的常见担忧还包括赛博空间和物理空间的战争:控制了大量资源甚至自动化武器的人工智能是否会攻击它们本不应该攻击的对象?这种危险甚至不必以战争的形式出现:人工智能的错误行为、甚至只是不恰当的优化,考虑到它们已经在社会经济中扮演如此重要的角色,是否会造成极端恶劣的结果?

    可以注意到,以上几类常见的关于智能技术伦理危害与风险的讨论总体上强调人工智能对人类整体的影响,并不凸显其对当前社会不同人群造成不同影响的情况。同样的趋势也出现在对智能技术的风险进行的分析当中。众多这类分析聚焦于技术层面,而并未将社会和政治层面的因素纳入考虑。例如一位斯坦福大学的研究者认为,通过机器学习尤其是深度学习得到的统计学模型具有以下特征,使得它们存有安全隐患:

    • 不透明:很难、甚至根本无法看懂其中的逻辑;
    • 整体不可分:无法通过局部分拆理解输入输出之间的关系;
    • 脆弱:输入的微小变化可能引起输出的重大且无法预测的变化;
    • 不被充分理解。

    作为对比,《Weapons of Math Destruction》一书的作者Cathy O’Neil也提到了广泛影响人们日常工作与生活的众多智能算法工具的几个危险的特征

    1. 它们是秘密的,经常是某家公司的商业秘密;
    2. 它们是不透明的,被它们影响的人群不了解这些算法如何运行;
    3. 它们应用的范围很广;
    4. 它们对“成功”的定义值得置疑,被它们影响的人们未必赞同
    5. 它们制造了有害的反馈环。

    相比前一组特征,O’Neil识别的这一组特征具有一个值得注意的要点:她在其中提及了特定的人群。尤其是在第4点中,O’Neil指出了一个极其重要、但绝非总是明显的问题:智能技术对人的影响是有区别的,同一个技术可能让一部分人受益、同时让另一部分人受损。她举了这样一个例子:2010年在伊利诺伊州开始实施的教师绩效评估算法引发了芝加哥教师的广泛反对乃至游行抗议。正如Linnet Taylor不无洞见地指出的,在进行伦理评估时,人们倾向于抽象地谈论智能技术可能造成的伤害,而具体地谈论它带来的收益,于是实在的收益总能压倒模糊未知的伤害,从而使项目通过评估。通过将社会和政治因素纳入讨论范围,O’Neil提出的对具体人群的关注给了我们一个重要的视角,来重新审视智能技术可能带来的损害和风险。

    透过这个视角,我们首先可以注意到,智能技术对劳动力市场的影响并非均质。正如Erik Brynjolfsson和Andrew McAfee在《与机器赛跑》一书中指出的,教育程度较低、薪酬较低的劳动者更易被智能技术取代,同时也是这部分劳动者更难以获得新的职业技能,从而加重他们在结构性失业中受到的损害。正如Paul Krugman一针见血地指出的,全能且高效的工作机器人(workbot)的出现未必会让世界变得美好,因为没有能力拥有机器人的那些人的处境将非常悲惨。尽管这方面的研究还很少,但一些现有的研究显示:在高度自动化、智能化的工作环境下,教育和技能水平较低的劳动者正在面临劳动环境恶化、劳动强度增大、收入降低、缺乏劳动和社会保障等挑战。此种现象在“分享经济”形态中普遍可见。在一些极端的情况下,劳动者被异化成“数字机器上的幽灵”和“生产线上的奴隶”。

    实际上,智能技术可能正在加深对社会弱势群体的偏见和歧视。正如Wendy Chun所说,“机器学习就像偏见的洗钱”。通过机器学习,偏见和歧视被包装成模型和算法,使不公正变得更加隐秘而影响深远。职场社交网站LinkedIn的搜索引擎更青睐男性求职者,Google的广告平台Adsense存在种族偏见,饱受争议的“预测性执法”(predictive policing)对非裔美国人和穆斯林形成结构性歧视,低收入人群会因为智能技术更难从贫困中逃脱。性别、种族、宗教信仰、收入……现实中的各种偏见与歧视,似乎都在智能技术中找到了落脚点。

    智能技术不仅被用于实施对弱势群体的损害、歧视和隔离,而且被用于控制大众情绪。通过操控用户从新闻订阅渠道看到的信息,Facebook成功地调节了用户发帖的情绪,从而证明情绪可以在大量在线用户之间传染。一份曝光的材料显示,JTRIG(联合威胁研究智能小组,隶属于英国情报和国家安全机关政府通信总部)已经在通过Youtube、Facebook、Twitter、博客、论坛、电子邮件、短信、自建网站等渠道操纵大众情绪,从而消除“犯罪、安全和国防威胁”。当用于政治领域,正如Cathy O’Neil指出的,智能技术可以诱导选民做出片面的判断;当用于商业领域,邱林川则指出,智能技术可以向消费者灌输消费理念,使他们成为对不断更新换代的消费品上瘾的“被制造的奴隶”(manufactured slave)。

    早在1980年代中期,研究者们就围绕“计算机伦理是否具有独特性”这一问题展开了讨论。Johnson认为,计算机伦理只是把标准的道德问题以新形式呈现,逼迫我们在新的领域中延续旧的道德规范,它本身不是一个独特的新题目。而Moor则认为,计算机会大幅度转化/强化现有的伦理问题,并且造成过去未曾出现过的新的伦理问题,因此计算机伦理本身就是一个独特的新题目。这两种观点对于我们全面认识智能技术的伦理问题有着重要的启发意义。我们既需要充分了解智能技术的独特性、及其对伦理问题带来的独特影响,又必须认清新技术背后潜藏的旧有的冲突、斗争和伦理准则,这样才能准确把握智能技术的伦理方向,使其向着对广大民众有益的方向发展。


  6. 数字化转型与平台战略

    数字化浪潮对传统行业的冲击已经被越来越多的企业领导者所感知。据《哈佛商业评论》的调查,半数以上的企业高管认为自己的业务将在12个月内受到数字化浪潮较大程度的冲击,其中媒体、通信、消费者金融服务、零售、科技、保险、消费者产品、专业服务和教育等10个行业受到的影响最大。

    数字化对企业的要求

    数字化到底对企业提出了什么要求?可以从一个真实的案例中看出端倪。一家全球知名的快消品企业,在京东618购物节之前花了大量的成本和精力设计促销计划,细到优惠力度、广告Banner等每个具体环节都经过多次论证。市场部从领导到一线员工都如临大敌,力求方案精益求精。对待一次重要的促销机会,当然需要重视,但是从上到下如此关注、投入如此多的精力,这是为什么?原来这家企业对市场数据的处理能力还停留在相当初级的阶段,电商平台提供的数据还在用Excel归集处理。在这种数据处理能力的支撑下,市场部的促销举措至少需要两周时间才能看到数据反馈。也就是说,一旦促销举措设计失误,在购物节的时间窗口内就没有再次调整的机会。

    这家公司的情况让我联想起几年前看过的一组数据:Etsy在2012年平均每天能往生产系统部署超过30次;Amazon在工作日平均每11.6秒就有一次生产系统部署发生,峰值时一小时内部署超过1000次。当这家快消品企业响应一次变化、进行一次实验的周期需要以两周计,领先的互联网企业几年前就已经能够以小时、分钟为单位响应变化和开展实验。这种快速响应变化的能力,是数字化企业的核心竞争力。

    为了打造快速响应的能力,海尔把传统的层级管理体制改造成了三级的自主经营体机制。海尔将7万名员工自我组织成了2000多个自主经营体,最大的自主经营体数百人,最小的只有7人,如果一个员工在海尔内部找不到一个自营体能够接受他,海尔就会和他解除劳动合同。海尔的首席执行官张瑞敏说:“每个小微(团队)都要变成一个个的小团体,所有相关人员都在这里头,负责开发某一个地方的市场,或某一个地区的市场。”直接来自顾客和市场的信息,就像鲶鱼一样激活了小团队的响应能力。

    芬兰的游戏公司Supercell也倡导以小团队模式进行游戏开发,一般来说两个员工、或者5个员工、最多不超过7个员工组成独立的开发团队,称之为Cell(细胞),这也是公司名字Supercell(超级细胞)的由来。团队自己决定做什么样的产品,然后最快的时间推出产品的公测版,看看游戏是否受用户欢迎。如果用户不欢迎,迅速放弃这个产品,再进行新的尝试,期间几乎没有管理角色的介入。这家公司在2015年手机游戏排行Top10中曾占据榜单大半江山,2016年腾讯以86亿美元收购了员工数不到200人的Supercell公司84.3%的股份。

    从海尔、Supercell以及其他很多小团队的成功经验中,我们看到直面市场与顾客的具有四大优势,使得他们能很好地应对数字化浪潮带来的对响应力的要求:

    1. 协作高效。小团队协同效率最高,能全力提供顾客所需,避免组织内耗。
    2. 目标清晰。小团队对战机(商机)的把握更加敏锐。
    3. 调整快捷。当情况发生变化或获得新信息,小团队能更快调整。
    4. 迅速扩展。一旦找准目标,小团队能全力投入,迅速扩大战果。

    小团队需要大平台

    然而,并非所有小团队都能天生地具备这四大优势。实际上,我们看到很多创业小团队并没有很强的感知和响应变化的能力。成都的一支小团队在2016年创办了“翘翘动感沙拉”品牌,针对有轻餐食及塑形需求的白领人士,一方面能够作为一道主食满足都市白领的午餐需求,另一方面为有塑形减脂需求的人士提供热量较低且健康的食物。翘翘沙拉斥资30多万装修厨房,邀请了国际五星级酒店主厨加盟,筹备用了近半年时间。上市后才发现产品定位与市场不符,4个月后就停止了经营。这支小团队规模虽小,却没能发挥出预期的响应力。

    再次放眼站在数字化潮流前端的企业,我们会发现:原来他们不止是倡导小团队模式,而且为小团队建立了一整套的支撑平台。在海尔的自主经营体结构中,有三个层次的自主经营体。其中一线经营体经营体直接面对顾客,为所负责的顾客群创造价值;二级经营体(或称平台经营体)则为一线经营体提供资源和专业的服务支持,包括人力资源管理、供应链、市场营销、质量体系、战略管理等,所以,平台经营体是一级经营体的资源平台、流程平台、专业化服务平台。平台的存在让一线经营体获得了响应力。

    阿里巴巴则是用共享服务体系支撑前端业务。今天的阿里巴巴已经将集团20多个核心业务中公共的、通用的业务以服务的形式沉淀到了共享业务事业部,整个集团的核心业务能力均建立在这样一套共享服务体系之上。共享服务体系从会员、商品、交易、支付四大中心开始建设,支撑1688、淘宝、聚划算、闲鱼及全集团超过2000个应用。共享服务体系强调的能力包括:服务分布的能力;数据分布的能力;数字化运营的能力;平台稳定的能力;平台开放的能力等。

    华为也在强调用大平台炮火支撑前线指战员。任正非在华为质量与流程IT管理部员工座谈会上说,华为内部IT要做到“能力模块化和微服务化,使能公司实现数字化转型和大平台下的精兵作战,在研发、销服、供应等业务领域要率先实现ROADS体验(实时、按需服务、在线、自助、社交化连接)”。

    透过对各种小团队的观察我们发现,独立自主、直面顾客的小团队,在具备组织灵活性的同时,也必定面对基础能力的局限。那些走在数字化潮流前端的企业,都是以平台形式为小团队提供了四大能力的支撑,才能发挥出小团队精准、灵活、高效的优势:

    1. 洞察顾客的能力。小团队需要透过多种数字化渠道获得对顾客的全面了解。
    2. 服务供给的能力。小团队需要迅速整合企业内部的资源和能力为顾客提供服务。
    3. 数据决策的能力。小团队需要随时捕获市场反馈,根据真实数据做决策。
    4. 实验创新的能力。小团队需要开展受控实验,通过实验检验创新假设。

    数字平台战略

    企业数字平台,是基于云计算“基础设施即服务”(IaaS)能力之上,为企业数字化战略提供能力支撑的一系列平台服务(PaaS),涵盖IT系统研发与运营全生命周期。企业数字平台为直面市场与顾客的精益团队提供顾客洞察、服务供给、数据决策、实验创新四大能力支撑,赋能团队快速创新和响应变化。而这四大能力的基础,是IT组织的精益研发能力和相应的基础设施。

    对众多成功的数字化企业的调研显示,这些企业有着一些引人注目的共性。他们逐步构建自己的数字平台,以此为基础激活企业核心资产。数字平台支撑小团队迅速响应市场和顾客的变化、高效地实验创新,给这些企业带来了显著的改变:

    • 提升IT效能,为产品和技术团队赋能,更快更好地为客户交付产品。
    • 构建行业生态,使得新业务、新产品、新服务能充分利用服务化后的企业核心能力和资源。
    • 促进业务创新,充分利用核心资产进行高效、快速的创新实验,保持企业竞争力。

    特别针对数字化小团队需要的四大能力,ThoughtWorks的数字平台战略提出了一个基础设施、四个平台的框架结构:

    1. 精益研发需要的交付基础设施
    2. 顾客触点平台全方位洞察顾客所需。
    3. 资源服务化平台快速供给数字化服务。
    4. 数据自服务平台支持基于数据的决策。
    5. 实验测量平台赋能受控创新实验。

    基于数字平台战略提出的框架,企业可以结合自身情况,逐步建设当前数字化进程所需的支撑平台,用平台助推企业的数字化战略。

    (更多关于数字平台战略的信息,请下载我们的《数字平台战略》白皮书)


  7. 企业IT的经营模式及其与企业架构师的关系

    企业IT的经营模式可以由两个维度来定义。第一个维度是标准化,第二个维度是整合。这两个维度划分出的四个象限,定义了四种不同的经营模式。不同的经营模式,有各自不同的聚焦重心,对企业架构师的关注点也有不同的要求。

    经营模式的第一个维度是标准化(standardization),即企业的各个业务单元之间在多大程度上复用业务流程与系统。高标准化程度能带来业务的效率与可预测性,但同时高标准化程度需要投入成本来达到,包括建设可复用的IT系统、替代业务上可以运作但不够标准的系统等。并且高标准化程度有可能局限各个业务单元的本地创新能力。

    经营模式的第二个维度是整合(integration),即各个业务单元之间在多大程度上复用数据。高整合度也能提高业务的效率,更重要的是能促成业务单元之间更有效的协作,增加整个组织的透明度与敏捷度。另一方面,提高整合度也需要成本,这种成本主要来自于对数据的语法(格式)和语义(术语含义、领域模型)在全组织范围达成一致。

    标准化和整合两个维度定义出了四种不同的经营模式。

    第一种经营模式是低标准度、低整合度的差异(Diversification)模式。在这种模式下,各个业务单元根据自己的需要各自建设IT系统,既不特别在意使用统一的、连贯的技术(例如有些系统用Java开发、另一些用PHP开发,而且没有明确的原则判断应该如何选择),也不特别在意数据的共享(例如不同的保险品牌和种类各自保存各自的顾客、保单等信息,彼此之间不共享)。

    在业务早期试错和快速扩张的阶段,差异模式使IT与业务诉求高度对齐,从而带来很好的响应能力:业务有什么需求,直接告诉IT;IT采用自己最擅长的技术手段快速实现。并且差异模式对于系统外包也是最简单的,外包商只要按时交付预先要求的功能,项目内部的运作不需要多操心。差异模式的缺点也很明显:它造成业务筒仓(silo),使技术能力和业务能力无法积累和复用。

    如果差异模式是企业有意识的选择,此时就不要过早地引入过多标准化的要求,以免拖慢业务试错的节奏。这时企业架构师应该关注项目运作方法论的标准化,例如推行一套轻量级、非侵入的项目流程和度量方法,对几个项目关键节点进行监控和治理。至于业务筒仓造成的重复开发、信息不整合等问题,暂时只需保持警惕即可。

    第二种经营模式是高标准度、低整合度的复制(Replication)模式。在这种模式下,降低IT成本成为IT治理的一个关键点,各业务单元在建设IT系统时需要共享技术平台、基础设施、技术架构等技术组件。例如澳洲某保险集团在2012年时建立了一套基于Maven和Spring Flow的前端应用模板,当时启动的大量在线渠道系统全部要求采用这套模板,并不断提取各个项目的技术经验回到这套模板中。

    复制模式最大的优势是系统建设成本的快速降低。仍然以这家保险集团为例,它的第一个在线渠道系统(房屋险)用了6个月时间开发上线,第二个在线渠道系统(车险)只用3个月。越到后来,新建一个在线渠道和将一个在线渠道复制到不同品牌所需的工作量就越少。而且对于运维团队而言,当所有在线渠道系统都采用同样的技术模板以后,运维的难度和工作量大大降低了。不过为了从技术与工具的标准化中受益,初期的架构选型与规范成本必不可少,并且需要持续不断地抽取项目中的最佳实践反哺到共享标准中。实际上,该保险集团的第一个在线渠道系统之所以需要较长的时间建设,其中一部分原因就是需要在该项目过程中建立起最初的技术模板。

    在复制模式下,企业架构师的主要关注点是标准和共享服务/工具的建设,包括初期的标准化努力和持续的抽取/重构过程。企业架构师需要建立起一个横跨各个系统、各个项目的技术社区网络,确保技术标准能在各个系统中落地,并且能了解各个系统的反馈与创新。

    第三种经营模式是低标准度、高整合度的协作(Coordination)模式。这种模式聚焦的目标是商业运营的成本和质量,IT的成本则不是最优先的考量。为了向顾客提供更高效、更优质的服务(以及创造潜在的交叉销售和向上销售机会),各业务单元之间有共享标准的业务流程与数据的要求,这是协作模式的原动力。

    协作模式的优势是不同业务单元之间的协同效应,给顾客提供更完善的服务。这家澳洲的保险集团从2011年启动了数据整合的行动,将原来的十多个后台核心保险系统整合成两个,并建立“顾客数据总线”来汇集顾客在若干保险品牌、种类、渠道、乃至银行等其他金融服务中留下的数据,建立对顾客的全面认知。当在线渠道领域以复制模式发展的同时,该保险集团的线下电销领域以协作模式优化其服务。

    协作模式的最大挑战是对齐各个系统对于数据的语法和语义,这背后涉及的不仅是IT,还有业务单元的权力之争。企业架构师在这种模式下应该关注的重心是企业核心应用和/或中台系统的建设:用什么样的中台功能承载各业务单元目前的业务需求、并为各业务单元创造价值,可能是促使业务数据整合的重要推手。例如阿里中台的建设过程中,淘宝和天猫之所以有动力把用户、商品、交易、店铺等核心数据归拢到共享中台,起初的契机是因为中台提供的团购能力能够立即为它们所用。

    第四种经营模式是高标准度、高整合度的统一(Unification)模式。在这种模式下,新系统会采用标准的技术模板、工具、方法,基于已有的数据和业务流程来构建,企业所追求的目标将是新业务的上市速度和战略敏捷度。

    当技术的标准化和业务的整合都达到很高水平,IT组织就有能力把现有的业务功能包装成即插即用的业务流程和能力模块,以微服务的形式提供给前端系统的使用者(包括企业外的第三方开发者)。此时企业IT已经成为行业领域的平台,前端应用的开发者能够快速开发新的应用、借助平台数据迅速触达用户、并立即获知顾客反馈。不过这种模式也并非没有风险:规划与建设这样一个平台需要的成本非常高,并且高度统一化的IT系统建设与运营流程潜在地有可能限制技术与业务创新的涌现,甚至使企业错失颠覆性创新的机遇。

    在统一模式下,企业架构师需要关注几个方面的问题。首先,他需要关注建设可复用的业务流程与能力组件;同时,他也需要关注建设覆盖软件全生命周期的开发-运维支撑体系;最后,他还要时刻留意技术与业务趋势的动向,考虑是否需要主动引入创新要素。


  8. 从海尔模式看数字化平台

    关于数字化、网络化转型的目标,海尔的定义是:企业无边界、管理无领导、供应链无尺度。企业无边界,意味着要让全球第一流的资源进入海尔,并能够持续动态优化。管理无领导,即打破科层制组织,让员工与用户零距离连接,拥有自主权,快速响应市场,最终实现“无为而治”的最高境界。供应链无尺度,要探索按需设计、按需制造和按需配送的体系,实现从大规模制造向大规模定制的转变。

    与这个定义相对应的运营体系是人单合一管理模式,其中包括了顾客价值、自主经营体、日清体系和人单酬四个基本要素,分别体现了业务经营的目标、组织形态、工作方式、度量方法。对顾客价值负责的自主经营体,抢单进人、按单获酬,日常工作讲究日清日高,那么自主经营体必然就会进化为与顾客、与市场、与业务价值高度对齐的“双创小微”。

    双创小微具有驱动力强、响应灵活的优势,潜在的劣势则有两个方面:第一是小微目标与公司目标缺乏对齐、彼此之间形不成协作效应;第二是基础能力缺失或重复建设,不能保障服务交付的高效与高质量。经过多年的探索,海尔发现三层结构既能体现足够的控制,又能够维持各个系统自身的活力。所以,在海尔的自主经营体结构中,有三个层次的自主经营体,分别是一级经营体、二级经营体和三级经营体。

    • 一级经营体,又称为一线经营体,这些经营体直接面对顾客,为所负责的顾客群创造价值。
    • 二级经营体,又称为平台经营体,它们为一线经营体提供资源和专业的服务支持,包括人力资源管理、供应链、市场营销、质量体系、战略管理等,所以,平台经营体是一级经营体的资源平台、流程平台、专业化服务平台。
    • 三级经营体,又称为战略经营体,主要负责制定战略方向,解决内部的协同和发现新的市场机会,同时为经营体配置资源,帮助一级经营体和平台经营体达成目标。

    这个结构与1960年代英国控制论学家斯塔福·比尔提出的“可生存系统模型”有异曲同工之处。如果将可生存系统模型简化为“肌肉(系统1)-神经(系统2/3)-脑(系统4/5)”的三级,它的落地形态就会类似于海尔的三级自主经营体。

    双创小微有三个基础:制度之基是用户体验交互制,人才之基是创业者,平台之基是云平台。云平台可以看作是二级经营体的IT替身:为了面向大量、变化频繁的小微(海尔8万多员工分为2千多个自主经营体),为了跨越企业边界支持企业内外的创业者,平台经营体不可能再靠人工提供服务,必须以云平台的形式提供小微需要的资源和服务。

    于是人单合一管理模式就演变为一个创业平台模式,它包括一个主题和两个功能。海尔人单合一创业平台模式的主题是“人和机会的匹配”,即创业者和创业机会的匹配。为了服务这个主题,它有两个主要功能:创业机会的识别和创造(Opportunity Creation)和创业机会的转化和实现(Opportunity Capture)。前者聚焦于创业者如何把市场上的潜在需求转化和升级为消费者的实际需求,从而识别、发现或者创造出新的商业机会;后者则强调通过一系列机制设计、制度安排、创新策略等将战略机会进行转化,从而为消费者创造价值。

    基于机会创造和机会捕捉这两个功能,海尔交互与协同平台是人单合一管理模式最为重要的信息支持平台。海尔交互与协同平台包括6大系统:以顾客为主的虚实交互平台、开放式创新平台、供应链信息平台;以员工为主的电子损益表、电子人单酬表、信息化日清平台。

    用《智慧转型》的框架来分析,这些系统帮助一线经营体获得4种能力,从而更好地为顾客创造价值:

    1. 准确掌握顾客和市场需要的能力
    2. 快速、高质量、低成本地交付顾客所需价值的能力
    3. 基于数据了解并改进工作状态的能力
    4. 通过受控实验快速验证创新的能力

    在创业平台模式下,顾客、企业和员工都被重新定义。顾客被重新定义为“资源”,员工被重新定义为“创客”,企业则被重新定义为数字平台。在海尔组织中只有平台主、小微主和小微成员三类角色,小微成为为用户负责的独立运营主体,只有为用户创造价值才能获得报酬,充分享有决策权、用人权和分配权。小微和平台之间是市场结算关系,平台的报酬源自小微。从这个角度,海尔的组织变革不是简单的扁平化、跨部门和跨层级通道的建立,或者新设部门。海尔组织变革核心是在一流资源和用户之间架构起快速配置资源的平台,释放平台的同边和跨边网络价值。


  9. 毕业设计中使用敏捷方法的尝试

    从CNKI收录的共计超过1000篇与敏捷软件开发相关的论文中,我找到了5篇关于在毕业设计中使用敏捷方法的文章,从一个侧面勾勒出高校教育工作者看待敏捷的一种视角。

    最早谈这个话题的是广东工业大学计算机学院的刘竹松、李振坤、王文彦三位作者。他们于2007年发表的《极限编程在计算机本科毕业设计中的应用》一文中认为,“将极限编程应用到计算机专业本科毕业设计中”的主要目的是“有助于学生形成团队合作的精神”,从而“促进学生学习的兴趣,加强学生综合应用各方面知识的能力,增强学生之间的相互交流、相互学习,提高毕业设计的整体效果”。从这个出发点,作者们认为“极限编程的核心是结对编程”,具体实施时谈的也是“合理设计结对”和“合理分配任务”。

    (这篇文章先后发表在《电脑知识与技术》和《计算机教育》两个期刊,可能是作者一稿多投。所以讨论“在毕业设计中使用敏捷方法”这一主题的文章其实只有4篇。)

    稍后,2007年10月,大理学院数学与计算机学院的杨健、张晓玲、周少云三位作者在《计算机时代》发表了《软件开发类毕业设计中敏捷软件技术的应用》一文。在这篇文章中,作者尝试解决“毕业设计质量低下,学生得不到真正锻炼”的问题,具体表现形式包括“软件各个功能模块无法有效整合”、“需求因为各种原因不断改变”、“软件的错误和缺陷不断涌现”等。与此前的刘文不同,杨文尝试回答的问题更为全面,包含了沟通、需求、质量等多个角度。因此在看待敏捷方法时,三位作者关注到了更为全面的多个敏捷原则,包括“增量式开发、可持续的开发速度、简单、结对编程、适应改变、个体激励和交流、反省”等。值得注意的是,这些概念在敏捷软件开发的理论框架中并不都是“原则”,有一些是具体的实践。并且杨文完全没有提及测试驱动开发、持续集成等技术性的实践,也没有提及用户故事、看板等需求管理和迭代管理的实践。似乎三位作者的关注点主要还是在团队内部的交流和协作,对于团队对外的呈现(需求的获取和管理、项目进度、软件质量)的考虑较少。

    第三篇文章是石家庄外经贸职业学院的马静媛和河北交通职业技术学院的薛惠于2009年发表于《电脑知识与技术》的《极限编程在高职计算机专业毕业设计中的应用》。与刘文相似,这篇文章想要达到的目标也是“加强学生综合应用各方面知识的能力,挖掘学生的学习潜力,并且培养学生之间的合作意识,提高毕业设计的整体水平”,重心仍然是在团队的内部与沟通协作上。与刘文和杨文相比,马文明确指出了极限编程的12个最佳实践,并着重讨论其中的简单设计、结对编程和集体代码所有制三个实践。另外,马文提出了对测试驱动开发实践的要求:“编码之前必须先写好单元测试代码”、“代码完成后用编码前编写的测试用例进行单元测试”、“代码和测试用例一起存入代码库”。马文没有提及如何划分用户故事和开发任务,也没有提及持续集成,从文中无法判断,学生在实际开展测试驱动开发时是否遇到任务过大、失败的测试被荒废等问题。

    第四篇文章是湖南工业大学计算机与通信学院的曾志浩和肖小克于2012年发表于《计算机教育》的《以敏捷开发和极限编程为指导的软件工程毕业设计》。曾文与前三篇文章有一个显著的区别:这篇文章的关注重心不在内部的沟通、协作和学生能力培养,更多地关注毕业设计的进度和质量这两个对外指标。以此为出发点,曾文提出了一套“以AD和XP为指导的毕业设计过程”,包括项目的组织方式、管理方式和考核方式,并给出了具体的“典型过程及相关支撑工具”。在管理侧,曾文提出“贯穿整个毕业设计过程,以各个阶段时间点为标志,要求学生以增量的方式来完善项目开发”,并在考核时注重代码功能而非文档、交叉检查结对学生的编码工作量、要求学生就系统的多个可运行版本进行演示等,把敏捷实践与毕业设计考核方式相结合。在工具侧,曾文仅推荐了测试管理工具Mercury Quality Center和持续集成工具Jenkins,并未推荐具体的测试工具。这可能是为了顾及建议的通用性,但也给具体项目开展时自动化测试和测试驱动开发的落地留下了一个问号。

    综观这四篇文章,我们可以勾勒出敏捷方法在中国高校计算机教育领域的历程。从早期的刘文以偏概全地看到一个特立独行的实践(结对编程)、杨文对敏捷理论的解读不清晰不准确,到马文能够准确描述极限编程的实践、并有意识地选择自己需要的实践,再到曾文从组织、管理、考核等角度全方位运用并辅以工具支撑,我们能看到中国高校计算机专业指导老师逐步深化对敏捷理解的过程。另一方面,从刘文直到曾文,对于测试驱动开发和重构的描述是语焉不详的,关于持续集成的具体实践和具体挑战的论述是缺位的,由此不难想象,在实际的毕业设计项目中,这些技术性的实践很可能并没有得到有效实施,于是敏捷会更多地退化为一种鼓励沟通、鼓励协作的团队运作方式——这与前三篇文章的诉求相一致,而曾文也没能提供技术性支撑工具(尤其是Jenkins)在实施中的真实情况。这种“重沟通轻技术”的敏捷采纳方式,恰是敏捷在整个中国IT业的境遇缩影。


  10. 敏捷在中文期刊中的投影

    在中国推广敏捷软件开发方法十五年之后,我很想回头去看这段历史的全景。今天我用知网做了一些检索,看到了一些有趣的数据。

    我在所有期刊中检索主题中包含“敏捷”和“软件”的文章。其他的关键词检索会得出略有不同的结果。如果只用“敏捷”作为关键词,会得到13258条结果,但其中绝大多数与我想要谈论的软件开发方法无关。这是“敏捷”这个译名词的宿命:它是一个普遍被认可的、带有褒义的形容词,使用这个词让听众更容易接纳这些新千年以后发展起来的新方法学。但与此同时,这个译名也让听众产生更多的误解:很多人会以自己的想法去期望这些新方法学,而不去深究它们的内涵。

    我尝试的另一个检索条件是把文献类别限定在“计算机软件及计算机应用”,并检索主题中包含“敏捷”、且不包含“制造”的文章。排除“制造”的原因是“敏捷制造”也是一个相当热门、且与计算机技术很有关系的领域。这个检索的结果从统计上看与前一个相去不远。以下我主要讨论第一个检索的结果。从相关关键词来看,这个结果是比较准确的。

    首先,令我略有些惊讶且失望:检索到的文章只有972篇。作为对比,“云计算”检索到的文章有10880篇,“软件工程”有9890篇,“SOA”也有3992篇。回顾这十五年,不论在IT技术领域还是软件工程领域,敏捷仍然是一个非常小众的话题。

    从时间趋势来看,2001年及以前有一些涉及“敏捷”和“软件”主题的文章,虽然并不与现在意义上的“敏捷软件开发”直接关联,但在理念上有一定相通之处。除了敏捷制造、敏捷物流等领域的文章之外,向华和邹平的文章赵捧未和窦永香的文章段永强、张申生、高国军的文章都提及了“基于对象的软件代理”概念,这可能是“前敏捷时代”一个值得探寻的线索。

    “敏捷软件开发”这个名词的出现是在2001年,并于2002年正式进入了中文期刊的话语空间,从时间轴上可以清晰地看出这个趋势。从统计数据上看,敏捷的潮流在2007年达到高峰,从2011年开始有一次显著的下滑,随后又逐渐回暖。这里面有一个异常因素:《程序员》杂志2010年以后的数据没有被知网收录。但即使排除这个因素,大趋势估计相去不远。某种程度上,这个曲线和Gartner的“技术成熟度曲线”(或者叫吹牛逼曲线)有某种暗合之处。

    然后——我不知道该高兴还是悲伤——《程序员》杂志无疑地在这场潮流中扮演了领袖角色。在所有检索到的文章中,《程序员》发表的超过20%,与其他任何报刊杂志都不在同一个数量级上。排名第二的《电脑知识与技术》在十五年中发表了共计23篇相关文章,我觉得这就基本上可以解读为“毫不关心”。《程序员》在2002年3月的《极限编程》专题,经确认,的确是中国期刊中最早介绍敏捷方法的一组文章。(实际上,《程序员》2001年12期的《代码重构》专题还略早于此,但由于刊号变迁的缘故,知网没有正确收录《程序员》2001年的内容,而是收录了之前使用该刊号的《Internet信息世界》的内容。)最早引介敏捷方法,并在之后的几年中贡献了整个期刊领域最多的篇幅。我们可以无疑地确认,《程序员》是敏捷方法在中国期刊领域最重要的——并且也是唯一的——支持者。这一数据,从一个侧面映射出敏捷在中国传奇而又尴尬的境遇。