阅读更多

3顶
0踩

开源软件

转载新闻 开源的力量——破解GitHub的发展密码

2014-09-02 11:12 by 资深记者 rnifeasy 评论(3) 有5443人浏览

GitHub,一个共享虚拟主机服务,用于存放使用 Git 版本控制的软件代码和内容项目。它由 Chris Wanstrath、PJ Hyett 和 Tom Preston-Werne 用 Ruby on Rails 编写而成。

 

但是这项服务逐步演变成为了开源软件开发与管理的社区,其开放一切的梦想实现了软件开发的虚拟化。这股力量是强大的。成立 1 年之后不久公司就吸引了 10 万用户。2012 年 GitHub 获得了 A16Z 的 1 亿美元融资,表明了 VC 对该公司的信心。同年,GitHub 入选了福布斯评选的十大技术公司。

 

GitHub 只用了不到 4 年的时间就让库(repository,用于存放共享代码的历史版本)的数量到达 100 万。到了 2013 年 1 月,GitHub 用户达到 300 万,库数量达到了 490 万。而且显然还在以更快的速度增长,截止 2013 年 12 月,GitHub 的库数量突破了 1000 万,其中最近新增的 100 万是在 48 天内实现的。


GitHub的用户里面不乏大牌客户,包括 Amazon、Twitter、白宫等。Facebook 用 GitHub 来开发自己的漏洞跟踪工具、LinkedIn 用它来维护其 People You May Know(你可能认识的人)及 Skills & Endorsements(技能与推荐)功能。

 

那么 GitHub 是如何从一个自称的“业余项目”变成每周新增用户超过 1 万的全球最强大的软件开发工具的呢?

 

解决问题

 

说到 GitHub 不得不提 Git。这是 Linux 的创始人 Linus Torvalds 针对 Linux 内核开发而开发的一款版本控制工具。开发者迅速接受了 Git,因为它要比其他类似工具更快更强大。因此,算不上完美的 Git 被视为当时其他的版本控制软件的升级版。

 

而 Preston-Werner 注意到,尽管 Git 为令人头疼的协作问题的解决提供了可能,但是用 Git 来进行协作仍比较困难,这一观察导致了 GitHub 的诞生—一个通过 Git 解决协作问题的解决方案。

 

而 Chris Wanstrath 是这样解释的:

写道

开始时 GitHub 只是一个业余项目。在当地举行的一次开发会议结束之后,我和 Tom Preston-Werner 去了一个体育酒吧,他告诉了我做 Git 托管网站的想法。这个地方应该能够很方便地共享代码和学习 git,也即要成为一个 git 的集散地(git hub)。我们都很热爱 git,但是却没有可接受的方式来分享代码。所以我们做这个更多地是出于必要。Tom 认为我会对解决这个问题感兴趣的,的确如此。

GitHub自始至终都是作为问题的解决方案而存在的,网站成功不仅仅是因为它解决了最初的问题,还在于它在 Git 原来的功能基础之上添加了许多自己的功能。包括 forking(复制)、pull request(修改合并请求)及 merging(合并)等。

 

正如 Code School 的 Gregg Pollack 所述:在GitHub 之前,如果你希望为开源项目做贡献,你得人工下载项目源码,在本地做出自己的变更,创建一系列叫做“补丁”的变更清单,然后发电子邮件给项目维护者。维护者然后得对可能完全来自陌生人的补丁进行评估,然后再决定是否合并变更。

 

相比之下,GitHub 的“forking”功能可让用户复制任何一份公共库的内容到自己的账号上,然后基于此进行修改。用户随后还可以通过“pull request”将这些变更共享给库的所有人。如果所有人喜欢其做出的变更,就可以把那些变更合并进原来的库内。

 

这个新流程把之前进行软件协作时的一大堆开销和摩擦通通省掉了,取而代之的是无缝、可管理且可扩充的解决方案,每一个人都可以共享在 GitHub 上公开分享的项目,或为此做出贡献或进行扩展。

 

