深度解读7个场景,破解研发效能障碍

伴随着数字化与信息化的发展,研发效能和降本增效日渐成为企业管理焦点。尤其对于研发型团队而言,快速地、保质保量地交付价值是优先级最高的任务,但在实际的开发过程中,我们总会遇到技术债务、并行冲突等影响研发效能的情况。

在告别野蛮生长,主张精耕细作的今天,企业/组织应该如何解读种种效能障碍,制定可复制的解决方案?本篇文章将从7 个常见的研发场景出发,分享有关研发效能提升的心得与经验。

场景一:并行开发导致代码冲突

组内/组间并行,或由代码回退/合并等造成的各种并行开发导致代码冲突是常见的效能问题之一。并行化的分支管理和版本管理是比较重要的议题,而合并策略、Feature分支管理、变更管理都可能影响研发效能。

解决这个问题,可以考虑以下三种优化方式:

1. 时序串行管理

以时间为轴,串起整个版本主线,代码对版本负责,版本对功能负责。

对同一系统而言,代码是并行开发的,但最终的交付物/发布物是顺序发布的;对不同系统而言,主要考虑相互间的依赖关系,影响面以及发布顺序。

2. 功能化整为零

按照敏捷迭代方式将大功能化整为零,更好地应对变化。 如遇到迭代周期内需求必须变更的情况,需要确定好变更的影响范围和需求优先级。

3. 需求分而治之

技术/优化需求和跟版迭代需求可能需要采用不同的发布策略和分支管理。 这样既可以保证业务目标按期、有效地达成,还能保障各种优化和支撑工作灵活地进行和并行。

场景二:技术债与架构腐化

技术债是一个老生常谈的话题。企业在平常的研发管理中,应重视「好习惯」的培养,若等到技术债堆积成山,系统病入膏肓才着手解决,恐怕就为时已晚了。

建议在日常的研发管理中,加强代码审核机制,实行代码的P3C规范化检查;前期对业务的技术方案也应作出合理取舍。

另外,架构设计应结合实际业务和资源进行充分考虑,谨防过度设计。 好的架构是演化而来的,没有一劳永逸的完美架构。

场景三:频繁的故障排除任务

并行协同时,配置和资源文件的不同步也是造成冲突和问题的重要因素。为避免额外的排除工作影响研发效能,企业可以考虑提升配置和资源的独立性以及简化性。

第一,尽量按时间顺序管理需求配置的唯一值;如果不能保证唯一配置,则推荐按分组逻辑管理各组的修改值(不冗余其他组的原有配置)。

比如,按时间序列管理或分组并列管理,待确定提测节点后再进行合并。这样可以较清晰地发现冲突项,防止互相覆盖。

此外,除公共配置外,考虑按功能进行分组配置,不要将全部内容写在一个配置文件里。

第二,配置合并时,签入签出流程要尽可能短。 配置的合并过程需要审核,但配置调整的流程时间窗口不易过长,以免造成额外的等待成本,诱发潜在的冲突。

场景四:生产问题排查与数据安全性

许多时候,生产环境的数据必须脱敏,但同时,研发团队又需要验证生产问题或缩小问题的影响面。这种情况应该如何解读和解决?

1. 用脱敏后的非敏感数据完成验证

生产环境的客户数据脱敏后,记录部分非敏感的ID参数、异常等日志仍可以作为有效数据,完成特定场景下的分析诉求。

2. 在Pre准生产环境同步非客户数据

准备一个与生产环境相对一致的「克隆体」——Pre准生产环境,同步并通过非客户数据完成生产环境的验证。

非客户数据包括部分生产测试的数据、经客户允许的可搜集的部分数据,以及经过合规完全脱敏后的数据等等。

3. 采用A/B测试,先行渗透运行

通过少量客户渗透,或对部分特定租户进行生产环境的短时渗透运行, 稳定后再投入大规模部署。

场景五:环境复杂度

研发过程中,开发环境和部署环境的复杂度也会影响研发效能。因此,建议尽可能地降低自测、联调、环境部署的复杂度,以及同一个服务的代码量和复杂度。

举个例子,有些系统仅是启动就要耗时 30 分钟,那么每位开发者每天花在应对环境、应对启动的时间成本也显著增加了。

场景六:生产问题和潜在问题

不可否认地,没有一款产品、一项服务能永远不出问题。因此,搭建有效、可快速反应的业务监控和运维监控体系非常重要。

不管选用哪种监控平台系统,核心目的都是监控核心目标,并实现关键指标的及时预警和通知。有效、直接、快速地反应和处理发现的问题,比丰富的监控方案更为重要。

其次,重视测试环节。 考虑补充多种测试手段,尽可能地发现问题,比如针对接口的自动化测试、针对场景的集成测试、对大型系统的压测环境等等。

场景七:非技术影响因素

在研发流程管理过程中,非技术因素也会对研发效能产生重要的影响。

  • 研发流程的简洁性与合理性
  • 产品持续输出与合理的需求粒度
  • 会议效率和沟通协调的成本及损耗
  • 性格不同导致的有效沟通方式的差异
  • 长期的紧绷状态

Liga总结

研发流程管理是研发效能提升领域中重要的议题。管理者可以以鸟瞰视图,分析和判断研发全生命周期的运转情况,并借助智能化的监控和预警工具,发现问题、解决问题、避免问题,做出更可靠的管理干预和引导。

了解更多敏捷开发、项目管理、行业动态等消息,关注我们 LigaAI@oschina 或点击LigaAI - 新一代智能研发协作平台,在线申请体验我们的产品。

优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/u/5057806/blog/5581551

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。