“痒点驱动模型”如何解决我们的用户体验难题

“每一个优秀的软件作品都始于挠开发人员的个人痒处。”
481 位读者喜欢这篇文章。
Rocks stacked

Tony Smith,来自 Flickr (CC BY 2.0)

开源是一种以开发者为中心的解决方案模型,简而言之,可以描述为构建开发者社区来解决问题。

最简单的形式,该模型包含两个阶段。首先,开发者遇到一个问题(痒处),他们可以用一些新代码来修复它,并开始着手解决。其次,如果他们然后将他们的解决方案提供给其他开发者,它可以发展成一个完全成熟的蓬勃发展的开源社区。当它奏效时,这是一个令人惊叹的过程,正是这个简单的模型改变了计算机的历史。

但是,在开发者解决开发者问题之外,开源表现并不佳。这在开源圈子里已经得到了充分的讨论,通常以诸如:“为什么用户界面如此糟糕?”之类的问题来表达。将问题框定为糟糕的用户界面很常见,但这可能只是对问题的肤浅处理。“面向用户”的开源项目不仅仅在用户界面方面失败,它们在更深层次上未能满足用户需求。

当环顾四周可用的主要面向用户的开源解决方案时,您是否曾问过自己,为什么开源似乎表现如此糟糕?不仅仅是您最喜欢的桌面应用程序的用户体验感觉笨拙,而是为什么开源在桌面领域总体上没有胜出?

大家想要的开源桌面应用在哪里?网络空间又如何呢?

那些能击败专有竞争对手的开源同等产品在哪里?为什么开源没有在从文本编辑器到 CRM,从网络邮件到社交媒体的每个用户领域都击败竞争对手?

例子寥寥无几。

我认为 Unity 桌面超越了竞争对手,Mattermost 和 GitLab 比 Slack 和 GitHub 更好,但在这方面我不是多数派。

除了少数几个例子之外,我看不出有任何开源产品在满足用户需求方面击败了专有竞争对手。为什么开源在生产面向开发者的解决方案以及网络和互联网基础设施方面做得如此出色,但在面向用户的世界中却做得如此糟糕?

我认为开源可以在社交网络、文本编辑器、CRM、网络邮件等方面占据主导地位。事实上,我认为开源模型具有一些本质特征,使其能够全面击败专有竞争对手。但这需要首先理解它目前为什么没有做到这一点。

要理解问题,作为解决问题的第一步,我们必须深入了解我们在开源社区中创建解决方案的方式。我们需要批判性地做到这一点,并准备好问自己一些难题。

痒点驱动模型

“每一个优秀的软件作品都始于挠开发人员的个人痒处。” -- Eric Raymond

Eric Raymond 认为,开源和自由软件有一种特殊的解决方案模型,他称之为痒点驱动模型。基本上,这个想法是,开源项目开始是因为某人,在某个地方,看到了一个问题(痒处),他们开始通过编程来找到解决方案(挠)。

这完全合理,并且非常简洁地描述了实际发生的事情。Eric Raymond 在大教堂与集市中对此进行了更多描述,这本书被认为是理解开源的基础性著作。正如 Eric Raymond 所说

“每一个优秀的软件作品都始于挠开发人员的个人痒处。”

痒点驱动模型有两个非常重要的特点,这两个特点在开源中发挥了极其重要的作用

  1. 它是你的痒处这一事实对于开发好的解决方案至关重要。如果您有问题并且您非常了解它,那么您就非常适合开始解决该问题。与对问题一知半解的“局外人”相比,您作为“局内人”更适合解决问题。因为它是你的痒处,所以你既有动力去解决它,更重要的是,你将对如何解决该问题有独特的见解。

  2. 拥有类似问题的其他人对于构建社区至关重要。如果你的痒处是一个常见的痒处,并且你知道其他人需要你的部分或完整的解决方案,那么你很可能会看到贡献和/或采用的增长。这基本上是开源项目增长的秘诀。当然,成功的开源社区还有更多因素,例如治理、志愿者管理、理解内在和外在动机等等,但问题的核心是,如果您知道其他人也有相同的痒处,那么开源,即使退一步说,也是放大挠痒效果的绝佳模型。这也不是没有先例的,任何阅读过 John AbeleEverett Rogers 作品的人都知道。在外部世界,这个过程被称为“扩散”。

