森睿观点

面向运营团队的企业内部系统:提升采用率的设计原则

internal toolsoperator softwaretypescriptworkflow design
Senrok Team
作者Senrok Team
发布于

面向运营团队的企业内部系统:提升采用率的设计原则

大多数内部系统不是因为功能不够而失败,而是因为从来没有围绕真正使用它的人来设计。系统被做出来了,被部署了,然后被悄悄绕过了——而团队继续在表格、聊天消息和浏览器标签页里处理真正的工作。

这不是技术问题,而是设计问题。代价是隐形的:慢速流程、不一致的输出、活在人脑子里而不是系统里的知识,以及需要几个月而不是几天的入职培训。

为什么内部系统会失败

内部系统通常是由工程师为运营人员构建的。工程师思考系统,运营人员思考工作。当用其中一种思维模型来为另一种设计工具,结果就是技术上能用、实际上难以使用的软件。

系统建模了数据,而不是工作

界面围绕数据库的形状组织,而不是围绕工作流程的形状。运营人员不得不在多个页面之间导航,在脑子里把本应在界面里就关联好的信息拼合起来。

系统需要太多的上下文切换

完成一个任务需要在多个应用之间切换,把信息从一个系统复制到另一个系统。每次切换都是一个犯错或丢失上下文的机会。

系统不匹配实际的决策结构

界面按信息被存储的顺序呈现,而不是按做出决策所需要的顺序。运营人员不得不自己去找相关信息,而不是在正确的时刻被自动呈现出来。

系统没有运营人员的声音

它在没有持续收集真正做这些工作的人的意见的情况下被构建出来。对运营人员来说是例行公事的边缘情况,在设计里从来没有被预见到。每个人都在用的变通方案,从来没有被纳入官方工作流程。

系统为错误的事情优化

内部系统经常被构建来让数据录入更快或强制执行流程合规,而不是帮助运营人员更快地做出更好的决策。结果是一个制造工作而不是减少工作的系统。

运营人员真正需要什么

运营人员需要做决策和采取行动。其他一切都是支撑这个核心活动的结构。一个设计良好的内部系统让决策更清晰、让行动更快速、同时降低导航的认知负担。

在正确的时刻呈现正确的信息

界面应该呈现运营人员做下一个决策所需要的信息,而不是所有存在的信息。这需要理解运营人员做什么决策、按什么顺序做、以及每个决策依赖什么信息。这种理解无法从数据模型里推断出来,只能从观察和交谈中得来。

减少完成一个任务所需的步骤数量

每一个不必要的步骤都是一个犯错、丢失上下文或放弃任务的机会。正确的问题不是完成任务是否可能,而是是否可以用比现有方式更少的努力来完成。如果答案是否定的,系统就会被绕过。

让系统状态可见

运营人员应该总是知道一个案例在工作流程的哪个阶段,已经做了什么,还需要做什么,以及是什么在阻碍进展。这不是展示所有数据,而是以匹配运营人员心理模型的方式展示工作状态。

为例外情况设计,而不只是为典型情况设计

内部系统经常只为工作流程里干净的、预期的路径设计。运营人员把不成比例的时间花在例外情况上。一个对任何边缘情况都需要运营人员离开系统的工具,最多只能实现部分采用。

让运营人员能够采取行动,而不只是观察

一个让运营人员看到正在发生什么、但需要他们离开系统才能做任何事情的工具,是一个监控后台,而不是一个运营工具。运营人员需要采取的行动,应该在他们看到驱动那些行动的信息的同一个界面里可用。

TypeScript 在内部系统里的作用

用 TypeScript 构建的内部系统,有结构良好的后端和 React 前端,相比低代码或无代码平台有一个结构性优势:它们可以被精确地塑造成符合工作的形状。

一个无代码工具是一个工作流程必须去适应的模板。一个 TypeScript 产品可以被设计成让界面精确地符合工作流程。导航结构、信息层级、每个步骤可用的操作、验证逻辑、与外部系统的集成——所有这些都可以围绕运营人员做出的具体决策来设计。

从专用内部工具中获益最多的工作流程,通常就是那些已经足够复杂、超出了通用工具处理能力的工作流程。它们有足够多的边缘情况、足够多的系统依赖,以至于基于模板的方案总会有显著的空白。

TypeScript 对于需要持续演进的工具也有实际优势。类型系统让同时修改数据模型和界面成为可能,编译器会捕捉到需要传播这个变更的地方。对于一个会被持续开发的内部系统来说,这是一个显著的运营优势。

从工作出发,而不是从数据出发

构建运营人员真正会用的内部系统,最重要的转变是从工作出发,而不是从数据出发。

从数据出发意味着:这是数据库模式,现在构建一个让运营人员可以读写它的界面。结果是一个技术上完整但运营上平庸的增删改查应用。

从工作出发意味着:运营人员一整天都在做什么,他们做什么决策,做那些决策需要什么信息,他们采取什么行动,常见的失败模式是什么。数据模型和界面都来自于这种理解。

在实践中,这意味着在写任何代码之前先和运营人员待在一起。不是一次访谈,而是足够多的时间来理解工作的实际节奏:运营人员早上第一件事是什么,他们如何决定处理哪些案例,当一个案例不寻常时他们看什么,当一个案例卡住时他们做什么,以及他们希望当前系统能做但做不到的事情是什么。

那种理解,是把一个成为团队工作方式核心的内部系统,和一个成为每个人事后填写的合规复选框的系统区分开来的东西。

采用测试

内部系统真正的测试,不是运营人员是否使用它,而是运营人员是否更喜欢它而不是替代方案。

如果运营人员是因为必须才使用这个系统,但同时维护着一个平行的表格来追踪系统处理不好的事情,这个系统没有解决问题,而是在现有变通方案之上又加了一层合规开销。

如果运营人员是因为它确实让他们的工作更容易、更快、或者更少出错而使用这个系统,这个系统就在运转。这种偏好是设计把重要的事情做对了的唯一可靠信号。

实现这种偏好,需要以对待任何其他产品设计问题同样的认真态度来对待内部系统设计。用户是真实的,工作流程是复杂的,边缘情况是大量的,做错了的代价每天都由做这些工作的人来承担。

好的运营工具的复利价值

一个设计良好的内部系统,不只是让运营人员更高效,而是让工作对整个组织更清晰可见。

当工作发生在一个设计良好的系统里,规律就变得可见了。哪些案例花了太长时间,为什么。例外情况在哪里聚集。瓶颈在哪里。自动化在哪里能帮上忙,以及哪里真正需要人工判断。

这种可见性,是让团队能够随时间改进流程而不只是执行流程的东西。它也是让 AI 介入有意义的东西:一个构建在设计良好的运营工具之上的智能体系统,可以访问结构化的工作流程数据、清晰的决策点、以及已建立的人工审核层。一个构建在表格和聊天之上的智能体系统,什么都没有。

内部系统经常被当作做生意的成本,而不是对运营能力的投资。把它们当作后者的团队,往往会随时间积累起复利的运营优势。工作变得更快,错误变得更少,入职培训变得更短。当需要在工作流程里加入 AI 的时候,基础已经在那里了。