7 种让面向用户的软件更出色的方法

将用户的需求置于开源开发对话的中心是创建他们离不开的软件的关键。
495 位读者喜欢这篇文章。
Chat

Opensource.com

开源在解决两类问题上表现出色:1) 基础设施 和 2) 开发者工具。这是因为开发者和用户基本上是同一批人——开发者是问题的“内部人士”,对问题理解透彻,并且有动力去解决它。因此,开源在使用 Eric Raymond 在其开创性著作《大教堂与集市》中讨论的“痒处止痒”模型方面非常有效。

然而,开源在面向用户的领域表现不佳,这意味着主要用户不是开发者或技术人员的软件。想想看,互联网运行在自由软件之上,但 Web 领域的大多数桌面应用程序和平台都是封闭的。在我们需要 GUI 的地方,我们基本上都失败了。我认为这是因为用户与开发者不同;开发者是问题的局外人,他们正在为别人开发解决方案。

我认为,我们应该用户一起开发,而不是用户开发。我们需要内部人士的视角来帮助我们构建开源产品,从而在市场上击败专有竞争对手。在开发面向用户的产品时,我们需要将用户置于解决方案模型的中心。

那么,这会是什么样子呢?我基于我的想法开发了一个 1.0 版的方法论,但随着我在这条道路上越走越远,我越明白没有单一的答案。我们需要试验流程,以了解哪些有效,哪些无效,并迭代我们的模型。

一个简单的实验框架

我们需要一个简单的框架来引入用户视角,并在其中进行实验。尽管开源项目在文化上有很多共同点,但每个项目都有自己的做事方式、自己的内部文化以及不同的实验阈值。因此,我没有推行任何具体的方法,而是发起了一项小型活动,要求您考虑以下理论:用户输入对于开源产生世界一流的面向用户产品的有效性至关重要。

如果您认为这有道理,请考虑在您的项目中进行一些实验,这些实验在或大或小的程度上朝着以下两个原则靠拢

1. 首先进行设计,以及

2. 与用户一起设计

将这两个原则结合起来,可以将用户(问题的“内部人士”)更紧密地拉到项目和我们的解决方案文化的中心。“首先进行设计”的重点实际上是在我们开始开发之前考虑内部人士的立场。

这些原则不是教条,而是解决如何以“开源方式”构建更好产品的长期问题的导航工具。我不认为我们会在一夜之间发现解决这个问题的理想途径,但我认为,如果我们开始在新项目或现有项目的舒适区内进行一些小实验,我们将开始了解哪些对解决用户软件问题有效,哪些无效。

这看起来像什么?

以下是一些开始尝试的方法的建议。这些策略从温和到雄心勃勃不等。它们旨在帮助您了解用户如何看待您的产品,并开始与他们合作改进产品。想想哪些最适合您的项目,并尝试一下。

1. 主动联系

在您的社区中选择一两个用户(而不是开发者),并邀请他们进行快速聊天。给他们打电话(语音或视频聊天比 IRC 或文本聊天能给您带来更丰富的结果),并询问他们对您软件的看法。问他们喜欢什么,以及他们会改变什么。不要担心这是一个有限的样本;关键是开始对话并倾听您的非开发者用户。这样做的好处是,它也有利于构建社区。

2. 聚会

考虑举办一个非开发者用户聚会(在线或亲自),以讨论该软件。首先提出非常开放式的问题,例如,“该软件是否能满足您的需求?”或“您认为该软件对您所做的事情有哪些不理解?”坐下来倾听。尽量不要解释为什么该软件会这样做。其目的与上述策略类似——倾听关于您的用户需要什么或与您之前的想法不符的见解。此策略也有利于构建社区。

3. 挖掘文档编写者

根据我的经验,为用户文档做出贡献的人更有可能是高级用户,而不是开发者。这些人是获取见解的重要来源,因为他们通常是领域专家,并且对您的软件非常了解。利用此资源来获取有关如何改进您的软件的见解。与他们进行一对一或小组聊天;您可能会惊讶于他们可以提供的精辟见解。

4. 在开发者活动的同时举办文档活动

如果您有大量的志愿者文档编写工作,请邀请文档编写者参加您举办的任何代码活动(例如,冲刺、黑客马拉松等)。这可能会在文档编写者和开发者之间建立随意的联系,这本身就很棒。但是,如果可以,请尝试进一步推动这一点。例如,尝试在午餐时间或在预留的时间段内进行公开讨论,并询问文档团队如何改进该软件。与聚会一样,提出开放式问题,例如“您认为该软件对您的工作有哪些不理解?”或“该软件可以做些什么不同的事情?”您不仅仅是在寻找功能建议,而且要开始了解专家型非开发者用户的立场。

5. 绘制用户的典型工作流程

选择一些用户来帮助您了解您的产品如何融入他们的工作流程。您需要非常广泛地理解工作流程;本质上,您想更多地了解他们如何使用您的产品。通过绘制用户所做的事情以及他们如何使用该软件,您可以获得一些非常有趣的见解,从而改进它。将此视为对话;如果您是亲自或通过视频聊天进行操作,请让他们在白板上绘制他们的工作流程。记录它并向他们提出许多澄清问题——问题越细致,您的学习就越丰富。

6. 邀请用户参加精选的开发者会议

邀请一两个用户参加某些开发者会议,例如当您开始决定优先考虑哪些新的或更新的功能时。如果您想从非开发者用户那里获得强烈的反馈,请不要依赖 GitHub 或 GitLab Issues board 之类的工具进行这些讨论。这些类型的工具对于开发者来说还可以,但非技术人员发现它们使用起来并不容易。相反,请考虑使用在线视频聊天、面对面聚会或类似的论坛。您可能需要在促进讨论方面发挥更大的作用。让对话“远离细节”,使其有趣且引人入胜。确保您邀请用户参与讨论,并找到适当的方法来确保他们做出贡献。(这可能需要一些实验。)请确保听到用户的声音,并且他们的建议不会立即被“为什么 X 不可能”或“以前没有做过”的解释所推翻。

7. 邀请用户参加设计会议

当您计划功能设计时,请联系选定的用户,并邀请他们参与讨论。再次强调,与通过存储库问题相比,与用户和开发者进行实时小组对话(亲自或通过视频聊天)更有效。您需要促进这些对话;使它们快速、有趣且引人入胜。

分享您的学习成果

我相信,如果我们像开源社区在过去二十五年中所做的那样分享我们的学习成果,我们将解决创建流行的面向用户的软件的问题。如果您尝试这些策略,请分享您的学习成果,以便我们所有人都可以从您的发现中受益。

Adam 最近在俄勒冈州波特兰的 CSVConf 上介绍了这些想法。观看他的演讲 视频。非常感谢 Tony Wasserman 就这个话题进行的有趣讨论。

User profile image.
Adam 是 Shuttleworth 院士和 Collaborative Knowledge Foundation 的联合创始人。此前,他曾是 FLOSS Manuals、Booktype 和 Book Sprints 的创始人。https://www.adamhyde.net https://coko.foundation  

评论已关闭。

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.