Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

社会化研发

379 views

Published on

企业培训讲稿,开篇:社会化研发

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

社会化研发

  1. 1. 声明:所有讲座内容仅做为个⼈人观点,不代表任何组织或单位! 社会化研发 杜⽟玉杰(Ben) 2014年11⽉月
  2. 2. 杜玉杰(Ben)   OpenStack基金会独立董事   中国企业级云计算联盟(ECA)副秘书长          @ben_杜玉杰                          duyujie.dyj@gmail.com                          http://www.linkedin.com/in/duyujie/
  3. 3. 调查:为什么要参加这个交流活动?期望得到什么?
  4. 4. 社会化研发 缘起 ❖ 缘起 ❖ 从开源运动说起 ❖ 什么是社会化研发 ❖ 免费 ❖ 社群崛起 ❖ 企业如何参与社会化研发
  5. 5. ⼀一个咨询项⽬目引发的问题 ❖ 某五百强现状 ❖ 某某部门有些开源经验 ❖ 某某部门开源经验相对⽐比较少 ❖ 某某部门不仅是开源软件的应⽤用,也有对外开源的诉求 ❖ 咨询需求 ❖ 希望能介绍⼀一下开源领域中的经验,包括但不限于开源策略、开 源运作、开源社区等⽅方⾯面 ❖ 最好讲⼏几个实际案例
  6. 6. 提出的部分问题 ❖ 开源策略 ❖ 开源策略主要考虑哪些⽅方⾯面? ❖ 开源能达到哪些商业⽬目的? ❖ 如何确定开源和闭源的范围,哪些开源,哪些闭源? ❖ 先制定策略,再考虑运作?还是先运作起来,再制定策略? ❖ 策略是否是⼀一直不变的? ❖ 商业模式与开源策略的关系? ❖ 如果没有明确的商业模式,是否可以制定开源策略?
  7. 7. 提出的部分问题(续) ❖ 开源的组织体系 ❖ 公司内各级开源组织,各负责哪些⽅方⾯面 ❖ 开源与闭源组织之间的关系,怎么衔接 ❖ 参与开源(社区)的⼈人⼒力背后有什么样的⼈人⼒力⽀支撑 ❖ 开源社区 ❖ 参与已有的社区,与新建社区的区别是什么 ❖ 开源运作的成果和经验
  8. 8. 延伸问题 ❖ 社群运营 ❖ 激励机制 ❖ 管理制度 ❖ ⼈人才培养
  9. 9. 社会化研发 从开源运动说起 ❖ 缘起 ❖ 从开源运动说起 ❖ 什么是社会化研发 ❖ 免费 ❖ 社群崛起 ❖ 企业如何参与社会化研发
  10. 10. 为什么越来越多的企业想要参与开源?
  11. 11. 开源让我们想到了什么?
  12. 12. The war or the family?
  13. 13. From the beginning 商业软件出现之前 ❖ 施乐打印机的故事: 70年代初硬件、软件、服务打包销售代码是开放的。 1978年,⼀一切都变了。Xerox送了⼀一台叫Dover的新打 印机机给⼈人⼯工智能实验室,但不愿再附上源代码。 Richard Stallman说:“因此我们没办法修改驱动程 序,于是整个⼤大楼的打印效率又回到从前,卡了纸或 把纸印光了,你在下⾯面也⽆无法知道。” 后来 Richard Stallman听说卡内基.梅隆⼤大学有这个打 印机的驱动程序源代码,他就去了那⾥里,对他们说: “我是来⾃自MIT的朋友,能不能把打印机驱动程序的 源代码给我拷贝⼀一份?”。Richard认为⼤大家都属于计 算机社团,他们肯定会给他源代码。但是他们拒绝了。 因为他们和⼚厂商签署了⼀一份保密协议,协议要求他们 不能向别⼈人拷贝源代码。顿时Richard Stallman感到 他们背叛了⾃自由的计算机社团,⾮非常⽣生⽓气,⼀一句话没 说就回去了。
  14. 14. 商业软件的开端 1976年2⽉月3⽇日,⽐比尔·盖茨给电脑爱好者们 写了⼀一封公开信,抱怨未经授权使⽤用Altair BASIC的情况太普遍,导致新成⽴立的微软 公司回报甚微。 这封信被看作是软件通过商业授权获取收 ⼊入的真正开端。
  15. 15. GNU计划 Richard Stallman • 1983年9⽉月27⽇日,Richard Stallman发起GNU计划。 他在net.unix-wizards新闻组上公布该消息,并附带 ⼀一份《GNU宣⾔言》,解释为何发起该计划,其中⼀一 个理由就是要“重现当年软件界合作互助的团结精 神”。GNU的⽬目标是创建⼀一套完全⾃自由的操作系统。 GNU是⼀一个针对开源和⾃自由软件的⼤大型合作⼯工程, 成就了开源和⾃自由软件在今⽇日的繁荣昌盛。 • 1985年Richard Stallman又创⽴立了⾃自由软件基⾦金会来 为GNU计划提供技术、法律以及财政⽀支持。 • 1992年Linux与其他GNU软件结合,完全⾃自由的操 作系统正式诞⽣生。
  16. 16. 开源软件的定义 ❖ ⾃自由再发布,⽆无须费⽤用 ❖ 必须提供源代码 ❖ 不得限制其派⽣生作品 ❖ 必须尊重作者代码的完整性 ❖ 不得歧视任何个⼈人或者团体 ❖ 不得歧视任何应⽤用领域 ❖ 许可证的分发 ❖ 许可证不能针对于⼀一个产品 ❖ 许可证不能影响其他软件 ❖ 许可证必须是技术中⽴立的
  17. 17. 开源许可证
  18. 18. 开源项⽬目的优势 ❖ Erich S. Raymond & Linus Torvalds "Given a large enough beta-tester and co- developer base, almost every problem will be characterized quickly and the fix will be obvious to someone” ❖ or how Linus Torvalds rephrases this “Given enough eyeballs, all bugs are shallow”
  19. 19. 企业拥抱开源 ❖ OpenStack基⾦金会 ❖ 8家⽩白⾦金会员企业 ❖ 19家黄⾦金会员企业(华为是唯⼀一⼀一家中国企业) ❖ 61家赞助单位 ❖ 244家组织结构⽀支持 ❖ Microsoft ❖ Apache基⾦金会⽩白⾦金赞助商(From 2008年) ❖ 微软开放技术有限公司(From 2012年) ❖ Azure平台⽀支持Linux、Hadoop、 MongoDB、drupal、Joomla等开源项⽬目 Microsoft
  20. 20. 微软开放技术有限公司总裁蒋博励(Jean Paoli)表⽰示正是 云计算的出现,改变了微软对于商业模式的思维⽅方式,任 何运⾏行在Azure上的软件对微软来说都是好事。
  21. 21. 开源融⼊入企业 ❖ 开源与企业如今密不可分; ❖ 正确使⽤用开源软件要建⽴立管理 体制,防范质量和法律风险; ❖ 加⼊入开源社区是⼀一种双赢甚⾄至 多赢; ❖ 开源不仅只是免费,它是⼀一种 新的软件开发模式。
  22. 22. 云计算加速了这种融合 22 Base: North American and European enterprise software developers; Source: Forrsights Developer Survey, Q1 2013 Cloud developers favor open source technologies “Which of the following classes of open source software tools/frameworks have you used for development or deployment in the past 12 months?” (Select all that apply) Operating systems (e.g., Red Hat Linux, Suse, Android) Web servers (e.g., Apache, nginx) Relational DBMSes (e.g., MySQL, PostgreSQL, SQLite) Development IDEs (e.g., Eclipse, NetBeans) Application server (e.g., JBoss, Tomcat) Build and release management tools (e.g., Hudson/Jenkins, Maven, Ant) Application frameworks (e.g., Spring, Rails, Zend) Content management systems (e.g., Alfresco, Drupal) SCM tools (e.g., Git, Subversion, Mercurial) Business intelligence tools (e.g., BIRT, Jasper Reports, Spago) Portals or mashup servers (e.g., Liferay, JBoss Portal, eXo) Business applications (Sugar CRM, Bravo) NoSQL DBMSes (e.g., Apache Hadoop, MongoDB, Riak, Couchbase) Release/deployment management tools (e.g., Chef, Cf Engine, Puppet) Management and monitoring (e.g., Nagios, Cacti, Shinken) Have not used open source software Other (please specify) 4% 31% 3% 4% 5% 3% 3% 6% 16% 6% 10% 16% 22% 35% 32% 32% 33% 2% 3% 20% 20% 21% 21% 22% 24% 26% 30% 31% 35% 45% 54% 57% 58% 66% Using cloud computing/elastic applications (N = 125) Not using cloud computing/elastic applications (N = 572)
  23. 23. 社会化研发 什么是社会化研发 ❖ 缘起 ❖ 从开源运动说起 ❖ 什么是社会化研发 ❖ 为何免费,开源与互联⽹网思维 ❖ 社群崛起 ❖ 企业如何参与社会化研发
  24. 24. 我们想造出⼀一个⼤大教堂,可是眼下只有⼀一个集市,怎么办?
  25. 25. 前提条件1:
 你不能从零开始建设集市,你必须先有⼀一个原始项⺫⽬目。
  26. 26. 前提条件2:
 你的原始项⺫⽬目可以有缺陷,但是它必须能运⾏行。 http://www.openstack.org/software/
  27. 27. 前提条件3:
 你必须向⽤用户展⽰示⼀一个可⾏行的前景,且让潜在的合作者相信 在可预⻅见的将来它会变成⼀一个真正漂亮的东⻄西。 http://superuser.openstack.org/articles/openstack-user-survey-insights-november-2014
  28. 28. 前提条件4:
 项⺫⽬目的主持者本⾝身不⼀一定是天才,但他⼀一定要能够慧眼识 别出他⼈人的优秀想法。 http://www.openstack.org/foundation/board-of-directors/ http://www.openstack.org/foundation/user-committee/ http://www.openstack.org/foundation/user-committee/ 基⾦金会董事会 代表商业利益 ⼀一年选举⼀一次 技术委员会 代表开发者 半年选举⼀一次 ⽤用户委员会 代表⽤用户 由董事会和TC提名 8个 ⽩白⾦金会员 8 8 8 18个 黄⾦金会员 18912位 个⼈人会员 83家 企业赞助商 293家 ⽀支持机构 313 143个国家 社区成员 基⾦金会成员可以被授权使⽤用OpenStack商标 ⽀支持机构表明采⽤用了OpenStack,但不被授权使⽤用OpenStack商标 https://wiki.openstack.org/wiki/Governance OpenStack基⾦金会
  29. 29. 前提条件5:
 项⺫⽬目的主持者必须要有良好的⼈人际关系、交流技能和⼈人格 魅⼒力。这样才能吸引他⼈人,使别⼈人对你所做的事感兴趣, 愿意帮助你。
  30. 30. 充分条件1:
 项⺫⽬目⾸首先必须是你⾃自⼰己感兴趣的,但是最终能对其他⼈人有⽤用。 Chasm Community Relations Go-to-market
  31. 31. 充分条件2:
 将⽤用户当作合作者。
  32. 32. 充分条件3:
 尽快地和经常地做出改进,多听取⽤用户的意⻅见。
  33. 33. 充分条件4:
 健壮的结构远⽐比精巧的设计来得重要。换句话说,结构是 第⼀一位的,功能是第⼆二位的。
  34. 34. 充分条件5:
 保持项⺫⽬目的简单性。设计达到完美的时候,不是⽆无法再增 加东⻄西了,⽽而是⽆无法再减少东⻄西了。 OpenStack 发布周期: 四个阶段 Design* Development QA Release
  35. 35. ——Eric Raymond 《⼤大教堂和集市》
  36. 36. • Open Source –Apache  2.0  许 可,企业友好。   • Open Design    –六个月一次,基 本与Ubuntu同步。   • Open Development –社会化 研发,Launchpad  &  gihub。   • Open  community –  (懒人原 则),OpenStack  基金会。 为开放而生 https://wiki.openstack.org/wiki/Open
  37. 37. OpenStack设计原则 1. 可扩展性和伸缩性是我们的主要目标; 2. 任何影响到可扩展性和伸缩性的功能都必须是可选的; 3. 所有的环节必须是异步的,如果不能异步实现,参考第二条设计 原理; 4. 所有的基础组件必须能横向扩展; 5. 始终使用无共享的架构,如果不能实现,参见第二条; 6. 所有的都是分布式的,尤其是逻辑。把逻辑放在状态应该存在 的地方; 7. 接受最终一致性,并在适合的条件下使用; 8. 测试一切。 https://wiki.openstack.org/BasicDesignTenets
  38. 38. Icehouse架构 Neutron Cinder Nova Horizon Glance Swift Keystone Common UI Access Control 不是OpenStack项⺫⽬目,但是 有助于理解OpenStack组件 间的关系 不是OpenStack项⺫⽬目,但是 有助于理解OpenStack组件 间的关系 Heat Ceilometer
  39. 39. 39 部署拓扑变幻⽆无穷 Public Switch 10.10.0.0/24 CONTROLLER KEYSTONE NOVA-COMPONENTS GLANCE NEUTRON-SERVER CINDER NETWORK NODE OVS-AGENT DHCP-AGENT L3-AGENT METADATA-AGENT COMPUTE NODE NOVA-COMPUTE OVS-AGENT Private Switch 172.16.0.0/24 OVS OVS
  40. 40. COMPUTE NODE OVS phynet gre br-int COMPUTE NODE OVS phynet gre br-int COMPUTE NODE OVS phynet gre br-int 40 VM Traffic Path
  41. 41. 41 ⾼高可⽤用看似简单确要经历⻛风⾬雨 HTTP AMQP SQL 第三⽅方 Nova API Scheduler Conductor Nova Cell Queue Nova DB Nova Nova Nova-Compute Nova Hypervisor Compute Node VM Network Router/GW DHCP/IPAM Network Node Storage Block Storage Node Proxy Server Object Store Swift Plugin /Agent Neutron DB Neutron API Neutron Plugin /Agent Keystone API Keystone DB Keystone Queue Scheduler Queue Heat DB Heat API Queue DB Ceilometer API Ceilometer Cinder API Scheduler Cinder DB Queue Cinder Vol Cinder Backup UI: Horizon / CLI Cinder Glance API Glance Registry Glance DB Glance Agent Collector
  42. 42. 版本发布历史 wiki.openstack.org/Releases ⽇日期 版本 项⺫⽬目 ⽤用途 备注 2010年7⽉月 N/A PoC Rackspace发起项⺫⽬目, 随后NASA加⼊入 2010年10⽉月 Austin Nova, Swift PoC 2011年2⽉月 Bexar Nova, Glance, Swift PoC 2011年4⽉月 Cactus Nova, Glance, Swift 开始6⽉月⼀一次发布的开发周期 2011年9⽉月 Diablo Nova, Glance, Swift Prod 第⼀一个可⽤用于⽣生产环境的版本发布 2012年4⽉月 Essex Nova, Glance, Swift, Horizon, Keystone Prod 增加Web UI和统⼀一认证管理 2012年9⽉月 Folsom Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder, Oslo Prod 成⽴立OpenStack基⾦金会 2013年4⽉月 Grizzly Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Oslo Prod 添加了Ceilometer和Heat项⺫⽬目 2013年10⽉月 Havana Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Oslo Heat, Ceilometer Prod 更多孵化项⺫⽬目产⽣生 2014年4⽉月 Icehouse Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Oslo Heat, Ceilometer, Sahara,Trove Prod IaaS开始往上游衍⽣生 2014年10⽉月 Juno Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Oslo Heat, Ceilometer, Sahara,Trove Prod
  43. 43. Grizzly  Community  &  Contributions   ECOSYSTEMSIZE
 (Members+Sponsors+Supporters) CUMULATIVE 
 CONTRIBUTORS AVERAGE MONTHLY 
 CONTRIBUTORS PATCHES
 MERGED 998 230 7,260(Grizzly Release Cycle – Six Months) 209
