原文作者:行云创新技术总监 邓冰寒
引言
CloudIDE ,一种基于云计算技术开发的云原生集成开发环境,可以帮助企业提高研发效能,实现数字化转型的目标。本文将探讨 CloudIDE 如何在数字化时代体现业务价值、提升研发效能。
CloudIDE 是一种基于云计算的集成开发环境,它可以帮助开发人员在云端进行代码编写、调试、测试和部署等工作。CloudIDE 可以在任何设备上运行,无论是 Windows、Linux、Mac 还是移动设备,只需浏览器和网络连接就可以开箱即用。CloudIDE 可以支持多人协同开发,多个开发人员可以同时在同一个项目中进行开发工作,实时协作,提高开发效率;CloudIDE 可以与企业云平台集成,实现研发效能平台全局管控;CloudIDE 联调便利,开发人员可以直接在云端调试代码,无需走多余的 CI/CD 流程,提高调试效率。总之,CloudIDE 可以提供一个高效、便捷、安全的开发环境,帮助开发人员提高研发效能,加快产品上线速度。
问题
企业如何提升研发效能呢?首先,从IDE 的历史发展视角来看,通过增强工具特性来提升开发效率和减少错误;从个人的视角来看,强调功劳而不是苦劳,强调更聪明的工作,强调个人的成长;从组织的视角来看,就是更高效、更高质量、更可靠、可持续地交付更优质业务价值。下面, 我们就来看看业界为了提升研发效能都做了哪些转型变革。
分析
从发展的视角看研发效能
“工欲善其事, 必先利其器“。我们的行业先辈们为了提升研发效能, 将软件研发人员高频使用的功能集成在一个叫 IDE 的软件工具里, IDE 的历史沿革可以概括为以下几个阶段:
1.早期阶段
在早期阶段,软件开发人员使用的是简单的文本编辑器编写代码,然后使用独立的编译器和调试器来生成可执行文件并进行调试。这种方式虽然简单,但是效率很低,容易出错。
2.DOS 时代
在 DOS 时代,IDE 逐渐发展出一些基本特性,如语法高亮。软件开发人员开始使用集成开发环境(IDE)来开发应用程序。这些 IDE 工具提供了一些方便的功能,如代码编辑、编译、调试、仿真等。开发人员可以在 IDE 中编写代码,然后通过编译器将代码转换成机器语言,最后通过仿真器将机器语言下载到目标设备中进行测试和调试。
3.Windows 时代
随着 Windows 操作系统的普及,IDE 工具也开始向图形化界面发展。开发人员可以使用一些图形化界面的 IDE 工具来开发应用程序,如Visual Studio、Keil C51、MicroChip MPLAB Code 等。这些 IDE 工具提供了更加方便和高效的开发环境,可以帮助开发人员快速开发和调试应用程序。此时已经开始发展出自动补全、代码重构等特性,这些特性能大大提高开发效率和减少错误。
4.互联网时代
随着互联网的普及,各种软件应用如雨后春笋般涌现,IDE 工具也在不断更新迭代,如 Visual Studio、Eclipse、VS Code 和 IntelliJ IDEA 等成为主流的开发工具,为开发人员提供了丰富的功能和便捷的开发环境。随着时间的推移,IDE 还发展出了更加强的特性,如版本控制、代码库集成等。在互联网时代,价值共创成了这个时代的标志,IDE 的特性不仅仅由 IDE 软件开发厂商提供,而是通过插件市场,由第三方开发者提供更丰富的功能,形成一个社区生态体系。用户通过插件市场自由组装出个性化的 IDE 以提升不同场景下的研发效能。
5.云原生时代
在云原生时代,软件系统越来越复杂,业务系统已经以微服务的形式部署在云端,仅仅靠一个本地 IDE 已经无法支撑软件系统开发所需,主要面临以下几个问题:
- 开发和生产环境不一致:本地开发环境和云端部署的生产环境往往存在差异,例如操作系统、数据库版本、网络环境等。这可能导致在本地开发时无法发现一些潜在的问题,而在部署到云端时出现意外的错误。
- 开发环境配置繁琐:在本地开发时,需要手动模拟云端环境,包括部署容器、配置网络、安装依赖等。如果服务需要依赖中间件如 MySQL、Redis、RabbitMQ,还需要连接这些中间件的客户端管理工具如 DBeaver;也许您需要测试接口测试工具 Postman;也许您需要数据建模工具 PDManer。这些操作可能比较繁琐,容易出错,而且需要占用本地的资源,影响开发效率。
- 难以协作:在本地开发时,开发人员不方便共享资源、配置文件等问题。
- 难以测试:在本地开发时,很难模拟云端的负载和网络环境,无法进行真实的性能测试和压力测试。
因此,仅靠一个本地的 IDE 已经不能满足开发者的日常开发所需,这时候 CloudIDE 就派上用场了。我们所定义的 CloudIDE 不仅仅是把您所熟悉的 IDE 如 VS Code、Intellij IDEA 搬到云端,而是通过模板市场在云端建设一个完整的开发生态。您需要的工具在云端模板市场都能够方便获取,您也可以在 CloudIDE 快速的定制自己的模版并发布到模版市场原,从而构建云原生时代的价值共创生态体系。
从个人的视角看研发效能
从个人的视角来看研发效能,确实应该强调功劳而不是苦劳。在研发过程中,重要的是完成任务,而不是花费多少时间和精力。因此,应该注重工作的质量和效率,而不是工作的数量和时间。使用 CloudIDE 开发,无需安装和配置开发环境,可以快速启动和使用。这样可以节省开发人员的时间和精力,提高开发效率。
此外,强调更聪明的工作也是非常重要的。在研发过程中,应该注重思考和创新,寻找更加高效和智能的解决方案。这样可以提高工作效率,减少重复劳动,提高工作质量。CloudIDE 可以提供实时预览和云端调试功能,可以在开发过程中实时查看和调试代码效果,提高开发效率和质量。
最后,强调个人的成长也是非常重要的。在研发过程中,应该注重学习和提升自己的技能和能力。CloudIDE 不仅仅是一个或多个工具集合,同时还可以让自己聚焦更有价值的业务逻辑,使自己更专注,提高自己的竞争力,为未来的发展打下坚实的基础。
总之,从个人的视角来看研发效能,应该强调功劳而不是苦劳,强调更聪明的工作,强调个人的成长。这样可以提高工作效率和质量,同时也可以提高个人的竞争力和发展潜力。
从组织的视角看研发效能
根据上述研发效能的定义, CloudIDE 在整个研发过程价值流动过程中扮演了什么角色呢?这就需要先了解当前数字化转型大背景, 数字化转型是指企业利用数字技术和数据来改变业务模式、流程和组织结构,以提高效率、降低成本、增强竞争力。数字化转型的核心是价值流动,即价值从供应链的一端流向另一端的过程。价值流动可以分为三个层次:内部流动、外部流动和全局流动。
内部流动是指企业内部各个部门之间的价值流动,如研发、生产、销售等。外部流动是指企业与供应商、客户、合作伙伴之间的价值流动,如采购、销售、物流等。全局流动是指企业与整个产业链、生态系统之间的价值流动,如共享经济、开放创新等。
数字化转型的目标是实现价值流动的优化和协同,以提高效率、降低成本、增强竞争力。在这个过程中,研发管理起着至关重要的作用。CloudIDE 作为一种基于云计算的集成开发环境,可以帮助企业提高研发效能,从而实现端到端的数字化转型的目标。
坦白讲,作为数字化转型的实践者,软件开发人员自己的数字化手段还比较匮乏,甚至是生产力工具还比较落后。作者在研发领域工作了近三十年,最初使用桌面版本 IDE 为嵌入式产品开发固件到早几年仍然使用桌面版 IDE 为云平台开发微服务,从上述 IDE 的历史发展了解到,在大部分的时间里,IDE 所做的还是功能的堆积,总体上的变化并不大,直到近几年作者有幸带团队研发了 TitanIDE, 才有机会在 CloudIDE 上面实现通过云原生开发环境开发云原生应用。终于实现了云原生的理念:生于云、用于云。
方案
在 CloudIDE 上开发云原生应用具有不限设备、开箱即用、协同开发、效能度量等优势。
不限设备
CloudIDE 可以在任何设备上运行,无论是 Windows、Linux、Mac 还是移动设备,只要有网络连接就可以使用。这样可以让开发人员随时随地进行开发工作,不受设备限制。跨平台支持可以提高研发效能的主要原因是:
- 提高开发人员的灵活性和自由度,让他们可以在任何时间、任何地点进行开发工作,避免了时间和空间上的限制。
- 提高开发人员的工作效率,让他们可以更快地响应客户需求和市场变化,加快产品上线速度。
- 降低企业的 IT 成本,避免了购买和维护多个开发环境的成本,提高了 IT 资源的利用率。
开箱即用
CloudIDE 可以将有经验的开发人员的智慧沉淀并固化成为一个开箱即用的开发环境模板,以便其他开发人员可以直接使用。这个功能被称为“模板化开发环境”。模板化开发环境可以帮助企业快速搭建标准化的开发环境,提高开发效率和质量。模板化开发环境可以包含以下内容:
- 编程语言和框架模板化。模板化开发环境可以包含一个或多个编程语言和框架,以便开发人员可以直接使用。例如,一个 Java 开发环境模板可以包含 Java 编程语言和 Spring 框架。
- 开发工具和插件模板化。模板化开发环境可以包含一些常用的工具和插件,以便开发人员可以直接使用。例如,一个 DBeaver 数据库管理客户端可以做成一个模板。
- 配置文件和脚本模板化。模板化开发环境可以包含一些配置文件和脚本,以便开发人员可以快速配置开发环境。例如,一个 Java 开发环境模板可以包含一个 Maven 配置文件和一个 Tomcat 启动脚本。
- 最佳实践和规范模板化。模板化开发环境可以包含一些最佳实践和规范,以便开发人员可以遵循。例如,一个 Spring Cloud 开发环境模板可以包含一些代码规范和设计模式。
总之,模板化开发环境可以帮助企业快速搭建标准化的开发环境,提高开发效率和质量。模板化开发环境可以将有经验的开发人员的智慧沉淀并固化,以便其他开发人员可以直接重复利用。
协同开发
协同开发是现代软件开发中非常重要的一环,可以提供开发效率和质量,CloudIDE 支持多人协同开发,多个开发人员可以同时在同一个项目中进行开发工作,实时协作,提高开发效率。例如,开发人员可以将自己在 CloudIDE 的工作区分享给团队成员,实现在云端即时实现代码协同调试和代码审查等事务。
效能度量
彼得·德鲁克说过:“如果你无法度量它,就无法管理它”。研发效能度量是研发管理的重要组成部分,它可以帮助企业了解研发效能的状况,发现问题和优化机会,提高研发效能。本地 IDE 是一个黑盒子,在本地 IDE 上的研发活动无法度量。在 CloudIDE 上则能实时、全面地进行数据收集和指标度量,如下面几点:
- 代码质量。代码质量是研发效能度量的重要指标之一,它可以帮助企业了解代码的可读性、可维护性、可测试性和可扩展性等情况,发现问题和优化机会。代码质量的主要指标包括代码复杂度、代码重复率、代码规范等。比如通过代码审查的成功率可以衡量代码的质量。
- 代码管理。在本地 IDE 开发代码,只有当开发人员把代码提交到代码仓库才有可能获度量代码的信息,而在 CloudIDE 上,可以实时获取用户未提交代码的情况、代码构建频率、代码构建时长等指标。
- 团队协作。团队协作是研发效能度量的重要指标之一,它可以帮助企业了解团队的协作能力、沟通效率和决策效率等情况,发现问题和优化机会。团队协作的主要指标包括团队合作度、沟通效率、决策效率等。
总之,相对本地 IDE 来说, CloudIDE 对项目管理来说是完全透明的,让管理人员随时洞察开发人员的进度和代码质量,从而更加精确的把控项目进度,按时高质量的交付业务价值。
结论
数字化转型是企业发展的必然趋势,数字化研发管理是数字化转型过程中不可缺失的一环。CloudIDE 作为一种基于云计算的集成开发环境,可以帮助企业提高研发效能,实现数字化转型的目标。当然,任何方案都有优劣势,并没有所谓的银弹,正如不可能一种药能包治百病一样,企业应该根据自身规模和业务需要,采取适合自己的措施提升研发效能。总的来说,CloudIDE 已经受到越来越多的关注并在云原生开发场景下落地,未来这个趋势还将延续下去。
最后,附上 CloudIDE(云端 IDE) 在百度的关键字搜索趋势图。