拥有私有账号和库的GitHub客户也可以在团队内部利用同样的功能,从而对自己的专有代码进行开发和管理。

 

网络效应+市场


 

上述功能特性吸引到最初的一批用户,然后又为其他开发者参与和加入创造了一个很有力的理由。在网络效应的推动下,这个天才的工程师中心和项目库每一天都在不断地吸引着新的用户。

 

GitHub 的这个独特优势也是他最强大的增长引擎。GitHUb 同时受到了网络效应和市场动态的推动。公司受益于两个独特且倍增式的增长驱动要素:网络效应吸引到更多的人和他们的代码,而不断增长的代码库又为那些给自己的项目找代码的人扮演了集市的角色。

 

这一双增长引擎的结果是两大资产的确立:

 

  1. Web 上计算机工程师最重要且最具活力的社交网络
  2. 为那些替自己的项目寻找代码素材人准备的大规模的代码库

这两大资产为其自身发展提供了持续的动力。新用户通过多种渠道被源源不断地吸引进来:如代码搜索、现有 GitHub 用户的邀请、或者通过开源项目的协作等。

 

GitHub 被称为是“代码样例的亚历山大图书馆”,如 Preston-Werner 所述:

写道
网络效应太出色了。现在有了基于 GitHub 的标准,每个人都可以建新项目,然后马上知道去哪里找代码,如何给开发做贡献,如何审核代码,如何提交问题给代码库…做这些事情的人越多,效应就越强大, 从这个统一、知名、规范的系统中得到的东西就越多。而且这一切发生得实在是太快了。

这是一种最好的网络效应,上 GitHub 的人越多,GitHub 上的项目就越多,它对每个人的价值也就越大。

 

随着 GitHub 成为许多开发者和公司事实上的标准,那里逐渐汇聚了最伟大的编程思想,让众人合力开发东西,GitHub 不仅促进了这一切,还把过程记录下来供他人观瞻。GitHub 的档案跟踪了用户对网站上的项目作出的贡献。一旦用户提交了 pull request,项目经理就会像了解简历一样评估该用户的档案。如果补丁获得接受,那么该用户的档案上又会增加一项荣誉。

 

GitHub 的网络效应是充满活力的,因为每一个新用户—无论是个人或者公司,都有可能带来更多的新用户。公司一旦决定加入,有可能就会把整个团队都带了进来,或者反过来,热爱 GitHub 的个人也会把整个团队都吸引到该平台上来。

 

网络效应还会吸引那些希望与 GitHub 上的开发者共事的人进来。技术营销人员和其他的专业人士现在利用 GitHub 作为接触开发者的手段,这里的一切都是开源的,信息开源、书也开源,还有人把平台当作写博客的工具。这些用途都超出了原来 GitHub 的用例范围,但却帮助了平台的推广并形成一个不断发展的网络。

 

口口相传

 

除了网络效应和市场这两个驱动力以外,GitHub 的增长还部分得益于口口相传。要想实现口碑营销并不是增加“转发”和“喜欢”按钮那么简单。相反,好口碑靠的是内容、体贴、解决问题还有易用—换句话说,产品和服务的体验才是关键

 

GitHub 的口碑来自它给人带来的惊喜和愉悦,而这些带给人的惊喜,不是说出来的,而是做出来的。说得好不如做得好,而带给人的惊喜会使人自愿为 GitHub 代盐。

 

口口相传的另一个关键驱动是“超级粉丝”,这些人不仅喜欢产品,而且也是最忠实的公众支持者或批评者,在台上台下帮助你渡过难关。而产品或服务获得口碑的关键,正在于它能带来惊喜、带来快乐,能有所帮助。

 

免费增值

跟 Evernote 一样,免费增值也是 GitHub 的一个重要的增长因子。虽然 GitHub 协作、民主化的开发哲学需要免费才能让大家使用,但 GitHub 的创始人从一开始就清醒地意识到,就其本质而言,这项服务是要耗钱的。

 

