游戏服务器的扩展和收缩能力
因此,在互联网时代,R&D人才是最重要的人才。他们可以创建一个从0到1的产品。如果R&D人员不给力,就会经常加班,经常出事故,重复低效工作。因此,对于大型互联网公司来说,提高R&D人员的生产率,打造R&D效率是非常重要的。统计显示,亚马逊和阿里每年在R&D的投资成本占整个公司成本预算的15%。那么什么是R&D效率呢?怎么建?怎么考虑?
软件从开发到上线的过程大概是需求评审>开发>测试>预发布>运维。在整个过程中,R&D人员参与从需求审查阶段直到上线的全过程。大量涉及的阶段包括开发代码、编写单元测试用例、编写自动化测试用例、打包、部署测试环境、测试、部署生产环境和在线。这个过程中使用的工具包括需求管理工具、代码仓库工具、打包工具、部署工具、测试工具和在线工具。如果每个工具分散在不同的地方,由不同的团队开发,R&D人员需要去不同的平台找到这些工具,学习使用它们,并在开发过程中将其全部串联起来,这导致R&D人员无法专注于业务开发。因此,建设R&D效率意味着建设可持续的交付能力。
持续交付能力的构建是持续集成、持续交付、持续部署的思想。对于持续集成,当R&D已经在本地开发了代码,就持续集成到主分支,让团队成员知道最新的修改;对于持续交付,代码合并到主分支后,在测试环境中持续部署,交付给测试或产品或内部测试用户进行验收测试;对于持续部署,就是将修改后的内容持续部署到生产环境中,供用户使用,验证产品的可行性。
除了发展自身的持续交付能力,还需要充分利用云计算资源。在云计算中,服务模式、自动化模式、弹性伸缩模式都是基本功。要运行一个程序,它必须依赖服务器、数据库、操作系统和中间件。因此,在使用云厂商提供的IAAS、PAAS、SAAS产品时,需要更细致地抽象开发细节,让云厂商负责更多的底层能力建设。使用云资源时,可以通过API调用实现自动化,避免人工输入,通过弹性伸缩实现在线运维。
对于R&D效率的考虑,可以考虑需求交付周期、持续释放能力、交付过程质量和交付质量。对于需求交付周期,要看从产品提出需求后,多久上线,多久开发。对于持续发布能力,取决于单位时间内的发布次数,以及从代码提交到上线所用的时间。对于交付过程的质量,就是代码提交后有多少自动化测试和单元测试失败,有多少bug。对于交付质量来说,就是产品上线后单位时间内有多少问题,在线问题需要多长时间响应,需要多长时间解决。通过对这四个方向的考虑,我们可以衡量R&D人员的生产率,并根据实际情况进行调整。
阿里甚至有2-1-1的说法,而不是985的211,211。所谓211,就是在两周的发货周期内可以满足85%的需求。
现在已经进入了互联网的下半场,市场上能想到的几乎都实现了。但是,用户那么多,流量那么多。如果不能开源,就只能削减成本。通过R&D效率的建设,提高R&D团队的生产效率,降低整个企业的成本,也是一种新的思路。现在你明白为什么滴滴今日头条和阿里美团都在投资R&D效率了吧。
R&D效率的建设宜早不宜迟。从前期就要尽可能打好技术基础,培养好R&D团队合作标准,避免后期用户规模扩大时弥补前期技术欠账。现在赶紧行动吧~