因此,痒点驱动模型,作为开源社区的模型,之所以真正成功,是因为您了解自己的痒处,其次,您认识其他有相同问题的人,因此,他们希望分享或参与创建您的解决方案。到目前为止,这听起来非常不卫生!

在现实生活中

在现实世界中,我们看到了这一点的实际应用。也许这方面的文化起源是 Linux。Linus Torvalds 有一个问题,他想要一个免费的操作系统(痒处)。他开始尝试(挠),并向全世界发布电子邮件,询问是否有人有兴趣与他一起解决这个问题。而且,我们知道剩下的故事:一个由社区驱动的大型挠痒,永远改变了计算机的历史。这就是原型方式运作的痒点驱动模型。

几乎每一个成功的开源项目从一开始都是这样演变而来的。开发者解决技术问题,并逐渐吸引其他开发者与他们合作解决或采用它。这个模型的核心是开发者。既有问题又有解决方案的人。我称这个模型为以开发者为中心的解决方案模型。它几乎是每个现有开源项目的模型。

因此,我们知道这个模型是强大的。我们已经看到了它可以做什么。但是,我们有多少次停下来问自己,它不能做什么或它做得不好的地方?我们多久问自己它在哪里失败以及为什么失败?我认为我们没有进行足够的这种对话。

让我们首先明确以开发者为中心的模型在哪些方面有效,以此开始思考这些问题。嗯,当解决开发者遇到的问题时,它效果很好,这些问题几乎总是,或者至少主要是技术问题。这就是为什么互联网基本上运行在从 BIND 到 OpenSSH 的开源层之上,以及为什么在没有开源的情况下,您在网络托管或容器领域寸步难行。事实上,如果没有使用各种开源库,您实际上无法开发任何类型的软件。当解决这类问题时,以开发者为中心的模型无疑是赢家。

然而,虽然以开发者为中心的模型已被证明在解决技术问题方面非常出色,但历史表明,它在解决面向用户的问题方面并不擅长。如果它擅长做到这一点,我们应该会看到开源在用户空间中击败专有应用程序。但我们很少看到这种情况。

难道是这个模型不擅长解决这类问题吗?

这就是我相信问题所在的地方。以开发者为中心的模型在解决技术问题方面有效,正如 Eric Raymond 指出的那样,因为有问题的人处于创建解决方案的核心。开发者了解他们的痒处。

当开发者解决他们遇到的、理解透彻并希望修复的技术问题时,它会非常有效。而当开发者解决用户问题,即不是他们自己的问题时,他们并不完全了解这个问题,并且所需的解决方案主要不是技术问题,那么它根本就不是很有效。

这是因为在这些情况下,我们违反了痒点驱动模型的首要要求:了解你的问题。开发者并不像用户那样“了解”问题,因为它毕竟不是他们的问题。他们试图解决著名的 SEP,即别人的问题。因此,他们没有用户那样对问题的怪癖和细微之处的深入体验知识和理解。这是一个定性的、体验上的差异,但这是一个重要的差异。

因此,我们得到的软件解决方案反映了开发者对问题的理解,并反映了开发者解决问题的方法;这种方法通常与用户对问题的理解或他们的需求不符。

在今天的开源领域,开发者是主要的解决方案提供者。当他们为自己构建解决方案时,这是一个几乎完美的模型。但是,当涉及到为开发者不完全理解其需求的(因为他们不是用户)用户群构建解决方案时,该模型就会失败。

我们该如何解决这个问题?

我认为答案很明确。我们坚持痒点驱动模型。

这是一个解决问题的好方法。正是这个模型使开源能够在技术领域击败专有竞争对手。我们应该坚持下去,但我们需要在应用方式上保持一致。我们需要将有问题的人,那些有痒点的人,那些完全了解问题的人,置于解决问题工作的核心。

仅仅在以开发者为中心的项目文化中添加“用户体验人员”或“用户论坛”是不够的,无法解决用户需求。这种方法是一种临时的补丁,只能走这么远。我们需要回到痒点驱动模型的核心原则,将有问题的人(用户)带入解决方案模型的核心。

为此,我们需要开始问问自己,以用户为中心的解决方案模型对于开源可能是什么样的。

在你看来它是什么样的?

User profile image.
Adam 是 Shuttleworth 基金会研究员和协同知识基金会的联合创始人。曾是 FLOSS Manuals、Booktype 和 Book Sprints 的创始人。 https://www.adamhyde.net https://coko.foundation  

4 评论