如 Wanstrath 指出那样:

写道
Tom(Preston-Werner)在自己的上一家创业公司 Gravatar 学到的一件事情是,免费提供资源密集型服务是亏本生意。Gravatar 的图片托管很耗流量,而 GitHub 托管 git 需要保存和传输代码,这也是非常耗钱的。我们需要收回这些成本。

幸运的是,GitHub 免费的测试版的推出让它无意间走到了免费增值模式。GitHub 的许多用户一开始都是出于免费在上面搭建自己的公共或私有库的,但久而久之,越来越多的人也开始用它来管理自己的商业代码。

然后那些人开始发邮件给 GitHub 主动问管理自己的私有库应该怎么付钱。创始人们开始意识到,除了收回成本以外也许他们还可以做得更多—把它做成一门生意。于是他们决定,一方面继续免费提 供无限制的公共库,但是私有库则要付费。既然人家都想给你钱了,怎么好意思不要呢?

 

GitHub 现在的定价模式就是这么来的—公共项目免费,私有项目收费,个人 7 美元 / 月,组织则是 25 美元 / 月。此外,还有年费达数百万美元的企业级服务,像洛克希德马丁、微软、LivingSocial、VMware 及沃尔玛等都是其客户。

 

一般而言,免费增值模式都会碰到一个问题,即通常给不出具有吸引力的让用户从免费升级到付费的理由。而 GitHub 的免费增值模式则避免了这个问题。如果你渴望使用 GitHub 的工具,但又不想别人看到你的东西,那么切换到付费套餐就成为了那些希望使用 GitHub 的公司的自然之选。

 

开源冠军




GitHub 的协作架构不仅令在现有开源项目基础上开展工作变得更加容易,对于开源新项目来说也是如此。公司和个人现在可以把自己之前不公开的项目开放出来,然后让社区的人帮助改进。

这一变化的影响是非常大。如果公司希望开源某个项目,就会面临前面提到过的那些版本控制和补丁问题。在时间和带宽有限的情况下,大多数公司都不 愿为了开源带来的机遇而投入所需的时间和资源。有了 GitHub 以后,这些公司开源自己的项目变得容易多了。补丁管理、版本控制以及代码托管等麻烦事通通都交给 GitHub 处理掉了。

 

这一点导致了一系列颇具知名度的项目开源化,包括 Twitter 的 Bootstrap、Zurb 的 Ink,社区的人可以免费使用这些东西,项目本身也不断得到改进。GitHub 为这些公司提供了一个此前无法做到的回馈社区的手段,从而以一种有意义的方式推动着开源运动的发展。

 

注:此文编译自Morgan Brown 的文章(节选自《Growth Engines: Case Studies of How Today‘s Most Successful Startups Unlock Extraordinary Growth》),是书中用来阐述指数式增长的十大案例之一。

  • 大小: 28.7 KB
  • 大小: 52.5 KB
  • 大小: 60.7 KB
来自: 36氪
3
0
评论 共 3 条 请登录后发表评论
3 楼 txlong_onz 2014-09-16 11:16
liuyuhua0066 写道
这里推广下红薯的 git@osc

