观点丨从闭源到开源,我所在的软件研发团队经历了什么?

发布于 2022年04月07日

编者注:本文刊登在《新一代数据可视化分析平台建设指南》(2022年3月版)序言部分,文章作者为DataEase产品总监徐伟。点击文章底部“阅读原文”链接,即可下载《新一代数据可视化分析平台建设指南》白皮书。


从闭源到开源,

我所在的软件研发团队经历了什么?

徐伟

2021年6月28日,DataEase开源数据可视化分析平台正式对外发布。这是FIT2CLOUD飞致云在开源软件领域的新作,DataEase的核心功能是通过支持丰富的数据源连接和提供拖拉拽的快捷方式帮助用户快速制作仪表板,并且支持灵活方便的仪表板分享机制。

作为一名软件开发行业的老兵,这是我第一次以开源的方式参与打造一款软件产品。

2014年FIT2CLOUD飞致云创立。作为创始团队的一员,我们看到了伴随着云计算应用普及而兴起的云基础设施管理需求,设计并实现了云管平台(Cloud Management Platform)软件,并且在后来的数年间不断地改进和升级这款产品。

FIT2CLOUD云管平台(后来被更名为CloudExplorer多云管理平台)是一款采用闭源方式开发的企业级软件。从2014年到2020年的六年多时间里,我们的研发团队都在用相对传统的方式去研发这款软件。目前这款软件仍然在升级和优化,在金融、制造、能源、交通、物流、房地产等行业拥有接近200家企业用户。

2021年的2月,DataEase开源项目组成立。在闭源的世界里沉浸式体验了多年的我尝试去拥抱开源软件的世界。在开源领域有本著名的畅销书叫《大教堂与集市》,从2021年2月到今天,我们这些从闭源世界走向开源世界的软件开发者可能还没有体会到从“大教堂”到“集市”的剧烈反差,但是也的确收获了与以往截然不同的开发体验。

首先就是大量社区用户的使用反馈让我们在短时间内就拥有了庞大的产品需求池。事实上,由于云管平台软件是云计算时代的产物,我们在早期设计时同样也会大量收集用户的需求,从中快速提炼出通用的需求,并付诸实现。因此,对于用户现实需求的采集、识别、规划和实现,早已经是我们日常工作的组成部分。但是DataEase项目组还是被开源社区的力量所震撼。

记得在DataEase开源数据可视化分析平台v1.0版本发布后的第三天,DataEase开源项目就进入了GitHub趋势榜的主榜,并且在Java趋势榜中位列第一;项目发布一个月后的7月30日,DataEase项目的GitHub Star数突破1000个;8月6日,GitHub Star数突破2000个;8月30日,GitHub Star数突破3000个。

在开源社区被广泛关注的直接结果便是我们收获了很多用户。DataEase项目累计下载次数超过10000次是在11月24日,距离这个项目被大众所知道仅仅过去了五个月。

快速积累的用户群体催生出大量的使用反馈和产品需求。我们每天都会收到大量的建议,我们从其中筛选出优先级别最高的需求,将其规划到下一个版本的研发工作中。DataEase项目的需求池从来不会干涸,每天从海量的需求中识别进入下一版本规划的部分,成为了一种幸福的烦恼。

第二,为了满足用户的期待,我们加快了软件发布的频率,而双方的高效互动让我们彼此找到了共同促进的节奏。对于闭源软件来说,三个月、半年,甚至一年发布一个版本都是很常见的。但是开源的世界不容懈怠,你必须对用户的反馈做出快速的回应,必须满足用户的期待。

和FIT2CLOUD飞致云旗下的JumpServer、MeterSphere等开源项目一样,DataEase项目也保持着每月一个版本的发布频率。这可以说是我们与开源社区用户交互的一种“约定”。

