How to Run an Open Source Project?


这里我们谈的开源项目是指CoX。CoX在整个CooCox战略布局中占有相当大的作用,如果CoX失势,CooCox平台 极有可能成为众多平台中的一个,顶多靠客户群占有一定的市场份额,而且这个市场份额会一直被挤压。

组件式开发方式,现在已经成为趋势,而且行业各个层次都已经认识到,包括ARM, 半导体,开发者。即使在互联网, 也是一样,比如Python, Ruby Gem, Node.js npm包,Java jar包,嵌入式行业的MDK 5, mbed, Freescale Process Export.

2014年以来,ARM CMSIS标准逐步发力,由点到面,逐步形成规模。

  • CMSIS-CORE
  • CMSIS-SVD
  • CMSIS-DSP
  • CMSIS-DAP
  • CMSIS-RTOS
  • CMSIS-DRIVER
  • CMSIS-PACK

ARM来势汹汹,半导体纷纷应对,开始出自己的标准,搭建自己的小生态,Freescale的Kinect SDK, ST Cube Library等等。

那么CoX是最初提出统一标准的,CoX何去何从?===> CoX VS CMSIS?

现在正是ARM与半导体角逐的时候,CoX还有发展的机会,要在CMSIS大面铺开前,占有一定的份额。

接下来,会从以下几个方面,分析:

  • 为什么CoX没有发展起来?他遇到了什么问题?
  • 分析下开源世界
  • 利用开源的思路来运营CoX

Why Open Source?

  • 雷锋精神,造福大众,人人为我,我为人人
  • 借鸡下蛋
    • 自己没技术,没精力,没资源(不足),发动大家一起帮着完成
    • Microsoft .NET Micro Framwork开源,那么多平台,Microsoft怎么能做的完
    • Eclipse基金会,Apache基金会都是类似的
  • 培养市场
    • 东西要有人用才有人买,把市场培养好了,自己就可以卖的更多
  • 市场手段
    • 打击竞争对手,比如金山开源金山卫士,IBM开源Eclipse打击Sun(Sun有一大块工具业务)

为什么要参与开源项目?

我觉得可能要分几类人:

  • 带有商业目的的(正在有使用价值的)
    • 这个开源项目,正应用在他的产品中
      • 不可避免的要遇到一些bug
      • 可能有一些Feature暂时官方不支持的,他提交做了
  • 纯的志愿者
    • 人人为我,我为人人
    • 想提升个人技术水平
    • 利用品牌知名度,提升成就感,荣誉感,成就感

很明显,第一部分,是核心的一部分,最好,把这一部分人也进行分类,给他们量身打造一个参与方案来。

怎么让社群参与进来?

  • 首先是推广,要让大家知道这个项目,而且是大家需要的一个项目
    • 网站
    • 官方微博,博客,利用各种媒体宣传
    • 招募志愿者
  • 打造开源社区必要的环境, 形成社区
    • 开源代码托管(Github)
    • Bug/Issue
    • 邮件论坛等沟通交流环境
    • Roadmap
    • 规范,不同的人怎么参与进来

CoX前面出什么问题了?

CooCox把CoX当作一个传统软件运营,定期发布版本,没有社群参与。

  • CoX做为一个HAL, 有点类似 JAVA, 一次编译,到处运行,单单靠CooCox这几号人,是很难实现的
  • 一个东西好与不好,只有真正检验过,才有结论,没有活跃的用户,提需求,反馈Bug是很危险的信号。

CoX要以一个开源项目去运行

CoX的用户有哪几类:

  • 半导体
    • 口号:基于CoX的Driver/App 都能在他家的芯片上运行
  • 开发者
    • 口号:无需到处学习芯片,掌握CoX, 打遍天下半导体,一次开发,到处运行
  • 中间件
    • 口号:无硬件平台差异,一次开发,到处运行
  • 开发板
    • 前提:开发者已经很喜欢CoX
  • 开发工具
    • 前提:CoX也有一定的影响力
    • 集成
    • 图形化动态生成代码
  • 志愿者
    • 无论是学习,雷锋精神贡献

怎么做:长或短说,

  • 推广,要让行业看到这个项目,更重要的是看到这个项目的更新
  • 社群,在一个开源项目很重要,关键是怎么营造出来,尤其是把行业中跟利益挂钩的角色发动起来。

Refrence