开源社·JINA 肖涵 线下分享

pic

活动链接:【Meet up 来了】对话 Jina AI CEO——从开源大牛到商业新星

演讲者简介

非官方消息,我自己查的

会议内容

演讲标题

开源的核心竞争力是什么?

核心竞争力:速度

3 个速度:研发速度、分发速度、接纳速度

  1. 研发速度
    分层设计提升项目的 capacity。 -> 容纳量,即工程师人数。
    • 新的(内外)开发者能快速进入
    • 保证大规模重构能分层进行,上层 API 重构不会影响下层 API 执行
    • 精准调整公有私有 API

    降低 Time-to-Merge
    • 主观 - 文化:
      • 培养主人翁意识,不到 Master 不算 Done
        指作为贡献者,一个 PR 什么时候结束?不是 commited,不是 pulled judging,而是被 merged 才算结束。
      • 加强决策意识,控制 PR 的生命周期
        理性认识到一个 PR,3 天内要么 Bump 要么 Merged,加快 Code Review 速度。
      • 精简 Code Review 规范
    • 客观 - 技术:
      • 使用 Bot 等自动化工具让 Review 集中在逻辑上。

    协同社区分摊研发成本
    举例:Jina 升级需要兼容 Python 3.9,但上层依赖版本就不支持新版本,因此需要社区完成上层依赖的升级适配工作。
  2. 分发速度(略讲)
    指产品从生产者到使用者的速度。例如 Jina 的 CI pipeline。
  3. 接纳速度(重要)
    1. 耐心,对新人开发不要炫技,容易劝退新手。
    2. README 建设
      README、文档和社区的区别:
      1. README:5 分钟之内抓住第一次来访者
      2. 文档 & 教程(tutorials):一周内转化小白成为初级用户
      3. 社区:通过激励和互动,留存培养中高级用户

      区分 文档教程 不一样。


      API 文档:作用主要是查询,类似字典功能(来源为 Docs 生成) Tutorials 教程:指自然语言书写的入门指南
      在腾讯的经验:
      1. Why
      2. Get Started
      3. Examples
      4. Docs
      5. Contributition
      6. Help
      • 首屏原则

        一进页面就能看到 README,甚至不需要往下滚动页面,在首屏最快速度抓住第一次来访者。

      • 国际化

        开源一定要做国际化,必须有外语文档。

      • Reward 原则

        要有 Reward 机制,例如把 contributor 头像贴在 readme 里

      • README as Code (CI/CD)

        要像维护 Code 一样维护 Readme,甚至可以用自动化工具 CICD。

      1. 社区发育
      • 鼓励 Self-service 创造内循环
        举例:社区中提出一个问题,作为创建者不需要立即回答,让那些核心 contributor 去回答,创建社区文化的内循环。
      • 奖励积极者 Gift Culture in OSS
      • 果断维护社区规则(Code of Conduct)
      • 创造同步沟通机会(All hands)
      1. 衡量指标
        如何判断接纳速度得到优化?
        在团队人数不变的情况下,社区是否呈现指数增长。(相对于线性增长而言)
  4. Two More Things...
    • 避免内卷:虽然做 Refator,但对项目本身没有帮助。方向要向上而不是向内。有时需要些独裁决定项目的方向。
    • 期望管理:创建者、用户、社区对产品的愿景。

提问环节

  1. 企业开源和社区开源有什么区别?
    企业缺乏紧迫感:非开源原生企业,没有生存的紧迫性,因为本身有产业不需要基金会。
    社区:靠这个吃饭的,有紧迫感,搜罗各种手段去增强。
  2. 紧迫感会不会破坏社区氛围?
    紧迫感指的是社区的责任感,决策要快,因为不仅要维持产品的迭代,还要养活别人吃饭
  3. 如何把这种紧迫感传递到社区其他人身上?
    认同感;说服社区里的每一个人。聚拢核心开发者。
  4. 投资人为什么会来到开源领域?
    mongodb elastic-search 第一批 价值已经可以支撑投资。
  5. 怎么让自己的软件吸引投资方?
    残酷的事实:开源已经不是理想主义的东西了。。包上了资本主义的。。
    技术的眼界要放开,用资本帮助创业开发者成长。
    如果初期有钱,可能会用于接纳速度(推广)上
  6. JINA 公司怎么变现?
    JINA:open-core,核心开放,周边付费 例如 linux 培训,周边物品收费。
    部分 SASS 公司:付费的核心服务,边缘服务开放(与上面相反)
    另,Tech lead 转变为 organization lead:软件架构会影响公司组织架构。
  7. JINA 的国际化
    开源是 异步分布式开发,招能接受这种的人。

以下为网友提问

  1. 为什么 Nertual Search 2.0 的时候实现指数增长了?
    做了分层。分层设计有好处也有弊端,1.0 对开发者来说 不知道从哪切入。(过于炫技)
    2.0 做了文档和教程的分层。有了清晰的入门指南。
  2. 开源层级中的几层中有些人贡献层级高 有些贡献层级低,如何看待?
    正是我们所需要的!typo 这种就是入门。
    当有人提出修改高阶 api 的时候,这种人员就可以挖进来了
  3. 开源以什么为持续?
    企业咨询、定制化:并不可持续,只能短暂盈利。
    早期获取用户可以,主要是为了获得案例,最终做成通用层的标准化。standardable
    定制化 打磨产品、探索经验
    软件资产化
  4. 怎么宣传推广(布道)
    社交媒体,线上线下活动等 开源社 关键在于分享内容,要把大家说服,foundation 建立技术上的信任

作为参会者的心得

概括的说讲的很实在,作为开源新手十分有启发。演讲者不是那种看起来很售前工程师的感觉,他是真的在讲自己的代码所带来的一系列思考,是踏实务实的演讲。

让我认识到了商业化开源的大概总体运行逻辑。另外探讨了部分技术相关问题,比如迁移学习对于深度学习的重要意义。因为自监督学习只能从集合学习到子集( A -> A* ),但迁移学习可以从其他数据中得到不在数据中的结果。( A -> B )

另外就是从如何写好 readme 这开源的第一门课到如何运行维护一个社区这个层级的各切面问题。