怎样在百度做网站打广告,东莞关键词排名提升,介绍自己的网页设计作品,雷州市网站建设我们在前两周的课程上#xff08;第一周、第二周#xff09;#xff0c;系统讲授了 FOSS 的课程内容#xff0c;第三周#xff0c;我们开始进入 COSS#xff08;商业开源#xff09;的部分。本导学班在调研全球开源教育与课程的基础上#xff0c;通过收集、整理、理解、… 我们在前两周的课程上第一周、第二周系统讲授了 FOSS 的课程内容第三周我们开始进入 COSS商业开源的部分。 本导学班在调研全球开源教育与课程的基础上通过收集、整理、理解、拓展国际最新的前沿开源课程采取众创的模式由 X-lab 核心开源研究的成员共同进行协作学习以最大效率的吸收国际前沿开源知识共创、共享、共进。本导学班以开源 FOSS 和开源 COSS 课程内容为基础结合自己的理解并进行适当拓展。 第三周的主要内容是讲述商业开源软件创业包括三大部分12个主题 软件行业。该部分的内容分为四个主题讲述首先是软件行业整体讲述其次是关于软件产品的内容再然后是关于软件供应商的内容最后是关于软件供应商以及相关公司的商业模式的主题。开源产业。这部分的大多数内容在 FOSS 课程里有提及不过这里更多的从商业的视角看待开源主要包括四个主题首先是介绍开源软件其次是介绍开源项目再然后是介绍商业开源最后介绍云服务策略。软件创业。该部分的内容是包括四个主题首先是软件创业的讲述其次是介绍研究与创业的联系与差别再然后介绍如何从大学衍生企业最后介绍初创公司的融资内容。 一、软件行业我们首先来看一下软件行业。 该部分内容将主要阐明什么是软件、软件行业是怎样的并回顾软件行业的历史然后讨论软件行业的主要参与角色。然后将简单介绍这个行业的主要产物——软件产品以及其运营相关服务最后讨论软件平台以及软件生态体系。 什么是软件从技术角度看软件就是一系列指令集可以是文本形式它可以被编译它的二进制指令可以指示计算机应该做什么。另外软件也是有很多组件组成的你把很多组件组合在一起以此可以形成更大的程序以及服务等。 从经济角度看软件也是一个数字产品是一种可以买卖的产品它是软件产业基础的重要组成部分。 软件几乎无处不在影响着生活、工作、学习的方方面面。 软件行业软件行业是为你提供软件产品、相关服务的所有商业的集合与软件相关的服务可能是不同类型的。它是高度集中化、高度国际化的有着强大的网络效应。人们可以对软件进行修改能够快速迭代创新。另外软件行业正在快速地向一些新的领域扩张。 软件行业通常被称为IT信息技术。如上图所示可以看到软件行业规模是巨大的并且还处于不断增长的过程中。 软件行业历史相比较其他行业而言软件行业并没有那么古老。“软件”这一个术语第一次提及是在1959年软件作为独立实体走进人们的视野是在1969年。那一年美国司法部宣布了一个具有里程碑纪念意义的事件就是把硬件和软件分离开来。在接下来的几十年里我们看到了软件的快速发展直至今天的云计算。我们看到不同的架构主导了这个行业以及产品是怎样分割并出售给用户的。 在 80 年代企业的最初想法是做纵向整合公司构建了一整套所谓的客户解决方案。 但是在90年代事情就发生变化了用户和客户不再喜欢原来的垂直集成也就是用户不再喜欢纵向整合的产品即所有东西都必须来自同一家供应商而是关注一些横向整合的解决方案。 但是在2000年的时候我们看到了开源软件的多元化以及开源软件的增长自2010年到2020年我们看到了云计算是如何吞噬世界的。这似乎是一种复古的潮流至少目前的开源软件的一部分遵从上世纪80年代的纵向整合。 主要参与者软件行业的主要参与者包括标准化产品提供商、软件咨询公司以及非盈利组织等。 标准化产品的供应商他们向市场出售标准化的产品。一部分是所谓的独立软件供应商它们为软件产品授予许可例如Microsoft, Oracle, SAP和Adobe一部分是云服务提供商有时被称为互联网公司例如AWS、Facebook。 软件咨询公司除了标准化的产品之外也包含一些定制化的内容。这其中包括了“开发服务公司”、“实施服务公司”他们根据用户需求进行软件产品定制。 非盈利组织这是带来规范和标准的某些组织。监管机构的主要职责就是监管市场通常这是一个政府机构和或者政府认证机构这些认证机构会定义一些认证项目这也通常是基于标准组织的相关输出来进行认证的。 软件产品这里从商业视角介绍软件行业的主要产物软件产品。 我们需要考虑软件产品将卖给谁是消费者2C还是企业客户2B如何定价消费者可能对价格敏感而企业可能需要的是一套解决方案用金钱换时间。产品总是针对每个用户群体设计的需要考虑产品的市场细分问题。另外消费者可能对产品的需求是开箱即用而企业可能会雇佣顾问来协助他们的工作。 软件平台软件产品通常分为应用程序与软件平台系统软件。 应用程序构建于软件平台之上软件平台赋予应用程序必要的功能。软件和软件平台是共生的。因为对于软件供应商来说如果他们想要快速进入市场构建高质量软件的话他们就需要这些软件平台。平台供应商也是需要这些软件的因为没有软件的话那么平台就毫无用处了那么就没有消费者会购买这个平台。 软件生态软件生态是参与者企业和个人、软件应用程序和组件及其在软件平台上和周围的关系和目标的总和。 软件平台要么成功要么失败。如果构建了一个工作高效、规模庞大的软件生态那么该软件平台一定会成功。 二、软件产品我们来看一下软件产品的内容。软件产品是数字产品例如软件、知识产权。它不是客观的实体具有无形性可以在市场上售卖给用户。 产品都是有一定产品的组成结构的。你可以从一个较低的起点创造一个产品。最初的产品就是我们所说的核心产品核心产品可以理解成MVP。之后核心产品会被扩展变成了基础产品最后会变成较为完整的产品。 知识产权我们先来看一下软件知识产权的内容。知识产权是关于人类在社会实践中创造的智力劳动成果的专有权利是所有权的一种特殊形式具有不可替代性、排他性等。也就是说知识产权就是排除他人使用你的知识产权的一种权利除非你放弃知识产权否则没人能使用你的知识产权。 在软件领域知识产权只有四种形式。第一种是版权。在软件领域版权通常意味着源代码。知识产权的第二个重要类别是就是专利。你可以为算法申请专利在专利申请注册之后如果没有你的授权其他任何人不能使用你的专利算法。除了版权和专利知识产权还包含商标。所有的商标都是独一无二的就像每一个公司或者产品都是与众不同的因为获取顾客信任的价值是无形的。最后就是商业机密这也是知识产权的一种存在形式。这是公司运行所需的交易秘密这些商业机密必须被很好的保护起来避免某些人将这些商业机密暴露给全世界。 核心产品核心产品可以理解为最小可行性产品是向顾客提供的产品的基本效用或利益核心产品可以解决客户的最核心诉求但是不一定好用。核心软件是消费者所安装的基本软件。就额外功能而言包括扩展和插件一些工具以及与其他软件的集成。所有软件都需要相关的文档以及材料。在消费者软件层面文档、材料必须准备齐全。 你可以提供某些自助服务比如邮件列表、为用户提供用于讨论的相关论坛还可以为用户提供在线培训这在某种意义上是可以保持低成本的。 核心软件要如何收费呢可以通过消费来设计收费结构可以考虑用户量、使用时间以及资源消耗。用户越多收费越高。软件使用的时间越久收费越高软件消耗资源越多收费越高。 基础产品基础产品以核心产品为基础进行了扩展易于使用同时可以提供一些支持服务用户体验更好。基础产品最基本的承诺是软件供应商所保证的软件可以实现基础的功能。当软件出现问题的时候供应商需要修复问题、解决问题如果问题长时间得不到解决供应商可能要支付一些罚金。基础产品可以保证软件在特定的用途中使用与特定的硬件兼容可以在特定操作环境下操作。 然后我们来看一下支持服务。全方位的支持意味着很多事情包括个人支持、热线电话或者网站等用户可以通过邮件进行聊天或者在论坛回复相关问题。关于支持服务的定价其实有很多方式例如支持的维度比如工作日支持服务24*7支持服务。然而有些公司并不要求这些常规收费他们会根据事故级别来进行收费。这就意味着客户一旦没有任何服务支持的合同客户要想获取支持服务就得出钱。在消费者领域这是最常见的。你或许不需要购买软件但是你一旦想要获取支持服务你就可以拨打热线电话寻求支持这个时候软件供应商就会根据你的咨询时长来扣除相应的费用。完整产品 完整软件是在基础软件的基础上进行拓展的添加了培训、服务咨询等内容。 关于软件的培训为企业提供培训、思考如何构造产品或者如何向客户提出价值主张这只是其中的一部分。你可以提供内部培训 也可以提供在线培训。你可以为培训定价可以按照人数或者根据企业的体量来定价。 如果你有一个企业产品的话服务咨询是一个挑战。消费者需要经常咨询定制你的产品你也要为消费者的相关需求进行产品的定制化。如果你的经验不足你可能需要咨询师来为你的产品实现定制化。有关咨询服务的定价无论是在公司内部还是由合伙人进行通常都与劳动力有关。这种劳动可能隐藏在员工在项目所花费的时间上。关于所花费时间的总量这可能会涉及一个固定的费用。 之后软件将作为服务进行提供。用户尝试访问供应商所提供的服务。你对其如何定价可以基于实际的消费定价可以以订阅费用的形式收费。 产品架构当一个产品被售卖的时候谁正在获取利益我们需要看一下产品架构来理解一下这个问题。 产品都是由不同的组件构建而成的你或许需要从软件提供商那里购买软件这样你就要付钱给软件提供商这些软件提供商最终会从你的收益中受益。在软件领域这些基本的组成部分需要被视为其他形式的知识产权。它可能是第三方组件库无论是免费获得比如该软件是开源的还是从软件提供商那里购买的该软件的获取都是基于版权。此外为了能被客户接受并进入市场软件产品必须遵守存储数据的各种标准可能是一种定制化的标准形式也可能是遵循专利服务的某种形式。一旦你满足并遵循了其他人的标准那么这必然涉及到你的软件许可。产品经理需要考虑产品的架构以及需要把握一下对于第三方平台的依赖。 我们需要思考一下谁拥有你所需要的这些软件这会促使你的购买决定。如果你决定购买你如何获得它它的成本是多少它在未来会如何变化还有其他选择吗如果你有其他选择这样你就还没有被锁定一旦你被锁定即100%完全依赖于某个软件提供商他将吃掉你的利润。 产品生命周期软件是具有生命周期的。一个基本软件的历程大致是出生、成长、成熟、衰退、死亡。 三、软件供应商接下来我们来看一下软件供应商软件供应商最终把软件产品推向了市场。 项目与产品公司我们先来看一下两类软件公司这两类公司的收费模式往往不同。以项目方式经营的软件咨询公司往往是一次性的项目收费一旦项目结束则把费用支付完毕而以产品方式经营的软件供应商提供标准化的商业软件在收取许可费后每年仍可能收取维护费用。 你可以看到第一年的项目收入要比单纯售卖软件许可赚的多但是随着时间的推移产品收入会不断增长这是基于软件的维护或者订阅费用。 你可能会想难道不是每个人都想成为软件供应商吗那么为什么有些人想创建商业咨询公司呢其实对于两者来说这两种角色都是有利有弊的。软件供应商如果把事做好那么就会有不错的收入事实也确实是这样因为被锁定的消费者不会轻易离开。但是他们在开始阶段还是很艰辛的首先你需要先获取软件这是需要前期投资的。并且这也并不能保证你能成功开发软件也并不能保证你所开发的软件能够真正满足客户和市场的需求也并不能保证你能在竞争激烈的销售环境中战胜竞争对手只有赢下消费者你才能赚钱。所以那么多的软件供应商、初创公司都失败了只有极少数的软件供应商存活下来了。 相比之下商业咨询公司就不是资本密集型企业了所以商业咨询公司很容易起步。你和你的几位朋友可以充当劳动力然后把时间出租出去以此来向消费者收费。商业咨询公司相比软件供应商简单一点儿因为你可能知道有多少人需要这个项目以及怎样向消费者收费。 业务功能现在我们来看一下软件供应商的各个业务功能。 构建产品需要开发、技术支持销售产品获取用户市场和产品管理携手并进才能获得成功。 产品经理在公司中负责软件产品管理。你可以对战略产品经理与技术产品经理进行区分战略产品经理更多地考虑市场、产品定位和合作伙伴等而技术产品经理则负责在细节上满足或理解客户需求并与工程团队进行沟通以此来正确实现这些需求。战略产品经理所做的事情就是探寻新的商业机会并为其制定预算并且他们为此商业机会定义了产品愿景。 对于开发人员公司中存在着不同的角色和称呼有一般的开发者、工程师有时候也有软件架构师。软件架构师主要是负责软件的架构设计需要确保软件的各个组件都能够协调使用。工程管理员对工程资源负责任他需要利用工程资源并且分配使用工程资源其中使用了不同的开发方式比如传统开发或者敏捷开发。 运营人员针对不同用户群体通过内容、渠道等营销推广产品并通过数据指标优化运营手段、产品功能和体验等。 技术服务支持需要帮助消费者正确使用产品一旦用户使用产品过程中遇到了什么问题技术、服务支持工程师以及管理者就会立即行动用户在使用产品中遇到了麻烦然后用户就去寻求支持期望产品服务提供商可以提供解决方案即为客户修复问题。 市场营销人员、市场经理想让市场了解自己的产品需要将产品推广到市场并建立品牌知名度推向市场的产品也可以是产品组合“将产品推向市场”的做法是为了获取消费者。 真正促成交易的人是销售人员。如果是技术产品类的销售人员你需要从技术层次上来了解产品所以有时候需要一个售前工程师去提前访问用户也可以和额外的销售人员销售管理员一同前往。所以销售人员就是帮助你获取客户的工作人员。 在软件供应商看来消费者完成购买这是一个成功的销售。但是消费者完成购买与消费者无障碍使用软件根本不是一回事儿。你需要确保你的客户购买了产品并实际使用而并不是购买了产品却不使用。这样的话当该消费者使用该软件的时候他们可能不知道如何使用他们很可能错误地使用了他们所以客户不满意他们可能就不用这个软件了。所以之前的销售成功只是一个前期的成功你需要帮助用户使用你的产品需要让他们满意这样客户就会留下来并且不断完成购买。这就是所谓的“筛选”提前放弃购买商品的用户是低潜质的消费者你所需要的是需要专业服务的消费者可能是需要一个功能也可能是需要一个服务。 提供专业服务是顾问或者项目经理做的事情有点类似于咨询部门他们帮助部署产品帮助管理咨询生态系统以及严格把控工作质量以此来更好地为消费者提供服务。 人力资源管理很重要招聘是一个很重要的过程当然财务部门在融资方面也很重要。 核心业务流程我们刚才讨论过了业务功能其中包含了不同的实践活动以及能力以及企业中不同人员所处的位置。接下来简单介绍一下核心业务流程包括构建产品获取用户操作产品为用户提供支持确保用户满意。 产品是产品经理、开发者、财务人员和人力资源的互动。产品是作为商品提供给市场被人们使用和消费并能满足人们某种需求的任何东西包括有形的物品、无形的服务、组织、观念或它们的组合。战略产品经理会去寻找商机。然后他们会将商机委派给技术产品经理技术产品经理负责技术的详细规格和要求。在销售方面你通过销售获得了收入。销售漏斗开始发挥作用销售漏斗就是“获取客户“的过程以及消费者所经历不同阶段的可视化展示。在最开始他们刚了解你的产品然后了解地越来越多直到最后如果他们最终还在那么他们就会买你的产品。 运营人员需要和开发还有技术支持人员进行联动。 客户支持就是用户的付费内容它们支付了订阅的费用技术、服务支持也是包含在订阅中的软件供应商需要对用户的需求快速做出反应。他们需要与开发和运维部门合作以防出现问题。 正如前面所讨论的那样如果用户购买了软件这并不意味着他们会立刻成为一个对产品满意的客户。相反还有很多步骤要做只有产品得到很好的使用用户才会满意。软件供应商需要积极主动地与客户交流以确保用户刚刚购买的产品确实在恰当地用着。在最开始用户购买软件确实可以帮助消费者实现商业目标。 四、商业模式现在我们来看看这些软件供应商的基本商业模型通常软件供应商都是从所谓的软件初创公司发展而来的。商业模式实际上描述了一个组织如何创造、交付和获取价值。 这部分内容虽然是有关商业模型的但真正要讨论的是商业模式画布BMC以及商业模式的不同组件。“价值创造”在左边此部分是用户为操作的产出付费在右边儿就是“价值获取”其将包含价值主张的产品推向市场并由此产生收益。该商业模式画布有9个不同的组件接下来详细看一下。 价值主张是关于某种东西对顾客的价值他们会买会为此付费但他们通常会将其转化为一种产品或服务。 我们来看一下BMC中的右边部分。细分市场是由相似客户组成的具有凝聚力的集群。在多方面的市场中你有多种类型的客户进一步细分为多个细分市场。所有细分市场共同构成整个市场。 你如何接触到客户呢如何将你的产品以一种合适的方式呈现到客户面前渠道这些渠道就是到达市场元素的具体方式。这些渠道之前都是物理上的、但现在更多的都是数字化的不同渠道之间是有差异的。它们是针对不同用途的渠道其中的一个用途就是与人交流。另一个渠道就是有效地卖产品。但是你把产品卖给他们之后渠道可能就变化了一旦你把产品卖给了消费者那么潜在客户就变成了实际客户。你仍然需要和这些客户保持联系所以你需要分发渠道。 你知道你的客户是谁你知道如何接触他们。那么现在你把你的产品卖给他们吗这意味着你正在和他们建立联系这不仅仅是最初的销售。一旦有人可能成为你的客户你应该先把东西卖给他们但是你又想和他们保持联系你和他们潜在地提升关系。所以这就是所谓的获取客户、留住客户、不流失客户、发展客户。 再来看一下“价值获取”方面的收入流。收入就是从消费者那里获取的收入即消费者所付的钱。我们会听到“收入来源”这个词这通常是指顾客购买产品然后这一过程就是收入来源。每个时间周期都有与收入来源相关的收入与支出随着时间的推移你就会从收入来源获取源源不断的收入。你就可以把这些收入聚集起来这不仅仅是一个用户或者产品。你从单一消费者身上赚钱然后再将商品推到市场中然后就可以对市场进行划分其实这都取决于你的收入流。只有通过收入流才能了解你的业务。 有时候你真的不知道你的业务上出现了什么变化所以在公司中你可能会有类似“商务智能”的东西这是公司自己的企业软件。这是一个可以分析你现金流的软件你可以深入了解到你在什么用户群体上赚钱你在哪些地方赚到了钱你赚到了多少钱所有这些分析都是由商业智能软件所完成的这样你才能了解到是什么在起作用在获取收入中什么没起作用 然后来看一下价值创造的部分先介绍一下关键伙伴。关键伙伴是那些在业务中支持你的人或者你与他们达成了某种交易。然后他们为你提供了某些东西这就有利于你为消费者创建“价值主张”所有你需要那些关键的合作伙伴。 除了合作伙伴以外还有关键资源的因素合作伙伴是能够独立行使权利的法人实体。而关键资源是无生命的所以在某种程度上没有办法界定资源是否违法。关键资源是一个重要的资产为你公司所需要你需要对资源进行差异化使用。资源有3种类别分别是材料包括有形材料以及无形知识产权、资本和劳动力。 接下来我们聊一下关键活动你需要将这些活动合理地安排。软件供应商初创公司应该并且也有能力去做的事情。对于软件供应商来说你应该掌握关键活动。如果你认为这件事情是重要的或者说是关键的那么你不应该将其外包出去。 最后来看一下成本结构理解它并建立商业模式你就可以对你的“价值创造”有所把握这也是商业模型的另一面。企业的成本结构就是操作费用以及扩展你的商业规模所需的花费这里将成本分为固定成本与可变成本。固定成本就是你即使没有生意也会存在的成本。如果你是一家初创公司你正在发展你的产品但是你的产品还没有准备好所以你没有顾客但是还是有成本的存在。但是一旦你有了新的客户就会产生额外的成本那么你就需要为这些计算资源付费。这就是可变成本每增加一个用户该成本就会增加。 五、开源软件我们来看一下开源软件将会从它的法律定义、历史、开源许可、遵循开源许可、开源治理、使用开源中的问题以及开源控制机制进行介绍。 法律定义 开源软件的前身是自由软件“自由软件”是在上个世纪的八、九十年代被定义的。并且开源软件是一个基本术语在90年代后。它同自由软件类似通过软件许可授予用户权利用户被允许使用、学习、修改、传播分发软件但同时也存在一些限制义务而这些明确权利与义务的开源许可具有法律效力。一般来讲开源软件许可通常需要满足OSIopen source initiative定义的10个标准。如果相应的软件在开源软件许可下是可获得的那么可以称该软件是一个开源软件。 开源历史在最开始当软件被创造出来的时候其被认为是独立的产物是独立于硬件的但是很少将软件认为是一种知识产权人们经常免费共享源代码因为源代码几乎没有任何的商业附加价值。在80年代公司认识到了软件的商业价值因此不再共享源代码。这使得Richard Stallman非常烦恼因此他决定通过创造自由软件来对抗“人们不再共享源代码”的趋势他创立了自由软件基金和以及GPL许可。 在90年代对于自由软件而言推广、传播自由软件的这个做法是关乎哲学的甚至是激进的因此开源计划应运而生这背后是实用主义者意识到了免费软件的价值但是这些实用主义者也不太想让哲学的相关理念围绕在这个协议许可家族上。他们建立了也提出了他们自己对开源的定义以及与此开源定义相匹配的许可证通常情况下不讨论著作权。在2000年专业化开源就出现了相关公司也应运而生了。现如今开源已经成为发展的主流而且开源已经向”云服务“靠拢。 开源许可现在我们来看一下开源许可。 开源许可通常要包含5块内容首先是版权声明其次是权利与义务的说明再然后是禁止条款最后是免责声明。 开源软件通常有两类使用方式一类是私人内部使用这时候无需关注开源许可的限制义务另一类是分发这时候需要履行开源许可所明确的义务。而这个义务通常也有两类一类是copyleft义务这通常要求再分发的软件遵循同样的许可例如上图的GPLv2许可另一类是法律声明义务这类要求相对较低不要求再分发的软件遵循同样的许可通常只需要提供基本的法律声明即可例如上图的MIT许可。 上图给出了开源许可的家族以及许可之间的兼容关系。 遵循开源许可 你开发的一个软件常常由不同的组件构成这些组件往往依赖大量的闭源或开源软件对于引入的所有开源软件需要根据其开源许可履行对应的义务。 开源治理 这里给出了开源治理的三个规则示例。 不要复制不确定许可的源代码到你的项目中不要复制以及引入copyleft许可的代码到你的项目中不要盲目信任开源组件所声称的许可不要将许可冲突的组件引入。 只使用宽松许可的开源组件使用一些受治理的代码库维护一个软件物料清单。 可以在引入代码时考虑上图这张表确定哪些可以引入哪些不能引入。 使用开源中的问题 使用开源软件时要确保清洁的知识产权、管理安全漏洞、管理软件的依赖。在上层建立业务时要确保对源代码的访问确保获得商标确保获得专利。 开源控制机制开源控制机制主要包括两块内容一是知识产权的控制二是社会领导地位的控制。 先来看一下如何控制知识产权。通过改变许可来控制版权通过撤回商标授权来控制商标通过专利收费来控制专利通过媒体来引导你的优势。 再来看一下如何控制社会领导地位。通过分离社区削弱别人的影响将不想要的人排除在项目之外来强化社会领导地位另外可以延迟或拒绝不想要的贡献或者领导整个项目的技术方向来保证自己的commit权利。 六、开源项目这部分内容讲开源项目讲依次介绍开源的过程定义与开源项目定义、项目社区、开源基金会、社区主导基金会、供应商主导基金会、用户主导基金会以及项目生命周期。 开源的过程定义与开源项目定义 开源是一种软件开发方法它利用了分布式同行评审的力量和过程的透明度。开源的承诺是更好的质量、更高的可靠性、更大的灵活性、更低的成本并结束掠夺性的供应商锁定。 这里定义的开源项目是开源软件 社区人。开源社区倡导开放协作平等主义任人唯贤等内容。 项目社区开源项目社区是从事开源项目的人员和公司的团体。 社区内部存在三种角色user、contributor、committer。user往往是项目的使用者能够反馈一些问题contributor则负责对一些功能的开发与bug的修复committer则对代码进行审查。 开源项目社区存在三种治理模型BDFL仁慈的独裁者模型这是一种分层治理模型例如Linux kernelpeer group这是一种同行评议模型有一群核心的人员负责项目治理例如PostgreSQLDo-ocracy这是一种民主模型所有人都可以向项目贡献代码甚至合入代码只要代码是得到认可的例如Tiki Wiki。 开源基金会 开源基金会是专门为支持开源软件项目而办的非营利性组织它通过为软件项目社区提供服务与支持实现价值为开发者提供了一个发现、使用、交流开源技术的平台。开源基金会能保护开发者免受法律诉讼为成员创造了一个公平、平等的环境它能够规范知识产权、市场营销渠道、产品研发路线等内容。 引入基金会后开源社区的角色有所扩展新扩展了PMC成员、PMC领导、基金会会员PMC成员协助项目管理PMC领导协调各个PMC基金会会员承担更多的任务包括教练、市场营销等。 社区主导基金会 以社区为主导的开源基金会是一个以自然人为主导的开源基金会。 供应商主导基金会 一个以供应商为主导的开源基金会主要由软件供应商领导共同开发产品的非差别化组件。供应商希望创建更强大、更具竞争力的生态系统增加收入、获取更多的客户等。 用户主导基金会 一个以用户为主导的开源基金会主要由软件用户公司领导以赞助/开发经营其业务所需的软件。用户需要摆脱或减少被单一供应商锁定的风险通过构建供应商生态系统符合用户的利益。 项目生命周期 同产品生命周期类似项目的生命周期也包含出生、成长、成熟、衰退和死亡这几个阶段。另一方面在各个阶段开源软件需要不断创新它们需要扩展到新的领域而不是固步自封。 七、商业开源接下来介绍一下商业开源。我们将会思考商业开源的定义三种核心商业模式的策略与模式包括单一供应商开源公司、开源经销商公司、服务支持公司。为了理解公司如何选择商业开源战略我们还需要看下该策略给公司不同业务功能所带来的效益。 商业开源的定义 商业开源软件首先是一种开源软件它被一个或多个软件供应商所发展以至于在该开源项目后面的公司可以间接获利。这个定义的关键在于开源软件本身因为开源许可证总是可以免费使用的所以你不能从中赚钱。你只能通过一些兼容性服务赚钱比如可以提供软件下载可以把软件放在磁盘上然后进行软件的分发。开源软件所产生的收入总是间接的可能是某些兼容性的东西在起作用。这就是我们的商业开源所面临的挑战。用户要为基本产品或完整产品付费这些产品由商业开源软件供应商提供但这并不是开源软件本身。 使用开源的策略来推动市场或者用户对于产品的接受这一方式即是“无摩擦分发”frictionless distribution。对于新用户来说进行这个推销还是很容易的但是之后客户必须先熟悉该软件才能开始使用该产品。开源软件与付费软件有很大的不同即使付费软件有免费的模式与开源软件还是有很大不同的。其中付费软件的免费模式可能是允许用户先免费使用三个月然后才会转为收费模式。一旦你建立了或者已经建立了这样的用户基础竞争对手就很难进入用户和潜在客户所在的市场这些用户就会成为你的收入来源。 我们将产品划分成了三个阶段分别是核心产品、基础产品、完整产品。我们可以看到商业开源供应商出售的实际上是基本的或完整的产品。软件供应商会卖给用户某些产品其中包含了满足用户需求的使用保证以及关于产品的培训及咨询操作。但是核心产品往往是开源的。 单一供应商开源公司 我们来探讨一下第一种商业开源模型这是三种商业开源软件模型中起主导作用的一个模型称之为单一软件开源供应商。单一供应商开源软件是一种商业开源软件并且其被单一的供应商所拥有与管理。其中只涉及一个开源软件供应商这就是所谓的单一开源软件供应商。 在单一供应商模式下关键是要弄清楚顾客在为什么付费可能是基础产品或者完整产品的附加功能商业版本而不是能免费获取的某些东西社区版本。 一般情况下选择使用社区版本软件的用户一般是更加在乎产品的价格而不是自己所要花费的时间这些用户宁可自己投入时间去发现问题、解决问题他们也不想去购买企业版本的软件。这点儿与企业是相反的企业用户可能也是从社区版入手但是企业更加注重时间以及产品的可靠性所以企业用户对于软件的额外功能以及供应商对软件的操作支持企业用户愿意花钱买这些服务、功能。企业客户也可能需要软件额外的特性这样我们就可以将一个免费的企业用户变成一个付费用户。 另外对于公司内部的IT部门他们可能会说我们不会使用这个开源软件我们将要购买这个软件的商业版本因为我们想要获取到支持。我们想要在某个时间给某人打电话能解决问题IT部门经常需要专业的支持并且对于这部分商业支持也是有预算的。 对于单一供应商的开源公司来说保持版权、知识产权的单一所有者是重要的。但是因为这个软件是免费的开源软件您可能会收到用户的PR这些用户要求将他们的更改合并到你的代码中这时候他们会获得对于潜在贡献的所有版权因此有些产品的新功能需要社区成员将版权转移给公司以保证公司对于知识产权的100%所有权。 开源经销商公司 开源发行版是一个集成良好的开源组件和应用程序的集合。开源经销商公司是指将开源发行版作为产品或服务提供的公司。 同样开源经销商也将产品分成社区版本与商业版本。 经销商没有代码的版权但是经销商掌握着各种知识比如软件、 服务如何整合? 如何从组件中构建服务? 如何配置并使这些组件兼容以便它们能很好地一起工作? 如何回应用户的请求? 以及如何测试整个过程? 除此之外还有一些东西比如经销商所拥有的组件以及独特和专有的知识产权。 服务支持公司 开源服务和支持公司是一家为社区开源软件提供服务和支持的咨询公司。在这个领域不会有哪一个商业咨询服务公司占主导地位。公司的committer或者他们所雇佣的committer以及他们所赚取的收入通常与劳动力成比例这些劳动力是那些被雇佣过来为消费者提供服务的人。另外这些咨询公司使得开源是可持续发展的因为他们对商业所基于的开源项目做出了贡献。 公司开源背后的商业动机 商业公司的开源战略背后究竟隐藏着什么原因 开源对于公司的商业模式的各个方面都有一定的好处。在市场营销方面能够更广泛、更快、更便宜地产生潜在客户。在销售方面能够更有效地销售。在业务发展方面能够更好地发现合作伙伴机会。在产品管理方面能够更快更好地确定市场需求。在软件开发方面能够以更低的成本更快地生产出优质产品。在产品支持方面能够支持得更好更便宜。 八、云服务策略这部分内容来介绍商业开源中的云服务策略。我们首先要讨论功能差异化的想法如何将用户转化为付费客户。这将涉及很多不同的细化策略。然后我们将看看在过去的时间里许多服务是如何转移到云中以及这意味着什么。最后将简单谈谈劳动经济学和单供应商的生命周期。 功能差异化 首先需要看一下功能的价值无差异的功能这是每个人都有的任何东西都可以随时使用但是这并不能够使你的产品和其他产品区别开来。如果用户选择了你的产品这意味着你正在做一些创新的、对你的用户有价值的事情。因此我们要适当地利用或捕捉这个价值识别用户有使用软件的原因。我们需要确定用户购买的理由是什么帮助进一步升级或转换用户为付费客户。 开放核心模型 开放的核心模型 IP 模块化的一种特殊形式其中的模块化部分都是软件部分开放核心是开放源码许可的软件然后是封闭带或封闭的扩展集封闭源码软件这些都是一个基本的软件的扩展与额外的功能某些客户需要但不是免费提供给他们的核心的基本功能是开放的但只要公司需要更多的高级功能他们中的一些人或所有的人将无法使用它因此你必须为它付费。因此开放的核心意味着像 IP 模块化一样的软件分割。 许可策略如果你想要成为一个唯一供应商并远离竞争的开源公司那么你应该是唯一可以多许可证的公司这将给你带来一个竞争优势你需要通过扩展开源许可来保持你的多重许可的权利如果你接受外界的贡献你需要通过贡献者协议的方式来约束这些贡献。 现在的贡献者协议让你有权利可以继续做产品的双重许可或多重许可。在商业开源特别是单供应商的开源公司至少有一个有开源许可证的核心软件作为开源商业许可证作为你卖给你的客户的商业版本的一部分那么问题来了我们应该使用哪种开源许可证? 这答案非常重要因为这是你保持竞争的方式假设你想用开源软件来对付你的竞争对手如果你让你的软件在一个开源许可证下可用如果它有一个复制许可条款那么竞争对手就不能在该软件上建立有自己的补充或扩展就像在开放的核心模式上它必须将这些扩展开放因此基本上通过使用 copyleft 许可开放源代码就能阻止你的竞争者。 这导致了不同的许可结构你会向付费客户提供商业许可下的软件而对于开源社区 你将在一个强大的版权许可下提供该软件如 GPLv2 或 AGPLv3即使用户只是通过网络服务使用该软件这也意味着软件在被分发。这里考虑两个产品类型的维度应用维度通常在开源许可证许可整个软件组件维度由于复制权的影响开发者并不买账可以通过 shims 中间层来保护并使用像 MIT 许可证这样宽松的许可。这些策略对于商业公司推广产品很有帮助。 云计算带来的挑战应用程序上云这是一个转变。但是开源软件与公有云的关系这两年有点紧张一个比较流行的观点是公有云插管吸血开源软件而对开源社区没有太多贡献。不少开源项目开始寻找在公有云面前保护自己的方法。毕竟公有云的出现一定程度上打乱了原有的开源商业模式。最终用户通过购买云服务从公有云服务商那里得到了保障开源厂商被绕开了。 商业开源供应商发明了一种新的许可类别称为源代码可用许可。这些供应商试图获得开源的好处并同时希望避免竞争因此来源可用的许可显然是歧视性的并未被认为是开源许可。 这个时候出现了从双重许可到三重许可的转变AGPL的增加使你的产品保持了开源的可信度更能够被开源爱好者和开发者接受同时提供的源码可用许可也能够避免竞争最终在赚钱的同时也实现了正确的开源世界。 控制机制的使用 在社区开放源码中传统的非组织的社区开放源码通常会采用有分布式的版权控制而基金会获得的版权可能会改变许可证。最有趣的是在基金会主导的开源项目中社会领导力总是像传统的社区项目一样是分布式的你会成为一个领导者是因为你通过努力工作赢得了它。在商业化的开源中贡献的开发者是公司的雇员公司拥有他们的工作成果他们以这种方式维护版权公司可以拿走开发者对代码库的贡献权。基本上在商业开放源码中一直是公司在运行和拥有既定的控制和指导机制。 劳动经济学劳动经济学是一个大词在这里讨论的是开发人员的职业。正如我们所知开发人员有一个路径他们可以从user开始成为contributorcommitter。如果它是一个基金会运行的项目他们甚至可能成为项目管理委员会PMC成员或领导者甚至可能是具有广泛监督和辅导责任的基金会成员。 从雇主角度看如果你是一个雇主你看到一个软件开发人员忙碌于开源 这对雇主来说意味着很多潜在的东西。 首先在招聘的讨论中雇主会看到你是一个有技术能力的人你在开源方面很活跃雇主可以看到你在公开场合写的代码这意味着他们可以在一般情况下验证你的技术能力。 在技术能力之外我们也需要认识到开源项目是社会系统有同行的存在如果他们接受你的贡献那么证实你的工作是好的你得到了同行的确认如果你能从贡献者变成提交者对雇主的暗示是 这个人和其他人相处得很好你的社会能力有一个同行的确认。如果你在一个开源项目中担任领导角色这也是同行对你的领导能力的确认所有这些都使你比一般人更有可能成为一个合格的未来雇员这就消除了招聘讨论中的不确定性。 最后如果你所从事的开源项目以及你或你的开发者在其中有权力和影响力的地位那么雇主当然可以利用这一点来引导他们自己对项目的贡献影响项目的方向等等将社区作为一种资源引导到雇主希望他们去的地方。 相反开发人员也可以谈判一个更好的位置谈判一个更高的薪水。例如潜在的新雇主可能有更好的工作保障和更丰富的工作经验所以成为一个成功的开源开发者对你的职业生涯有很多不同方面的好处。 单一供应商生命周期 在早期公司是作为一个单一的供应商开源公司有一个完整的和公平的开源平台在成长的几年里可能仍然是一个公平和全面的开源平台。但随着公司的成熟它将越来越多地转向闭源而这是为了转换或榨取市场价值。这是它的现实用户应该意识到这一点在开始转向闭源之前他们也许已经对用户提供了十年的开源软件的使用所以用户应该要学会理解和接受这种情形。 九、软件创业 这部分内容将介绍软件创业。我们将会从初创企业的定义创业的探索过程以及创业指标进行介绍。 初创企业定义 初创企业是一个寻找可行商业模式的组织而不是大公司的小版本。 初创公司会面对各种各样的风险不仅包括创新风险也包括市场风险。初创企业需要认准自身的定位评估自身可能遇到的风险。 创业的探索过程 创业的探索过程基于商业模式画布BMC来进行逐步探索。 探索过程中创业企业将面对三个挑战包括问题-解决方案匹配产品-市场匹配产品-渠道匹配。问题-解决方案匹配主要定义初期问题需要去发现一个潜在的与钱相关的问题并找到了解决办法。产品-市场匹配需要全面地考虑市场中可能会出现的问题随着规模范围的扩大将面临着产品以及产品价值主张的诸多问题需要探索关于这些问题的解决方案。产品-渠道匹配主要考虑商品销售的问题不仅设计理念上适合市场而且产品要以一种较为合适的方式呈现在了消费者面前。 在创业企业面对三个挑战的过程中有两个关键活动贯穿其中。一是基于商业模式画布构建假设二是对假设进行验证检验。对于基于商业模式画布的假设常常需要回答商业模式画布上各个要素的问题而对于假设验证检验常常需要设计合适的实验以及验证方式来获取洞察。 在解决三个挑战的探索过程中也伴随着商业模式画布的迭代有点类似敏捷开发的思想。每个阶段通过假设、实验、验证、洞察来选择继续发展还是调整策略。这些探索过程是高效的、低成本的因为你仅仅是投入了最少量的资金以及劳动力来提高资源效率你专注于迭代学习你不会扩大规模也不会尝试扩大规模。但是设计合理的探索过程需要一定的经验。 创业指标 在上述探索过程中常常需要考虑一些指标来评估。这里包括两类度量指标第一类是商业模式指标主要有客户终生价值与成本客户获取、留存、增长成本以及每年/每月的平均收入第二类是生存指标主要有现金流消耗率每月现金留存实现现金流平衡的时间。 十、研究与创业这部分内容介绍研究与创业将依次介绍大学中的研究与创业项目管理领导编程开源策略获取用户获取贡献这几部分主题。 研究与创业 在大学里研究与创业的目标不同存在一定的矛盾。研究的目标是产出研究报告或者论文而创业的目标是产出软件产品或者是创业企业。当然研究在某些情况下可以转化为创业成果。在这些情况下研究与创业的时间分配比例呈现出逐渐下降的趋势一开始研究的时间占主要部分待研究渐渐成熟创业的时间占了主要部分。 项目管理 在大学中的项目管理模式与开源社区的治理模式有些类似这里的solo funder模式对应开源治理的BDFL而peer group则直接对应。在这里研究人员是项目的管理者而教授往往是一个产品经理的角色。 领导编程 在大学里领导编程的往往是博士生而硕士生往往来进行协助。博士生定义功能分解任务分配给硕士生。硕士生公开讨论协助博士生分解任务。通常他们还会使用一些开发平台与工具例如Gitlab进行分布式协作。 开源策略 大学项目中的开源策略需要考虑哪些是重要的、哪些是不重要的。对于开源策略开源从两个维度考虑一个是开发过程是否开源是否将这个协作过程开源另一个是开源知识产权如何管理。大学与开源社区、单一供应商开源公司有所不同大学往往希望将大部分知识产权掌握在自己手中而且开发过程可能也是封闭的。 获取用户这部分内容与开源运营比较相关。 获取用户可以从四个方面考虑首先是被用户发现其次是激发用户的信任再然后是使产品变得易用让用户好上手最后是跟用户保持联系。 获取贡献 对于获取贡献需要考虑七部分内容分别是欢迎贡献者让贡献者贡献变得简单与贡献者有效沟通对贡献者代码审查让贡献者快速参与构建贡献者信任以及保护自身的知识产权。 十一、大学衍生企业这部分内容介绍大学衍生企业主要考虑软件创业将介绍从大学研究衍生出企业需要考虑的一些事情。 从大学衍生企业分为三个阶段首先是基础研究阶段然后是应用研究阶段最后是衍生阶段。在德国这三个阶段的资金来源都是来自学校。在衍生阶段之后是创业阶段真正建立企业这时候就有一些新的事情了。 从大学衍生企业创始人需要考虑软件知识产权管理这样方便将知识产权转移到初创企业中。这里可以考虑通过一些方式例如签订合同将学生贡献的代码等知识产权转移到学校后续初创企业就只需与学校打交道即可能够提升办事效率。 保证清洁的知识产权可以考虑三种情况一是提前获取知识产权通过付费或者贡献者协议等二是事后获取知识产权通过工作交流等三是针对对没有知识产权声明的文档通过确认信的方式获取。 从大学衍生企业转移知识产权需要满足大学的一些条件例如可能要求一次性购买知识产权或是分期购买又或者是大学共享股权的形式等。 十二、融资 从大学衍生企业之后创业企业需要考虑融资。 创业企业的资金来源可能有四部分一是来自公共部门的启动资金二是来自亲友或者机构的贷款三是来自天使投资者或是风险资本的投资四是来自其余机构这里创业公司可能已经承接了一些项目然后就有一些项目资金。 在融资过程中创业公司还需对企业自身进行估值有置换成本法、收入乘数法、贴现现金流法来进行评估。 此外创业公司融资之后企业内部存在不同的利益主体可能会存在利益冲突影响企业的经营管理。因此创业公司需要协调好各方的利益降低风险冲突。 以上就是第三周课程的总结。最后一周将是 OSPO开源项目管理办公室的部分小伙伴们不要错过欢迎加入我们本文为 X-lab开放实验室 原创文章遵循CC-BY 4.0协议转载请附上原文出处链接及本声明。文中部分图片源自https://nythesis.com