Marc Andreessen有个著名的论断,即软件蚕食一切。现在,有一家软件公司有了一个更加宏伟的目标,那就是开源解放世界。
开放源码
这家公司的名字叫做GitHub。它的名字和做的事情都跟开源有关。GitHub就是Git的Hub。Git是开源操作系统Linux的创始人,极客之王李纳斯•托沃兹(Linux Torvalds)为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。而创办于2008年的GitHub,其作用是为分布在各地开源软件写手提供手段,让他们可以快速创建自己工作的新版本。这些工作被存放在GitHub上,供小组共享和讨论,成员可以根据其中提出的拉请求(pull requests)提出代码改进等建议来不断完善项目。上述事情的一个支撑的手段就是Grit,一个由GitHub联合创始人兼CEO Preston-Werner编写的基于Ruby的Git 托管网站。
他们围绕着Grit做出了一个决定:开放Grit的源码。这个决定也决定了GitHub的核心价值:开源一切。
是,封闭可以设置壁垒,带来竞争优势(市面上有很多Git托管网站在竞争)。但是,开放却可以让更多的人用来制作Git工具,营造出更加生机勃勃的生态体系。
Preston-Werner是这样解释为什么要开源的:
广告效应:开源让用户了解软件,反过来开发者则可以了解用户的需求和关注点。开源可以给软件带来名声,赢得超级粉丝。
增益效应:开源有助于流行(当然前提是你做得不赖),然后外面就会有高手帮你挑刺、改进。进而工作可以完成得更快、成本更低。然后用户越来越多,用户越多,用户案例就越多,而这又可以促进代码变得更加健壮。
惺惺相惜:聪明人喜欢与聪明人为伍,聪明人喜欢与聪明代码为伍,开源有用的代码可以吸引人才,智慧的头脑可以碰撞出更好的解决方案。如果开源项目要想面试人,最好的人选是不用面试的人—即那些已经对你的项目挑过刺的人。剩下的只是看看对方是否适应你的文化并说服对方加入。
留住人才:通过其贡献来招聘到人才之后,对代码开源也是留住人才的有效方式。因为好的程序员可以随便挑工作,他愿意来自然也知道开放代码的价值,他更愿意做出可以向朋友炫耀、向未来的潜在老板展示的项目。这似乎是一个悖论,没错,为了让杀手级开发者快乐,你必须帮助他,让他在其他雇主眼中更具吸引力(开源才能让人看到你的才华,走了也没关系,因为当他可以证明自己的才华时,你的项目也已经成功了。如果项目不开源,那这样的人也许早就另谋高就去了)。
易模块化:一旦想到外面的人会用你的代码,潜意识里就会回避专有的配置细节和紧耦合的接口。代码就会更加整洁、更易维护。
减少重复:开源使得别人做过的事情自己不必重新再做,从而可以把精力集中在更有意义的事情上。
道德使然:GitHub受益于开源软件,自然也有道德义务去回报社会。
他还打了一个比喻:如果说软件是水,那么开源就是“水涨船高”中的那股“涨”的力量。
不过开源一切并不是绝对,核心价值的东西还是不要开源,因为那是企业生存的根本。
开放管理
当然,GitHub的开放不仅限于此。他们的管理模式与传统相比也有很大的差异。传统大型企业中的大型组织效率低下(实际上几乎所有的大象跑的都不快),他们希望改变这一现状。
GitHub有140名员工,但是没有一名经理。或者说,每个人都是经理,管理自己的经理。但是CEO的头衔仍然保留,像薪水之类的事情还是要由Preston-Werner来决定。
GitHub的早期员工,现在的工程总监RYAN TOMAYKO曾在《告诉做什么,不如演示怎么做》一文中阐述过他们的管理思路—管理的最高境界就是不管:无为而治。
GitHub的组织和流程是按照第一原则即实现高效优质的生产来考虑的,而不是去复制传统的管理模式。在他看来,公司的人只用对用户负责而不是对公司的谁负责。作为工程总监,他被赋予了极大的自由度,可以自由设计内部的组织流程,根据需要确定人员的角色。
传统的管理模式中,经理负责确定任务,而员工则负责履行。但RYAN反对告诉别人该做什么。因为
1) 这是偷懒表现
只说做什么,不说为什么要做,如何做,只能靠权利压人很难让人心甘情愿地做,也不会做得好。
2) 偷懒导致更累
因为这样的话每个人每一步你都要告诉他做什么。
所以,他要做到的,是成员的自我管理。
首先要教成员确定事情的优先级,然后再到自治—即不用汇报自己也知道自己做的事情是正确的。
而这种管理应该是:
身体力行:告诉别人怎么做不是简单地说教,而是要举例、示范。
完全透明:每个人都可以自我管理,但是你做事情的过程必须高度透明,让别人看得见。任何有碍透明度的点对点聊天、私下会议、IM等都取消。这样的好处是你有什么做得不对的马上就会有人指出。做得好和不好别人都可以吸取经验教训。
没有经理:但是人人都是经理。管理的角色分配到—
1)每一个员工身上
2)定制的内部工具上,让每人均能了解其他项目的情况
这样做的好处是:
1)100%的员工实现生产力/效率最大化又不会失察
2)100%的员工均清楚项目进展并给出意见
3)所有员工都是决策制定者
后来,Ryan又把这种管理模式概括为像开源项目那样工作—即借用开源软件项目开放的天然约束来设计内部流程与沟通方式。
这些约束是:
电子:讨论、计划、运营流程采用高保真的电子化沟通方式(电子邮件、项目管理系统、项目聊天组等),避免开会讨论。
可见:工作和过程必须让大家看见。工作必须有URL地址,出错可回溯过程。优选Git、问题、pull requests、邮件列表、聊天记录等形式。
异步:流程不应该存在需要对方及时关注的环节,任何干扰(小会、电话等)都会影响流程的畅通。建议采取邮件或pull requests的形式。
无锁:避免流程中出现同步/锁的环节。GitHub没有负责审批的部署经理、发布经理和产品经理。他们认为,朝着目标前进的步伐不应该被等待批准阻碍。把这些事情放在最后的评审环节,但是应该尽早披露工作过程以争取反馈。
乍一看,开源项目与传统开发相比存在诸多限制。人员分散,无法凑到一起开会,不能一起在白板上推演,而沟通基本上只靠邮件。
但是选择接受开源项目约束可以让许多类型的业务、产品开发、运营活动具备更好的自然生命力特征,其结果是运行得当、引人瞩目、自生自存的项目,而更为传统的项目组织则需要更多的人工协调和命令式的督促,这些往往导致过程效率低下,产出质量欠佳。
在Ryan看来,传统的办公室跟这些原则背道而驰,所以他喊出了“安息吧办公室”的口号。
当然,他特指的是软件开发组织的办公室作为计划、协调和沟通的中心已经不合时宜。他认为需要开会/聚会的只有两个例外,1是讨论宏伟愿景和战略,2是庆祝胜利。
也许你会质疑他观点的偏激,人性到哪里去了?!会不会像《机器人瓦力(Wall-E)》里面那样,人类的所有互动都演变成仅剩下虚拟/电子化的沟通方式,导致人陷入深深的悲哀当中、机体功能丧失、乃至于人类灭绝?
不会。面对面沟通已被证明是进行战略思考及发展个人关系的一种极其有效的方式,而这些对于公司成功是至关重要的。开源项目约束则不适合做这些事情。
而且他们当然还有办公室,大家碰头的机会跟其他地方一样多。但是他们的办公室主要是根据以下两个目的而设置:
•成为个人办公的极佳环境。如有美食、咖啡、wifi和音乐。
•成为聚会和闲逛的好去处。
开放一切
这种模式成功吗?起码投资者看好,起码GitHub的发展数据给力。
今年7月,GitHub从硅谷著名的VC机构 Andreessen Horowitz处获得了1亿美元的融资。这是一笔巨额的融资,因为对于这个阶段的初创企业来说,2000万美元就已经算是一笔财富了。
2012年GitHub的发展数据也堪称亮丽。用户数从上一年的120万攀升至280万。存放代码、文档、图像等项目相关信息的“容器”则从170万猛增至460万。
由于一些最好的人才都在上面展示自己的工作,或者对他人的工作发表深刻见解,GitHub的流行还使得它成为了企业招募工程师的重要途径。
Preston-Werner对企业的看法是公司应该是让快乐而不是金钱最大化的地方。人们愿意从事感兴趣的事情。而利润会随之而来。
开放带来透明,放权让人主动,快乐实现精品。
Preston-Werner认为开源这种要求高度信任与协作,以及相对平等的关系(加上若干定义工作范围和做出最终决定的高级经理)的方式可以推广到更加广泛的领域,比方说开发移动和企业应用,甚至包括政府。
他认为可以开放的不仅仅是代码,也应该包括决策,让决策透明和开放。开放、自由、平等、公正,用开源的精神去影响人类的交互和生存方式,这个愿景可谓宏大无比。
不过,这一切是否真的能否延伸到复杂大型的组织中去呢?
纽约时报的QUENTIN HARDY认为,像开源项目这种复杂程度的事情也要基于单一的、定义清晰的成果,而工程任务往往不受公平正义之类概念的束缚,否则的话那些话题有可能让人陷入无休止的争吵之中。而哪怕不讨论那么崇高的话题,像GitHub和Asana那样的公司也要向持续多年、同时牵涉到科学与人文技能的复杂企业流程发起挑战。Google一度曾以经理少、执行快而自豪,但是随着公司变大,它也发现自己陷入到许多的会议当中。而一度敏捷创新的IT公司一旦发展庞大后变得臃肿死板、顽固守旧乃至于走向失败的例子更是不胜枚举。
组织变大是不是就会不可避免地陷入到效率低下、利益冲突等管理难题?还是说因为人的本质是孤独的,更加理想的组织形式本该就是没有组织,或者说起码像37Signal那样坚持以小为美?
开放一切,实现人人平等相待,处处互利共赢究竟是可以实现的梦想还是空想的乌托邦?在一个人人奔向在线生活的世界里,这无疑是一个有趣的问题。