FrontlineSMS 始于 2005 年,当时的目标看起来很简单明了:开发一款工具,让离线社区能够轻松沟通。目标不是创新或盈利,而是简单地将有用的工具送到尽可能多的人手中。
第一个尝试版本——现在被亲切地称为 Frontline 0——比预期更好地实现了这个目标。Frontline 的第一个用户是 Kubatana,他们开始使用 Frontline 来协调津巴布韦的政治活动。不久之后,一个名为尼日利亚移动选举观察员的组织使用 FrontlineSMS 监控了尼日利亚总统选举。这些应用引起了媒体的关注,既暴露了 Frontline 的潜力,也暴露了它的缺点。我们可以做得更好。因此,我们开始(大部分是不自觉地)构建非常、非常不同的东西:一家可持续发展的软件公司。
Frontline 成为代码中体现的抽象概念的那一刻,也是一切变得更加复杂的那一刻。事实证明,围绕这项技术的生态系统比构建一个软件复杂得多。我们以惨痛的代价了解了作为设计理念的局限性;开源可用性中固有的 两难困境;以及最终,开放生态系统中缺失的中间环节。
回顾过去,认为一切都可能很简单——通过短信传递可用的、开源的、多渠道的工具,从而推动可衡量的积极成果,这种想法感觉很幼稚。九年和多次迭代(以及数万用户)之后,尽管如此,我们比以往任何时候都更成功——而且主要是因为意想不到的原因。
作为设计理念的局限性
让我们从头开始。Frontline 最初的目标是为最后一公里社区构建通信工具,这意味着局限性是基本的设计考虑因素。特别是,FrontlineSMS 的最初设计是基于当时的硬件市场。在世界许多地方,变化甚微。
2005 年,世界上两种最流行的硬件形式是笔记本电脑(PC)和功能手机,今天仍然如此。世界上使用最多的数据通道是,而且仍然是,短消息服务(SMS)。因此,FrontlineSMS 最初被设计为将笔记本电脑连接到移动网络,使用功能手机或 USB 调制解调器。连接硬件的巨大差异是我们的第一个惊喜之一——事实证明,调制解调器、驱动程序和运营商设置的组合使得在最后一公里市场采购本地兼容的硬件极其困难。最终,我们购买了经过测试并已知可用的硬件,并将其分发给在当地市场难以找到兼容调制解调器的用户。然而,了解硬件分发只是开始。即使硬件确实有效,平均调制解调器速度也为每分钟 8 条消息,这使得批量流量极其困难。
我们的许多早期用户都是精通技术的个人,他们与对数字工具经验有限的人员合作。这意味着我们很幸运拥有一个社区,他们既能够提供本地支持,又能够报告用户反馈。这种用户验收测试对于改进我们的界面非常宝贵,该界面模仿收件箱而设计。我们使其尽可能简单和可配置,并将界面翻译成世界上使用最广泛的语言。通过每个用例,我们都获得了关于如何使产品更精简、更易用的见解。
FrontlineSMS,作为一个文件,在其生命周期的大部分时间里都保持在 30MB 左右,这是出于对间歇性连接和有限硬盘空间的考虑。该系统被设计为离线工作,这意味着它在每个用户的桌面上创建了一个本地服务器,分散了架构,并赋予最终用户对其自身数据的所有权。我们使其免费——不是言论自由的“自由”,而是免费啤酒的“免费”。我们提供了尽可能多的用户支持——我们内部规定在 24 小时内回复每个请求。当然,我们以开源许可证(AGPL)发布了它。
每个局限性都成为我们设计标准的一部分——Frontline 并不华丽,但这正是重点;它尽可能简单,以解决它旨在解决的问题。事实证明,Frontline 非常适合 SMS 旨在实现的通信类型——本地的、情境化的、可操作的消息。在最初几年,Frontline 开始获得媒体关注,吸引了越来越多的不同用户——无论是在地域、规模还是需求方面。
可用性的两难困境
随着用户群的增长,我们的团队面临着一个根本性的决定:我们希望我们的用户是谁?以技术社区为目标,可以更容易获得关注和贡献,但通过限制可以使用该软件的人数,更难获得采用。我们是否希望 Frontline 成为针对特定行业的产品?或者,一个平台,使用户能够继续在其环境中构建、配置和应用我们的工具,无论该环境在哪里?换句话说,我们是在为最终用户构建还是为开源社区构建。起初,我们曾希望两者兼顾,但了解到,在任何产品的生命周期中,都存在为开发者构建还是为用户构建的两难困境。
我们了解到,我们用户群的需求正在多样化——不仅跨地域,而且跨行业。移动医疗(由移动设备支持的医疗保健)领域正在快速增长,因此 Frontline 的第一任项目主管 Josh Nesbit 启动了 FrontlineSMS:Medic 项目(此后已成为 Medic Mobile,一家鼓舞人心的临床医疗保健非营利组织)。
:Medic 项目的迅速普及表明,当我们将强大的技术与更专注的品牌和专门的倡导者结合起来时,可能会发生什么。此后不久,通过一系列志愿者,Frontline 还启动了 :Credit、:Legal、:Learn 以及最终的 :Radio 项目。每个项目都建立在一个共同的前提之上——开源技术设计也可以应用于品牌和组织的增长。每个项目都能够专注于特定行业,并基本上应用相同的核心技术——FrontlineSMS。这在一段时间内奏效了。
随着用户群的增长和多样化,每个项目都开始构建新工具。我们从 FrontlineForms 开始,然后是 PaymentView,然后是 FrontlineSMS:Learn,它本质上是一个用于课程提醒和通过 SMS 进行测验的成绩簿。不仅应用程序的功能在不断扩展,而且产品的架构也变得更难管理——我们没有有效地管理分支,并且开始在提供一个简单易用的应用程序与可视化、数据架构以及坦率地说,甚至是术语的可配置性方面感到吃力。我们需要开始构建可翻译的界面,以便一个用户的学生成为另一个用户的患者,而另一个用户的客户。
然而,不仅仅是行业,我们的用户继续沿着非常广泛的偏好进行划分。这些偏好不仅仅是关于贫富、程序员或用户,它们还因几乎无数的变量而异——组织内的角色、定制或可配置、可视化或文本化,以及许多其他因素。我们不仅接触到了精通技术的开源社区,还直接接触到了没有任何技术经验的人。这些用户中的许多人不仅想要高度定制的用户界面,还希望能够与在线社区建立联系。
此时,我们正在解决的问题不仅仅是技术性的,而是情境性的。它们代表了开源世界中较少被讨论的长尾,在其中,构建产品不仅仅是关于新功能,而是关于协调一致地维护、重新架构和扩展现有产品。尽管我们继续收到来自开发者社区的贡献,但兴趣开始消退。根据我们的(传闻)经验,要吸引开源社区解决人类可用性问题或构建数据架构来衡量(并因此证明)实施我们正在构建的工具的实际价值,要困难得多。这是我们作为非营利组织的一个有趣的方面——与企业不同,说服用户实用性就足够了,我们还必须能够量化并向捐助者证明这种价值。不幸的是,Frontline 的价值,就像它正在帮助解决的问题一样,几乎完全是情境性的——并且获得良好的情境化通信基线数据非常困难,尤其是在离线环境中。通常情况下,Frontline 生成的数据就是基线。
对我们来说,开源最初是我们降低访问门槛并向更广泛的社区表明我们意图的一种方式。与许多其他人不同,我们不是试图窥探用户数据或追求商业议程,我们是试图构建真正有用的东西。然而,我们吸取的教训是,一旦你证明你的工具有用,你就必须迅速开始确定优先级:你是为主要由开发者组成的开源社区服务?或者,你是为非技术最终用户服务,他们证明了价值,但不贡献代码?你的首要任务是发展你的开放平台?或者,证明它对没有技术技能的人有用?
缺失的中间环节
因此,我们选择了后者。我们选择了构建一个其他人可以用来证明可衡量影响的工具,无论在什么情况下。这个决定,可能比任何其他决定都更能塑造 Frontline 的现状。
那些希望专门为某个行业开发技术的项目分拆出去,其余项目开始为核心代码库做出贡献,主要来自一个内部开发者团队。大约在那个时候,我们的文化发生了变化——我们不再仅仅是一个产品,我们是一个拥有产品和使命的组织。
2012 年,我们完全重建了该平台。在我们最初的 7 年中,Frontline 被下载了大约 25,000 次——到 2013 年年中,新版本的 Frontline 已被下载 200,000 次。我们开始了一项咨询业务,以帮助组织设计、构建和应用 Frontline,并取得可衡量的成果。我们开始建立可量化的证据库——为一些组织节省高达 97% 的通信成本。在我们注意到效率惊人提高的同时,我们也开始意识到另一件事:最后一公里自身能完成的事情是有限的。
我们认为,仅仅到达最后一公里是不够的——为了产生真正的影响,我们必须将这些社区连接到“第一公里”。我们必须构建缺失的中间环节。真正的冲击不仅仅是在新平台上进行沟通——甚至不仅仅是使用新工具——而是以创造互补效率的方式构建和简化它们之间的联系。这在技术领域和道路、法律体系、政府和商业供应链中一样真实。最终,通信技术不是关于构建小型甚至大型围墙花园,而是关于连接人和组织以最大限度地提高产出,同时减少延迟。
作为一个可用性挑战,我们现在正在解决一个非常不同的问题。我们不是为最后一公里设计,也不是为第一公里设计。我们正在为它们之间缺失的中间环节设计。从技术角度来看,这意味着为多个平台设计,使用可以在相同甚至不同平台上解释回来的通用数据结构。同样,这意味着创建按上下文灵活的工具构建器——使没有计算机科学学位的人能够为拥有计算机科学学位的人构建的系统做出有意义的贡献。
更重要的是,这意味着协商时间、精力和资源的新分配,以实现共同目标。这不是一个我们可以通过数据库思维解决的问题,也不是一个我们需要在每种排列或社会背景下进行定制或标准化的问题。这是一个我们将通过构建不迫使我们在开发者兴趣和用户价值之间做出选择的产品来解决的问题。这是一个我们将通过开放构建通信系统的经验(而不仅仅是许可)来解决的问题。最终,这是一个我们将要解决的问题,不是通过选择一个要构建的上下文,而是构建连接上下文的框架。
未来的伟大之处
所以,这就是我们的计划。Frontline 正在构建开放的、可配置的工具,这些工具使使用世界上最分布式技术连接和转换系统变得更加容易。
其中一些系统将存在于最后一公里——无论是社区卫生工作者还是 arduino 空气质量监测器——并且它们将拥有 FrontlineSMS 作为一个免费且可公开使用的平台。对于第一公里,我们将拥有 FrontlineCloud,一个云托管的软件即服务平台。对于中间环节,解决方案将是开放和开源、技术和社会、免费和非免费的混合体。正如我们正在连接各个环节一样,我们将连接更多平台,桥接平台、社会背景和可用性。
与往常一样,我们将努力构建使社区能够轻松沟通的工具。通过构建缺失的中间环节,我们希望让世界其他地方也能轻松倾听。
FOSS
本文是 Rikki Endsley 协调的 人道主义 FOSS 专栏 的一部分。要分享您的项目和关于自由和开源软件如何让世界变得更美好的故事,请通过 open@opensource.com 联系我们.
1 条评论