在祁宁家里,有一套完整的赛车模拟器,他甚至还请人到国外代购了最新的 VR 设备。作为沉浸式赛车游戏发烧友,除了享受速度与激情带来的愉悦感,祁宁在玩的过程中更多的是思考如何将技术能力进行产品化的问题。
Answer.dev 就是将技术问答社区能力提炼而成的产品,也是祁宁深度思考的一个成果。
开源问答社区软件 Answer.dev 于 2022 年 10 月 24 日在 GitHub 上线,发布后就在 GitHub Tending 上持续霸榜了一周左右,不到一个月就拿到了逾 4,000 个 Star,四个月内收获的 Star 数更是超过 6,300 个。
需要补充说明的是,Star 数是 GitHub 上最直接的热度指标,意味着该开源项目对开发者的吸引和关注程度,体现了该项目的流行程度。
Answer.dev 在 GitHub 上的受欢迎程度,远远超出了其创始人祁宁的预期。在国内开发者的印象中,祁宁更为人熟知的身份是 SegmentFault 思否(下称「思否」)联合创始人兼 CTO——同样为人所熟悉的还有他的网名昵称 joyqi 。创办于 2012 年的思否,是目前中文领域最大的编程问答交流社区平台,累计注册开发者用户近 700 万。在思否 10 余年的发展中,祁宁积累了大量问答社区领域的经验和资源。
近年来,不少 B 端企业用户向祁宁提出需求:能否帮助搭建企业自己的问答社区,或者协助建设类似思否这样的企业社区。当时,囿于商业运营条件等限制,祁宁和思否团队很难去响应这样的需求,只能提议对方在思否建一个专区或子站。但实际上,企业的需求此时并没有被完全满足,因为客户希望能自定义社区内容,自主掌控数据,而不是「寄居」于一个公共社区之下。
于是,祁宁和思否团队一直都在思考:能不能将思否在问答社区领域多年沉淀下来的能力完全开放出来呢?最好的状态就是做成一个开源项目让所有人都能使用,也就是将思否的技术问答社区形态转化为一个软件产品。
直到 2022 年 5 月,研发管理平台 ONES 完成对思否的收购后,祁宁及思否团队得以将输出问答社区能力的「夙愿」变成现实。「ONES 是一家对市场和商业化都有深刻理解的软件公司,对于将问答社区能力产品化,ONES 给予了思否很多灵感。」祁宁说,开发 Answer.dev 相当于颠覆了思否的商业模式——之前思否是一个社区公司,主要通过广告服务来盈利;如今,思否变成了一家开源商业公司和软件公司,提供的是软件产品,「我们开始用社区来驱动开发,跟我们此前的驱动方式完全不一样。」
然而,祁宁又说:「思否和 Answer.dev 两者最终要做的事情其实没区别,归根到底还是做一个社区。」在他看来,开发 Answer.dev 的目标是把社区当作一个产品来使用,具体就是,一个商业软件公司把自己的代码免费让其他人使用。建立一个真正以开发者为中心的开源社区,用社区的力量去推动项目开发,这是思否和 Answer.dev 共同的目标和使命。
Answer.dev 于 2022 年 5 月正式立项,6 月初启动。为了赶在 10 月 24 日发布(「1024」被公认为是中国程序员节),9 月底就必须得交付内部预览版,所以,该项目的开发实际上只有不到三个月的时间。
在如此紧张的期限内,祁宁及其团队相继迎接了产品设计、技术选型、团队磨合以及研发管理等挑战,准时在「1024」发布了 Answer.dev 开源软件。尽管 Answer.dev 已经发布了一段时间,但祁宁并不止步于此,而是继续思考人工智能对问答社区软件的影响,以及探索如何融合和接入相关人工智能的应用——最近,祁宁的爸爸买了一款智能手表,但面对复杂的操作使用说明书一筹莫展,只好致电儿子祁宁求助。「未来人工智能可以天然地解决这个问题,哪怕是老人家也可以轻松地玩转各种电子产品。」祁宁如此畅想。
ONES:苏格拉底说:「人类最高级的智慧就是向自己或别人提问。」除了苏格拉底,莎士比亚、爱因斯坦、乔布斯等名人都擅长通过提问来寻找答案以追求创新,那么企业该如何利用 Answer.dev 来建立自己的问答社区,并沉淀高级智慧呢?
祁宁:
首先,Answer.dev 是易用的。我们的目标是:非专业人士或非程序员们也可以非常轻松地将它运行起来——当然,这可以是在我们的指导协助下或在文档的帮助下。目前,市面上的部分社区软件或开源产品,在运行时需要一些很专业的知识,比如配置、技术名词等。但在 Answer.dev 中,我们想面向的是一个更广大的人群,所以在产品设计及文档设计之初,我们更多考虑的是:如果用户是一个非专业人士,怎样才能很好地上手这个项目。
其次,Answer.dev 是一款开源软件。我们之前做互联网产品的创业,可能只会发布一个最终的产品,直接给用户用,或发布给特定的商业用户。而开源项目的话,就会把该项目的直接源代码开放出来,让所有程序员都可以看到源代码,然后可以参与到我们的项目中来。
最后,在设计之初,我们就将 Answer.dev 定位为一个国际化的项目。我们以国际化的标准来开发这个项目,包括后续的文档以及在代码中的注释,都是执行的国际化标准,其目的是希望它的受众足够广,各个国家和地区的程序员都可以以同样的标准参与进项目里,而不仅仅是面向中文的用户和开发者。
ONES:Answer.dev 的开发实际上只有不到三个月的时间。如何在这么短的时间内完成一个全新的项目开发?高效率的秘诀是什么?
祁宁:
据以往的开发流程,研发队伍通常会按照产品说明做项目研发。但对于 Answer.dev 这个项目,在研发的过程中会不断地迭代,在中间设置很多持续交付的节点。因此,按照这样的特点,我们对产品的交付流程做了改进。
正是基于这样的交付流程,我们采用了 ONES 研发管理平台。
首先,将功能模块全部按功能维度拆分,变成一个个子任务。也就是说,通过 ONES 平台整理项目,分批次地提取其中一部分的功能模块,按照功能组别将任务拆分成子任务,继而逐项落实,最后再监控其工时及完成情况。ONES 对项目进度状态的跟踪是很全面的。
然后,按周来设立里程碑——项目的启动为第一周,第二周是正式开始开发,接着,将周设为持续交付的节点,每个节点交付一部分功能模块。「1024」的前夜就是第 11 周的「最终节点」,该任务开发阶段的任务即终结,后面会进入产品迭代的过程。
期间,如果本周功能模块最终验证完成,那这一周的任务就完成了,还可在 ONES 上查看整体交付的百分比进度。我们每周会做定期检视,了解这周交付的内容有哪些问题,是否需要调整;如果需要调整,就规划到下一周的任务中去,这是个持续迭代的过程。
此外,ONES 对于各个角色及任务分配都很清晰,例如关注者、处理者、参与者等,各司其职,体现了高效协同的特点。
当然,每周任务进行时,我们必须紧盯总目标,才不会在每周执行时逐渐迷失、将总目标丢失,或做成了另外的项目。在任务排期或任务分配时,我们会以总目标为最高优先级来安排工作。
ONES:Answer.dev 项目采用的是前后端分离的方案,前端使用的是 React 技术栈,后端则是使用 Golang 编写。于此,你是如何进行技术选型的?对未来的技术趋势,你有哪些思考?
祁宁:
之前,思否的后端主要开发语言是 PHP,而 ONES 是 Golang。ONES 并购思否后,出于技术协同、系统互通的考虑,我们还是决定用同一套语言进行开发。
无论 Golang 还是 React,两者都已经是业界特定领域认可的标准。彼此在各自的领域都很稳定,从人才储备到各种工具链的建设上,都相当完善。当然,前端的技术变化可能更快一点,但是我觉得,相对来说,前端技术更新迭代不是那么麻烦,因为它其实是跟着用户的需求走的。
业界的先进技术,我们每个开发者都需要去定期跟踪。ChatGPT 横空出世,可以预见人工智能的发展会有很多颠覆,包括它的交互模式。例如,以后用户的界面会更加简单,人们直接和计算机交流,不需要太多的按钮或者复杂的界面。
ONES:你是如何理解以 ChatGPT 为起点的人工智能普及浪潮?
祁宁:
根据人们对 ChatGPT 的使用反馈,我们看到了人工智能的巨大潜力所在。ChatGPT 是计算机第一次在交互上能够对人的话语进行分析,并且能够理解更准确的指令,继而作出更准确的回应。
之前的工业革命是解放人的体力,让人不需要再用手工去做重复的体力劳动,而像 ChatGPT 这样的人工智能,解放的是人的思维。如今,我们从小学就开始学习知识,学习的时间很长,要学到 20 多岁甚至 30 多岁,才能开始做一些前沿性的研究。那么,当未来人工智能普及后,有没有可能将知识直接移植到我们大脑中来呢?就算不能,能否实现制作一个「知识共享的大脑」呢?这样一来,我们人类就不需要去耗能记住很多知识,需要的时候就直接取出来;而是把精力放在更多有创造性的东西——也就是解放了思维。
人工智能更深层次的应用被开发出来后,应该会推动社会的发展。但也不排除会带来一定程度的不确定性,因为人工智能或许会影响人类的思想,也可能会把我们社会带到一个不可知的地方去——我们人类对此不能掉以轻心。