Companies Members: 24 Total
 Sponsors: 35 Total Supporters: 150 Total TOP 10 Countries 1) United States
 2) China
 3) India
 4) Great Britain
 5) Australia 9,5116) France
 7) Russia
 8) Canada
 9) Ireland
 10) Germany INDIVIDUALMEMBERS
  44. 44. ECOSYSTEMSIZE
 (Members+Sponsors+Supporters) CUMULATIVE 
 CONTRIBUTORS AVERAGE MONTHLY 
 CONTRIBUTORS PATCHES
 MERGED 2,655 502 19,675(Juno Release Cycle – Six Months) 430
Companies Members: 25 Total
 Sponsors: 68 Total Supporters: 316 Total TOP 10 Countries 1) United States
 2) China
 3) India
 4) Great Britain
 5) Australia 17,0096) France
 7) Russia
 8) Canada
 9) Ireland
 10) Germany INDIVIDUALMEMBERS (note: member cull in September)(21% increase since May) Juno  Community  &  Contributions  
  45. 45. 基金会成员
Innovative Ecosystem 8 http://www.openstack.org/foundation/companies/
  46. 46. 社区治理 https://wiki.openstack.org/wiki/Governance/CoreDefinition
  47. 47. Foundation Staff (openstack.org/staff) Mark Collier
 COO
 Joined Oct 2012 Jonathan Bryce
 Executive Director
 Joined Sept 2012 Heidi Bretz
 Director of Business Development
 Joined Feb 2013 Todd Morey 
 Creative Director
 Joined Jan 2013 Lauren Sell
 Marketing & Community Services
 Joined Sept 2012 Thierry Carrez
 Director of Engineering
 Joined Sept 2014 Jeremy Stanley 
 Infrastructure Engineer Joined April 2013 Chris Hoge
 Interop Engineer
 Joined Sept 2014 Clark Boylan
 Infrastructure Engineer
 Joined Oct 2014 Stefano Maffulli 
 Community Analyst Joined Sept 2012 Tom Fifield
 Community Manager
 Joined August 2013 Claire Massey
 Marketing Manager
 Joined Dec 2012 Margie Callard
 Sr. Marketing Manager
 Joined Feb 2013 Allison Price
 Marketing Coordinator
 Joined March 2014 Shari Mahrdt
 Marketing Coordinator
 Joined June 2013 Kathy Cacciatore
 Consulting Mktg Manager
 Joined Oct 2013
  48. 48. OpenStack Release Cyle Planning : Design • Planning stage is at the start of a cycle • take a step back • focus on what we want to do for the next one Planning : Discuss • With our peers • feedback and comments • create the corresponding blueprint • 4 weeks, Design Summit on the third week Planning : Target • file new blueprints and/or specs • set a target milestone • when in the cycle they intend to complete it • PTLs triage the submitted blueprints and set priority Implementation : Milestone • pushed to our Gerrit review • weeks before the milestone publication date • milestone-proposed branch • feature-frozen Implementation : freezes • Feature freeze ◦ new features will not be accepted, only fixes • Feature proposal freeze ◦ not even proposals for features will be accepted ◦ read: focus on bug-fixing • String freeze ◦ all externally visible strings must be frozen ◦ this helps the translation and documentation program Release Candidates • After the last milestone • file bugs about everything you find • prioritize bugs / bug triage • write documentation • fix as many bugs as you can Other release candidates • regressions and integration issues • new release-critical bugs • (RC2), with bugs targeted to it • merged in the master branch first • repeated as many times as necessary Release day • last published release candidate • published collectively as the OpenStack release
  49. 49. 峰会⽇日程 OpenStack巴黎峰会⽇日程安排 Nov 2 Nov 3 Nov 4 Nov 5 Nov 6 Nov 7 Board Meeting Keynotes Main Conference & Expo Ops Summit Design Summit
  50. 50. https://wiki.openstack.org/wiki/Governance/NewProjects Lifecycle of a new Program • Idea • Gather a community • Alternate implementations • Stackforge • File an OpenStack incubation request • Fill the gap with graduation requirements • Align with the OpenStack way • Two development milestones • Migrate to the openstack/* namespace • Graduation review • Cannot graduate in the middle of a cycle • Follow a full cycle as an integrated project
  51. 51. OpenStack⽣生态系统 集成发布 Graduation 每六个⽉月发布⼀一个新版本 技术委员会 + 版本发布 经理& PTLs ⽀支持系统 孵化项⺫⽬目 Works with projects in greater Ecosystem OpenStack项⺫⽬目共享基础设施和资源 Applied & Accepted by TC 版本集成之路 ⼀一般需要18-24 个⽉月才能完 成孵化毕业 由技术委员会决定是否通过 孵化阶段 来⾃自 TC更迫切的孵化需求 充满活⼒力的创新⽣生态 ⼤大量相关开源项⺫⽬目 某些可能会申请成 为孵化项⺫⽬目 ⼤大多数或许不会申 请
  52. 52. OpenStack⽣生态系统 集成发布 Graduation 每六个⽉月发布⼀一个新版本 技术委员会 + 版本发布 经理& PTLs ⼤大量相关开源项⺫⽬目 某些可能会申请成 为孵化项⺫⽬目 ⼤大多数或许不会申 请 ⽀支持系统 孵化项⺫⽬目 Works with projects in greater Ecosystem OpenStack项⺫⽬目共享基础设施和资源 Applied & Accepted by TC 充满活⼒力的创新⽣生态 Staccato Libra Turbo-hipster Mistral Climate Entropy Designate Pecan Kite Milk Graffiti Rubick Packstack Murano Manila Docker Solum Rally Barbican Sitori Fuel 开源⽣生态系统 版本集成之路 ⼀一般需要18-24 个⽉月才能完 成孵化毕业 由技术委员会决定是否通过 孵化阶段 来⾃自 TC更迫切的孵化需求
  53. 53. 集成发布 ⽀支持系统 孵化项⺫⽬目 Compute(Nova) Object Storage(Swift) Block Storage(Cinder) Networking(Neutron) Dashboard(Horizon) Image Service(Glance) Identity(Keystone) Infrastructure | Docs | Common Libraries | QA | Release Mgmt Mettering & Monitoring (Ceilometer) Orchestration(Heat) Grizzly Release (April 2013) Steady Growth
  54. 54. Hadoop(Savannah) Telemetry(Ceilometer) Bare Metal(Ironic) Orchestration(Heat) Messaging(Marconi) Deployment(TripleO) Havana Release (Oct 2013) New New Relational DB(Trove) Compute(Nova) Object Storage(Swift) Block Storage(Cinder) Networking(Neutron) Dashboard(Horizon) Image Service(Glance) Identity(Keystone) 集成发布 ⽀支持系统 孵化项⺫⽬目 Infrastructure | Docs | Common Libraries | QA | Release Mgmt Steady Growth
  55. 55. Database Service(Trove)Bare Metal(Ironic) Queue Service(Marconi) Data Processing(Sahara) New Icehouse Release (April 2014) Telemetry(Ceilometer) Orchestration(Heat) Compute(Nova) Object Storage(Swift) Block Storage(Cinder) Networking(Neutron) Dashboard(Horizon) Image Service(Glance) Identity(Keystone) 集成发布 ⽀支持系统 孵化项⺫⽬目 Infrastructure | Docs | Common Libraries | QA | Release Mgmt Steady Growth
  56. 56. 分支模型 https://wiki.openstack.org/wiki/BranchModel
  57. 57. 开发流程 https://wiki.openstack.org/wiki/GerritWorkflow
  58. 58. 社区活跃度 http://www.qyjohn.net/?p=3431
  59. 59. 究竟原因为何?
  60. 60. 以⽤用户为中⼼心VS. 以制造商为中⼼心 ❖ 以⽤用户为中⼼心的创新过程现在已经超过了数百年来⼀一直 作为商业主流的以制造商位中⼼心的创新开发系统。创新 的⽤用户可以准确地开发⾃自⼰己需要的事物,⽽而不需要依赖 制造商作为他们的代理⼈人(不是不可以但这样做通常⾮非 常不完美),⽽而且个体⽤用户往往并不需要⾃自⼰己完全重复 造轮⼦子,他们可以利⽤用其他创新者开发的并愿意⽆无偿共 享的创新。
  61. 61. 企业应⽤用开源的模式 ❖ 纯内部使⽤用 ❖ ⼤大多数情况 ❖ 运⾏行软件为第三⽅方提供服务 ❖ 绝⼤大部分互联⽹网公司,包括 Google ❖ 再发布给第三⽅方 ❖ 产品 ❖ ⽅方案 注意风险! ❖ 内部开源 ❖ 将企业内部的某些项⽬目按 开源的模式在企业内部进 ⾏行开源开发 ❖ 创新孵化 ❖ 预算⽀支持
  62. 62. 开源软件的盈利模式:增值模式 ❖ ⼀一种专业化的开源运营模式,即基于开源的代码, 社区 化的开发,专业化的质量保证服务,以及可订购的客户 技术⽀支持服务 ❖ 最成功的开源⼚厂商是Red Hat,它除了对Linux内核提供 ⽀支持外,还通过其它途径提⾼高Linux的价值。 ❖ Red Hat提供⼤大量在Linux内核上运⾏行的软件,为客户提 供更多价值
  63. 63. 开源软件的盈利模式:服务模式 ❖ IBM的产品WebSphere Application Server Community Edition,WAS CE集成了Apache Geronimo, ⼀一个强⼤大的 开源应⽤用服务器。 ❖ 客户可以选择购买IBM提供的服务。IBM向WAS CE的⽤用 户提供⽀支持,从⽽而加速客户JEE应⽤用程序的开发和部署。 服务的形式包括现场⽀支持、顾问引导、快速上⼿手以及交 互式的讨论
  64. 64. 开源软件的盈利模式:咨询模式 ❖ 咨询服务是很具有发展潜⼒力的商业模式。它可以帮助客 户在项⺫⽬目开始时就有⼀一个精妙的⽅方案设计,尽可能的帮 助客户降低系统⻛风险,加快项⺫⽬目的开发进度,更好的整 合开源和闭源的软件,从⽽而实现产品的性能最⼤大化。 ❖ 销售的是经验
  65. 65. 开源软件的盈利模式:⼲⼴广告模式 ❖ 被⼴广泛使⽤用的客户端软件,具有很⼤大的⼴广告效应 ❖ Firefox ❖ ⾕谷歌搜索栏⼴广告
  66. 66. 开源软件的盈利模式:销售硬件 ❖ Linux已经成为最主要Web服务器 ❖ ⽽而IBM和HP这样的商业公司,为了抢夺市场,也纷纷加 ⼊入了该市场。 ❖ 他们通过⽀支持和资助Linux系统开发,发⾏行⾃自⼰己的Linux 版本(让Linux更好的在⾃自⼰己的硬件上⼯工作),提供基于 Linux的解决⽅方案等等⼀一系列⽅方式,既⽀支持了Linux的发 展,也让⾃自⼰己在这个市场上获得了收益。
  67. 67. 开源软件的盈利模式:双重授权 ❖ 第⼀一种是商业许可证 ❖ 第⼆二种是开源许可证(如GPL),⽤用户可以免费使⽤用该软 件,但是必须把开发完成的软件同样置于GPL许可证下, 这也就意味着需要将软件的全部代码贡献给开源社区 ❖ 案例1:MySQL ❖ ⼀一般情况下MySQL可以被⾃自由地使⽤用。然⽽而,如果⽤用 户希望将MySQL作为其他产品或服务的⼀一部分销售; 或者在⾃自⼰己的客户那⾥里收取安装和维护⼀一个MySQL服 务器的费⽤用;都需要申请⼀一个书⾯面的商业许可证。
  68. 68. 开源软件的盈利模式:社区模式 ❖ Apache、Eclipse等等社区,都有⾃自⼰己的资⾦金来源。Apache本⾝身是⼀一个⾮非盈利的组 织,因此,它并不需要赚钱,它的⺫⽬目的在于,通过宣传、合作和开发,编写更好的软 件产品,提供更好的技术⽀支持,领导业界的发展趋势。 ❖ ⽽而商业公司的⺫⽬目的,虽然都是赚取利润,但是它后⾯面的做法则不尽相同。有些公司是 希望使⽤用更好的,低价⽽而可靠的代码于⾃自⼰己的应⽤用程序之中;有些公司是希望推⼲⼴广⾃自 ⼰己的商业和技术模式;有些是希望建⽴立⼀一些标准,来获得技术和市场的实际主导地位。 虽然⺫⽬目的不尽相同,但是Apache社区似乎都能很好的满⾜足他们:它提供了优秀的久经 考验的代码,它的⽤用户遍及整个业界,它的项⺫⽬目的使⽤用率⾮非常⾼高,有些就是业界的实 际标准,更具有吸引⼒力的是,它不断创新,⼀一直⾛走在业界研究⽅方向的前列。
  69. 69. 社会化研发 免费 ❖ 缘起 ❖ 从开源运动说起 ❖ 什么是社会化研发 ❖ 免费 ❖ 社群崛起 ❖ 企业如何参与社会化研发
  70. 70. 什么是社会化创新?
  71. 71. ❖ ⾸首先来看,⽤用户创新如何成为制造商创新的补充和原料。 ⼀一⽅方⾯面对于许多⽤用户⽽而⾔言通过⾃自⼰己设计来准确地获得所 需要的事物的变得越来越简单,另⼀一⽅方⾯面这种转变正在 冲击社会劳动⼒力分⼯工的结构。
  72. 72. ⽤用户和客户 ❖ ⽤用户的特点是他们独⾃自直接从创新中获利,⽽而传统模式 中为了获利,就必须将创新相关的产品或服务出售给⽤用 户,以间接的活直接地从创新中获利。
  73. 73. 领先⽤用户 ❖ why?⽤用户需要定制化的产品,⽤用户开始参与创新的过程 ❖ 冯 希普尔 在《创新式民主》⼀一书中提到产品和服务创新集中于“领先⽤用户”,这 些领先⽤用户领先于市场潮流,他们的创新通常具有较强的商业吸引⼒力,并且这些 创新⽤用户——包括个体和企业——经常⽆无偿地让他⼈人共享起创新。 ❖ 以少量型号满⾜足所有⼈人的战略 ❖ ⽐比如Franke&von Hippel 2003b对于Apache服务器项⽬目的安全性能⽤用户样本的研 究发现⽤用户具有⾮非常特殊的需求,许多⼈人有较⾼高付费意愿以精确满⾜足他们的需要, 19%的样本⽤用户实际上通过创新使之满⾜足⾃自⼰己的需求,并且那些这样做了的⽤用户 显著更满意。 ❖ 既然需要⽤用户需要“完全正确的产品”,愿意并且有能⼒力为产品的开发付费,那么 为什么⽤用户经常愿意⾃自⼰己去做,⽽而不是付费让制造商为他们定制开发?
  74. 74. 代理成本 ❖ 1)对代理⼈人的监督,确保他符合委托⼈人的利益⽽而发⽣生的 成本;2)代理⼈人监督⾃自⾝身使其⾏行为符合委托⼈人的利益⽽而 发⽣生的成本(“忠实履约成本”);3)结果并没有充分满 ⾜足委托⼈人利益的相关成本(Jensen&Meckling,1976) ❖ ⼀一个实际的分歧就是为了降低成本,定制开发商希望满 ⾜足更多⽤用户的通⽤用需求来降低开发成本。
  75. 75. 为什么⽤用户常常⽆无偿公开创新 ❖ ⽤用户和制造商往往倾向于开发不同类型的创新,愿意时因为 信息不对称。⽤用户往往可以创造⽐比制造商更正确的更详细的 需求模型,⽽而制造商对于他们所专长的领域可以⽐比⽤用户开发 出更好的解决⽅方案模型。进⼀一步延伸的话,这种信息不对称 还意味着个体⽤用户和制造商之间所拥有的信息也是不同的, 特定⽤用户或制造商所拥有的信息资产与某个特定创新开发所 需要的信息密切相关,所以对于那些⽤用户或制造商⽽而⾔言,创 新成本较低,导致⽤用户创新活动是分散的,并且⼀一个⽤用户的 创新也绝不会是另⼀一个⽤用户创新的完美替代品。
  76. 76. 社会化研发 社群崛起 ❖ 缘起 ❖ 从开源运动说起 ❖ 什么是社会化研发 ❖ 免费 ❖ 社群崛起 ❖ 企业如何参与社会化研发
  77. 77. 创新社群 ❖ 地⽅方但⽤用户创新通常是分散的,并不是集中于少数的极具创新 能⼒力的⽤用户。因此,⽤用户创新有必要寻找综合和平衡他们努⼒力 的最佳途径——协作 ❖ 开源项⽬目是⼀一个相对发展⽐比较完善的、⽐比较成功的基于互联⽹网 的创新社群。 ❖ 在吸引和奖励加⼊入社群的成员⽅方⾯面,可以归因于创新贡献者可 以从中获得⼀一些私⼈人的奖励,⽽而这些奖励是不与免费享⽤用着(没 有贡献的)共享的。例如,创新者开发并⽆无偿公开的产品可能 更适合⽤用户创新者的需求⽽而较少适合免费使⽤用者的需求。
  78. 78. 社会化研发 企业如何参与社会 化研发 ❖ 缘起 ❖ 从开源运动说起 ❖ 什么是社会化研发 ❖ 免费 ❖ 社群崛起 ❖ 企业如何参与社会化研发
  79. 79. 社会化研发 ❖ ⾸首先,开发成果需要在社区成员中共享; ❖ 其次,开发成果的测试环境也需要统⼀一建⽴立; ❖ 最后,开发的⽅方法与信息也要在社区成员中共享;
  80. 80. How?
  81. 81. –Steve Jobs “Creativity is just connecting things”
  82. 82. –Steve Jobs “Creativity is just connecting things”
  83. 83. 你真的需要⼀一个新的开源项⽬目?
  84. 84. 再次警告!这可不仅是个项⽬目
  85. 85. ⼤大部分开源项⽬目是失败的!
  86. 86. It’s not just software 最重要的是创建 ⼀一个活跃的社区 你还需要: • 设计并维护项⽬目⽹网站或论坛 • 相关知识库管理 • 邮件列表 • 缺陷追踪 • 编译构建系统 • 下载,镜像 • 源代码维护
  87. 87. 如何开源 “开源过程都是⾃自下⽽而 上进⾏行的,主要是开 发者们⾃自⼰己想开源。” –Johnny Appleseed
  88. 88. 如何激励 ❖ 只有⼀一件事情能把开发者团结在⼀一 起,就是他们相信团队合作⽐比单⼲干 能做得更多。因此最重要的管理⽬目 标是确保他们继续相信这⼀一点,做 到这点需要设定交流的标准,需要 让能⼲干的开发者不会因为个性⽽而受 到排斥,总之要使项⽬目成为开发者 的留恋之地。 ❖ 在团队中以集体为单位进⾏行绩效评 估、奖⾦金发放和奖励,这是以促进 团队合作为⽬目标的绩效考核的⼀一种 ⽅方式,让团队⾃自⼰己决定如何分配。
  89. 89. 开发流程的转变 Software Client Software Vendor Requirements Design Implementation Test / Integration Deployment Maintenance User Community Developer Community Project or Feature Ideas Architecture and Design Discussion Implementation (coding) Continuous Testing and Integration Deployment (release) Maintenance Patches (submitted by developers and users) Feature Requests (submitted by developers and users) Test Projects to Automate Testing and Validation
  90. 90. A Scalable Development Model Small project Large project #include <file1.h> #include <file2.h> #include <file3.h> ... Single body of code Releases available “when they are ready” Single maintainer
  91. 91. A Scalable Development Model Small project Large project Releases available “when they are ready” #include <file1.h> #include <file2.h> ... Code divided into subsystems #include <file1.h> #include <file2.h> ... Single maintainer
  92. 92. A Scalable Development Model Small project Large project Release criteria become more stringent #include <file1.h> #include <file2.h> ... Code divided into subsystems #include <file1.h> #include <file2.h> ... Single maintainer
  93. 93. A Scalable Development Model Small project Large project Release criteria become more stringent #include <file1.h> #include <file2.h> ... Code divided into subsystems #include <file1.h> #include <file2.h> ... Delegated maintainership
  94. 94. A Scalable Development Model Small project Large project Delegated maintainership Releases overseen by dedicated maintainers #include <file1.h> #include <file2.h> ... Further subsystem divisions #include <file1.h> #include <file2.h> ... #include <file1.h> #include <file2.h> ...
  95. 95. Community leadership is earned, not granted Humble Bold Leadership != Control
  96. 96. ❖ yum,apt-get 神奇在哪⾥里? ❖ 下⼀一个会是什么?
  97. 97. 千⾥里之⾏行始于⾜足下 ❖ 如何让你的项⺫⽬目更有吸引⼒力 ❖ 把志愿者的热情看作稀缺资源 ❖ 如何让潜在的贡献者成为实际的贡献者 ❖ 代码开源只是⼀一个结果更关键的还是在于整个开发过程 ❖ 如何影响有影响的⼈人 ❖ 如何运营社区
  98. 98. 最佳实践 ❖ 创建⼀一个⽤用户组: ❖ 组建邮件列表 ❖ 创建官⽅方⽹网站 ❖ ⼀一定时间的线上交流 ❖ 有规律的组织线下活 动 ❖ 创建⼀一个商业社区: ❖ 优秀的核⼼心产品 ❖ 优秀的技术⽂文档 ❖ 交流平台的统⼀一(邮件列 表或是论坛等,根据⽬目标 ⽤用户的习惯进⾏行抉择) ❖ 专业的宣传渠道与优雅的 ⼿手法 ❖ 规范的回报机制
  99. 99. 开放你的⼈人⽣生,世界⼀一定因此不同 http://www.flickr.com/photos/opensourceway/7496803264/ http://book.douban.com/subject/3069289/

×