现在GitHub又没有被墙,不太清楚为什么要用这个复制品,并且也没有GitHub财大气粗,现在OSChina还没有找到好的盈利模式来维持git@osc,不知道能发展到哪里,可能大家会说早晚会向Twitter和Facebook一样被墙的,我也不说啥了。我只想说OSChina我一向很看好(相比CSDN万年不变,杂乱无重心),但是这种复制别人的成功在国内不一定能成功,这和Twtter和Facebook有不一样,不太可能被墙,衷心希望OSchina越来越好。
2 楼 liuyuhua0066 2014-09-04 16:26
这里推广下红薯的 git@osc
1 楼 damoqiongqiu 2014-09-04 13:04
不错,已阅。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Visual InterDev基本操作

    ASP网站开发工具Visual InterDev基本操作

  • 关于Visual InterDev 6.0 调试ASP工程的个人方法。

    关于Visual InterDev 6.0 调试ASP工程的个人方法。2004-12-1 苗涛运行环境: Winxp+Sp2,Visual Studio 6.0+ Sp6 参考: Microsoft MSDN在安装或升级到 Windows XP 后,Visual InterDev 6.0 Active Server Page (ASP) 调试可能无法正常运行,并且您可能会遇到以下问

  • Programming Microsoft Visual InterDev 6.0

    "Once every five years or so, a software development tool comes along that completely revolutionizes the way software applications are constructed. Some recent examples include Lotus Notes for groupware and PowerBuilder and Visual Basic for client-server applications. These products offer unique features that allow developers to create complex applications quickly and easily using an Integrated Development Environment—they are the tools that spring to mind when you think of groupware or client-server software.

  • visual interdev 6.0 程序员指南

    visual interdev 6.0 程序员指南visual interdev 6.0 程序员指南

  • Visual InterDev基本操作(HTML)

    一个介绍Visual InterDev基本操作的教程,从基本知识讲起,介绍了Visual InterDev基本操作及应用技巧。

  • 如何调试ASP代码

    环境工具:Visual studio 2008/2005IIS 6.0  调试步骤如下:  (1) IIS启用调试 1.     计算机管理->服务和应用程序->Internet信息服务->网站->默认网站->属性2.     主目录->应用程序配置->调试3.     启用ASP服务器脚本调试(2)在需要中断调试的ASP脚本行里添加一行stop(3

  • InterDev调试asp页面和自定义activex all

    正在做一项目,将以前asp+dll的项目转成asp.net的,所有的业务逻辑都需要从原来的asp代码中去找。所以就用到了调试asp的工具InterDev和调试dll的VB1、讲自定义的dll的给反注册掉。(以便系统运行的是VB调试的dll)2、启动VB,设置相应的断点,按F5运行。3、运行你的asp程序。4、启动InterDev,附加w3wp.exe进程(我的是IIS 6.0+ asp.net 2...

  • 用IIS调试ASP(原创)

    用IIS调试ASP(原创)经常看到网友提出 HTTP 500错误, 不知错误在哪里, 现提供一个简便的办法.前提: 1.设定IIS的相应要调试的站点, 在其 站点属性 => 主目录 => 配置 => 应用程序调试 栏中, 确保 发送详细 ASP 错误消息给客户(S) 一项被选中.2. IE 设置 Internet 选项 => 高级 => 去掉 显示友好 HTTP 错误信息当出现

  • 浅谈Asp程序的编写和调试——给初学者

    浅谈Asp程序的编写和调试——给初学者【廖家远】 于 2000-07-28 20:47:52 加贴在 Joy ASP ↑:    很多朋友觉得Asp不是很好学,我觉得其实有了一定的编程基础,再加上那么一点点技巧,入门是不难的(不过要做好也不是很容易,要很多的相关知识——什么Sql Server数据库语言啦,数据结构啦(这些都是在优化Asp的算法时候要熟悉的)。    在

  • 简单配置IIS、ASP及问题调试

    环境:windows server2008 r2, IIS7.5 目的仅仅是让ASP在IIS上跑起来,安全性暂时不做考虑。 安装IIS的教程一搜一大堆,不写了,安装IIS的时候,感觉有用的全勾上,以后可以慢慢细细扣。 把代码扔在服务器上,发现显示: 不知所以然,在朋友的帮助下,了解到,IIS有一种人能读懂的调试模式,开起即可。 在IIS管理器→ASP里,把错误信息发送到...

  • Visual InterDev 6.0中调试ASP代码的设置方法

    OverviewDebugging in Visual InterDev 6.0The distributed nature of Web applications requires that developers be able to seamlessly debug application logic across both the client and the server, and

Global site tag (gtag.js) - Google Analytics