我理解这里的论点,但它错过了真正的问题。鉴于专有最终用户软件在竞争中胜过 FLO 产品,专有软件是如何做到这一点的?

如果专有最终用户软件的开发者自己不了解问题(正在解决别人的问题),那么显然有可能成功开发出并非挠自己的痒处的软件。如果专有开发者也在挠自己的痒处(当然经常是这种情况),那么整个前提都无法解释为什么 FLO 最终用户软件做得更差。

存在许多复杂的问题(主要是经济问题,但也包括许多其他因素)。我们不会仅仅通过询问“后端/上游/以开发者为中心的 FLO 和以最终用户为中心的 FLO 之间有什么不同?”来成功识别它们,我们需要问“专有最终用户软件拥有什么而 FLO 最终用户软件缺乏什么?”最明显的答案是:一种经济模型,用于支付全职团队开发软件。

如果您查看投入最终用户软件开发的每一美元,专有软件的优势就会消失。在相同的资金投入下,专有软件不会产生更好的最终用户结果。后端 FLO 软件在资金较少的情况下是否比专有软件做得更好?在某些情况下,是的。但作为一种总体趋势,资金也是后端软件的决定性因素。最强大的 FLO 软件资金充足,即使我们谈论的是从挠痒开始的以开发者为中心的软件。

当然,非程序员的参与将产生巨大的影响,但主要问题是经济问题。

嘿 Aaron,观点很好(感谢你如此仔细地阅读文章)。所以...我的观点是,开源的生产方式和专有软件的生产方式之间存在巨大的文化差异。我见过或读到的大多数现代软件生产流程,在专有领域中,都花费了大量时间(以一种或另一种方式)与目标用户在一起,并从设计到上线(以及之后)一直与他们在一起。开源文化可以使用一些专有项目使用的方法,但我认为必须以不同的方式来完成——一种更适合开源文化的方式。

所以,对我来说问题是——开源如何演变才能开发出出色的面向用户的软件,并且感觉像是“开源方式”。我认为在这里我们正在浪费很多价值,因为拥有用户的开源项目不知道如何处理他们。有时他们被要求提交错误报告,或编写文档,或进行营销等等……但我们是否遗漏了什么?如果用户希望参与,为什么不让他们更深入地参与呢?例如,他们将是您所拥有的最好的用例专家。那么,将他们作为核心团队成员引入以共同设计软件怎么样?然后,您将有痒处的人(用户)与可以帮助改进解决方案的团队结合起来。

至于经济方面。我认为人们喜欢在团队中一起解决问题。我也认为人们喜欢志愿做这些事情。这基本上就是社区的意义,而开源(恕我直言)需要开始研究如何将更广泛的技能基础(用例专家、用户体验专家等)纳入项目的核心(而不是在外部作为事后才考虑的事情)。这是一个不难思考和开始着手解决的问题,我认为开源在很大程度上,以及任何给定的项目,都将从中受益匪浅。

此外,如果 opensource.com 批准,我将在未来的文章中写更多关于这个主题的内容!

回复 ,作者 wolftune

很棒的文章。你很好地抓住了问题。我一直在说是的,是的!我非常兴奋地想知道你将如何解决这个巨大的问题。

然后我读到最后一部分,气球泄气了。对于为什么痒点驱动模型对开发者如此有效,而对普通人却无效的问题的答案是:痒点驱动模型!什么?我回头试图找到我是否错过了隐藏的见解。但我仍然不明白。

我的组织为残疾人、教师、人权活动家、贫困妇女和环保主义者开发/已经开发了开源解决方案。我们相对传统地按照专有软件的方式来做:我们做以用户为中心的设计、原型设计和使用用户体验专家。效果还不错。但是,我们的开源社区非常稀疏,因为很少有我们的用户是开发者,他们想要加入并挠痒处。

在你的设想中,我们应该做些什么不同的事情?假设我们的目标用户是社会上最需要帮助的一些人。

嗨 Jim,感谢你的评论!我的观点是,痒点驱动模型应该适用于所有人,而不仅仅是开发者。因此,您需要寻找所有类型的(包括开发者)对您的目标表示同情的人,并尝试说服他们参与进来。由于自利才是真正的驱动力,我想问问你自己,你所提供的对于你希望看到的各种不同角色是否真的有吸引力。本质上,有意识地设计您的社区流程,以吸引您正在寻找的那种人。这很辛苦,但并非不可能。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.