要打造一款成功的开源产品,就需要给用户以强大的信心。而保持快速、稳定的迭代周期,正是我们向社区用户传递信心的方式。有些功能即便当前的版本不满足、有缺陷,但是项目本身能够用自己的迭代节奏去优化和弥补,我们也从这一过程中坚定了自己做好产品的信念。这种不断强化的信念感是在闭源软件的世界里体会不到的。

第三,研发团队直面用户让我们的成就感和挫败感都来得更直接。在开发云管平台这款产品时,虽然它的应用场景是在云的环境中,但是软件的研发和交付方式却是相对传统的。在这款软件开发的早期,我们会直接与用户沟通需求,但是随着用户数量的增多和使用场景的千差万别,软件产品的研发和软件产品的交付会在两个组织内展开。其中,研发团队专注于通用功能的演进和优化,而交付团队则会深入理解用户的具体需要,并在通用软件落地企业环境的过程中辅以客制化的功能实现。

在这种模式下,研发团队并不会和使用软件的用户进行深入的沟通,对于产品的改进更多的是从交付团队获取反馈。而当软件在一些客户的环境中获得了成功的使用,例如帮助用户节省了大量的计算资源,或者帮助用户大幅度地提升了IT资源交付的效率,研发团队所收获的喜悦可能远不如交付团队那么多。我们深知,我们所开发的通用软件能够成功地被用户所使用,有赖于交付团队与用户在需求面的大量对接,以及交付团队在功能面对于软件产品的完善和补充。

开源的世界则截然不同。DataEase这款软件的亮点和短板我们第一时间就能够从用户侧获取反馈。这其中有很多的鼓励与期待,也不乏抱怨和吐槽。当用户提及DataEase与之前所使用的闭源产品相比较的优点时,我们感到非常开心。而用户在社区交流中所表达的负面情绪,我们也能欣然接受。社区用户对项目表达负面情绪,也可以理解为一种期待。通常情况下,在社区群中提出负面反馈的用户或多或少都会给我们的产品设计提供一些思路,我们也会尝试去理解和识别。

如果说闭源的世界是一面湖水,那么开源的世界就是一条奔涌的河流。

在开发云管平台软件时,版本发布的间隔时间会比较长,很长的一段时间内产品的功能、架构都是固定的。当这款软件经过足够长时间的迭代,其形态会进一步固化,而开源软件似乎总是处在变化之中。因为用户的需求是动态变化的,同时产品的Bug也需要及时修复。所以除了每个月发布的版本,我们也会根据需要发布小版本。可以说开源软件是被整个社区推动着进步,用户的需求便是其蓬勃成长的沃土。两者之间是“独自成长”和“开放成长”的区别,开源让软件产品拥有了更多的可能性。

前面谈的都是闭源与开源的话题,最后来谈谈我们为什么要用开源的方式来开发DataEase这款数据可视化工具。原因有两个:

首先,创立DataEase项目出于一家软件公司自身的需求。FIT2CLOUD飞致云旗下的CloudExplorer多云管理平台、JumpServer开源堡垒机、MeterSphere开源持续测试平台等软件在运营的过程中都会产生大量的数据,同时这些软件拥有大量的用户群体,用户普遍具有将这些数据进行可视化展示的实际需求;

其次,数据可视化市场广阔。作为一种跨领域、跨平台的产品,数据可视化软件具有强大的通用性,受众群体广泛,可以说是人人需要。如此庞大的市场发展了数十年,孕育了众多优秀的软件产品,通过开源模式进行研发和交付的软件却很少。我们尝试去用先进的设计思路、开源的软件分发方式,以灵活的软件架构去打造一款数据可视化平台,不断向先行者学习,根据用户需求持续改进,相信在红海中DataEase项目也能找到自己的市场空间。

FIT2CLOUD飞致云在2021年提出了一个口号——“广阔天地,大有作为”。无论是开源,还是数据可视化,对于DataEase项目来说都是一番广阔天地,我们会努力在其中有所作为。