你有多久没改过自己每天在用的软件了?不是换皮肤、调字号那种改,是真正按自己的习惯重新捏一个工作流。多数人的答案是:改不了。想加个字段要等排期,想挪个按钮得看开发心情。有人把这件事拿出来认真讨论,还给这种状态起了个名字——可塑性软件。
讨论的起点很朴素:我们本来就擅长改造自己的环境。做吉他的人会把锯子、锤子、凿子、锉刀按自己的手感摆好,缺什么就现做一个——一块木头当支撑,一把钳子磨成合适的形状。家里做饭的人也一样,几年下来攒出顺手的刀、砧板和锅,天花板装挂钩,架子挪来挪去,为的是让工作日的一顿晚饭或者周末的一场烧烤更顺。
这些动作不需要谁批准。贴张便利贴在墙上、重新摆一下抽屉、挪一件家具,立刻就能做。大一点的改造,比如搭个工作间、翻新厨房,费时费力,但也能做;自己不会,还能找本地的手艺人帮忙。物理世界之所以能这样,是因为它是可塑的。
被锁死的数字空间
问题在于,我们越来越多的时间待在由代码而不是原子构成的环境里。跨大洲即时协作、瞬间搜遍上千个文件,这些能力确实拿到了。但另一样东西在丢:把环境改成自己的样子的能力。
有个例子很说明问题。一个软件团队原本用贴在墙上的索引卡追踪工作,卡片墙一直在进化——线会挪,清单会冒出来,主网格旁边会长出专门的卡片区。工具的流动性带动了流程的流动性。后来为了支持远程协作,团队换成了网页版的问题追踪器。新工具没法呈现那种“专门的卡片区”,这部分流程只好砍掉。再往后,流程改动基本停摆:以前试个新想法几分钟,现在要花几个小时折腾配置,有些干脆做不了。把工作计算机化,代价是丢掉了一部分自主权。
这种僵硬不是小麻烦。当软件不满足你的需求,你可能会给开发者提反馈,但通常不会立刻有动作。不同用户需求各异,一个中心化的开发团队不可能照顾到所有人。反过来,开发者真要把太多方案塞进一个产品,结果就是一坨臃肿的东西。为了不掉进这个坑,好的产品团队会学着拒绝大部分用户请求,留下一长串没人管的细分需求。
看起来“我的具体需求没人管”是必然的。但之所以显得必然,只是因为我们默认了软件就该由中心化的开发团队控制。如果把更多控制权交到清楚自己需求的用户手里呢?
一个例外,而不是常态
有个被提到的故事:一位神经外科医生和一名IT分析师合作,改造了所在科室的病历系统。没多久,他们做出了一个更快、更直观的界面,专门为神经外科的门诊场景设计。需求来自这个科室,而不是全国每一位医生。除了直接的效率提升,医生们还觉得自己更能掌控工具——这对职业倦怠是一剂解药。
但这样的故事是例外,不是常态。原因在于,我们用来部署软件的工具和基础设施,把用户当成被动的接收者,而不是主动的共同创造者。软件被组织成一个个单体应用,而不是可以灵活重组的工具箱;定制需要编程技能,多数人没有;何况大部分软件是闭源的。软件交付到用户手里时,并不附带编辑软件的工具。应用商店是为公司向消费者分发软件设计的,不是为业余爱好者跟朋友分享工具设计的。这是一套工业化的批量生产体系,不是小规模的手艺活。
公平地说,批量生产的软件带来了很多好处:我们能以合理的价格拿到大量打磨精良的应用,软件在可靠性、可访问性和安全性上都在进步,开发者还找到了能持续养活团队、不断改进产品的商业模式。
但 inflexible 的批量软件同样会挡路。你离“平均用户”越远,定制带来的收益就越超过专业打磨带来的收益。每个人在某些方面都是独特的——也许你对写作工具、做音乐的工具、讨论的工具、规划项目的工具有很强烈的意见。当你有具体需求时,自主权就是重要的。
他们想要的那种生态
讨论指向的是一种新的计算生态,让用户作为共同创造者拥有自主权,他们称之为可塑性软件——一个任何人都能以最小摩擦把工具改造成自己需要的样子的软件生态。
这里的“软件生态”指的是围绕软件及其用户的广泛技术和文化环境,可塑性不是一个狭窄的技术问题。“任何人”则意味着广泛的可及性是目标;培养个人的自给自足有用,但和本地社区协作同样有价值。
回到那个最日常的场景:如果软件也能像厨房里的挂钩和架子一样,随手挪一挪、加一加,很多被砍掉的流程、被放弃的想法,也许根本不用消失。
热门跟贴