APP下载

软件研发管理体系建设的思考与实践

2020-04-23唐海涛张业星蒋海峰

电子技术与软件工程 2020年8期
关键词:运维管理体系管理系统

唐海涛 张业星,4 蒋海峰,4

(1.中国电建集团华东勘测设计研究院有限公司 浙江省杭州市 311122)

(2.浙江华东工程数字技术有限公司 浙江省杭州市 311122)

(3.数字城市CIM 技术浙江省工程研究中心 浙江省杭州市 311122 4.浙江省工程数字化技术研究中心 浙江省杭州市 311122)

近几年很多IT 企业都在向集成研发,共享研发方向转型,这是一个趋势。所以组织架构转型,着手打造一个优秀的研发体系,从长远看对业务的发展具有很大的推动作用。研发管理体系是企业管理体系的重要组成部分,促进企业研发管理的科学化、规范化和标准化。贯彻公司研发管理体系标准,谋求对研发过程进行规范化管理,以提升公司研发管理及软件过程能力,其意义包括:

(1)有助于提升公司IT 产品、IT 项目的研发质量和绩效;

(2)有助于缩短产品研发周期;

(3)降低研发成本;

(4)控制研发风险;

(5)有助于公司核心竞争力的提升。

1 体系的框架设计

1.1 体系思维架构

研发管理体系的设计是随公司战略、业务方向、产品和技术的特性而异的,体系框架需要在公司战略的指引下,重点考虑如何为业务和产品服务[1]。结合该目标,梳理的体系思维框架模型如图1所示。

研发体系不只是一个技术劳动,它是对公司战略分解的一个重要环节。因此,研发体系设计需要重点考虑如下四个方面:

(1)以业务模式为前提:考虑企业当前的现状、战略规划和业务发展的要求。研发体系根据业务的变化和发展的不同阶段,要在时间和空间维度上建设的更加立体,有效的支撑业务的多样和多变。

(2)以产品转化为效率:产品普遍具有较强的可复制能力,一般需要依托项目打造,从项目中去提炼普遍性的需求,最后转化为产品。再以产品来快速实现项目的需求,因此高效的产品转化效率可以更加有效的支撑业务。

(3)以平台架构为动力:不论技术平台还是产品平台,平台的主要作用是强化业务支撑和产品转化的能力。产品平台是通过需求通用性的高度抽象,使其更标准化;技术平台是通过技术实现的封装,实现功能的可扩展性,支持更多场景[2]。

(4)以研发管理为基础:研发更关注对人和物的管理。首先,分散式的研发团队无法实现技术共享、人员共享。其次,企业过程的成果,比如代码、文档、方案是企业的宝贵资产,应该做好组织过程资产管理。最后,将研发管理流程、规范在实践中落地,需要重视与坚持。这些都是做好研发管理的基础。

1.2 体系流程定义

研发管理流程是集成产品开发管理体系的骨架,是其他各项产品开发管理工作得以顺利开展的基础。研发管理流程建设不是一蹴而就的,需要随着企业业务的发展、关键技术的累积、人员能力的提高而不断迭代、优化、升级[3]。因此研发管理流程定义需要按照“先僵化、后固化、再优化”的方式持续改进、更新。

图1:研发体系思维框架

图2:研发管理系统逻辑架构

(1)流程缔造:明确项目研发、产品研发、技术研发等研发场景分类,针对具体场景,搭建研发管理体系总体框架,设计研发管理流程相关办法。并汇总、整合、修订企业现有的各类技术规范,为研发工作缔造基本的流程约束和规范要求。

(2)流程实践:结合具体的产品或基础研发项目,开展研发流程相关办法的试用和推行。并适时考虑将以上内容转化为研发管理系统线上功能,促进标准流程的推广使用。

(3)流程优化:在流程的试用和推广过程中,注意建立用户反馈渠道,持续收集相关意见或建议;经过进一步的汇总整理、策划讨论后,确定改进措施,持续优化迭代现有流程。

1.3 管理系统设计

为规范IT 研发管理工作、提升整个团队的沟通和协同工作效率,建立研发管理系统是实现将研发管理流程落地、强化研发过程管控、提高研发质量、节约成本的重要手段。从研发活动生命周期看,与研发活动相关的管理工作包含需求管理、设计与编码管理、测试管理等。因此研发管理系统的设计需要重点考虑如下方面:

(1)系统应做好研发的需求管理,包括需求设计、收集、访谈等需求活动。功能方面应具备强大的编辑和站点管理特征,以帮助团队成员之间共享信息、文档协作、集体讨论、信息推送。[4]

(2)系统应做好研发的知识管理,贯穿需求管理的过程,从需求文档整理、需求意见收集、需求文档完善到最后形成正式需求文档,中间形成的各类文档,都是宝贵的组织过程资产,应该保存到企业知识库中,方便后期查阅。

(3)系统应做好研发的测试管理,包括基本的项目管理和需求管理、版本管理、模块管理、提测流程管理、测试用例管理、缺陷管理等功能。

(4)系统应做好研发的运维管理,基于开发、测试、运维一体化的要求,实现敏捷开发、敏捷部署和敏捷生产。功能应该贯穿计划、编码、构建、测试、发布、部署、运营、监控全过程。

(5)系统应做好研发的服务管理,应提供以客户服务为特定场景的工作模式,并与需求与知识管理系统、运维管理系统发生关联,使开发人员、运维人员和客服人员在统一平台上协同工作。

研发管理系统原则上应与企业现行管理流程制度相一致,但也应考虑到实际执行过程中的适用性与可操作性,对企业现行管理流程进行局部修订,以适应最新研发管理模式。

2 体系的建设实践

本文介绍的研发体系建设实践是在综合考虑了公司战略、业务方向、产品类型的基础上建立的。公司的业务方向主要面向工程行业,在自主云平台技术基础设施的基础上,支撑工程的数字化,依托项目打造产品。主要业务模式包括产品销售、软件外包、云服务模式。

2.1 体系流程建设

研发管理流程建设是在公司现行研发管理相关制度的基础上建立并优化研发过程的过程,结合IPD 研发管理模式与理念,针对不同场景,制定便于管理和执行的流程规范。主要建设内容包括:

(1)搭建研发管理流程框架:明确产品研发、技术研发、项目研发等研发场景分类;针对具体场景,分析其具体研发生命周期、涉及角色和主线流程。

(2)细化研发管理具体活动:进一步细化主线流程,归纳总结研发过程中的最小活动,如竞品分析、用户故事、结对编程、测试支撑等,描述其基本流程,制作相应工具模板。

(3)整合提炼各类研发规范:以研发管理主线流程为基础,编制并优化设计、开发、测试、运维等环节的各类规范。

2.2 管理系统建设

研发管理系统是研发管理流程的落脚点,是流程实践的平台。按照研发管理系统设计的思路,系统建设应该包括项目管理、需求管理、知识管理、测试管理、运维管理、服务管理等模块,每个模块之间是相互关联、相辅相成的关系。各模块协同工作,促进敏捷开发,提高软件开发效率。系统的逻辑关系如图2 所示。

(1)研发管理流程/技术规范是研发体系建设的核心,贯穿体系建设的始终。流程是研发管理系统的输入,辅助研发过程各阶段按照规范执行。同时,将标准规范文档和模板文档作为知识积累,存入组织过程资产仓库。

(2)研发过程管理模块是流程的具体落脚点,使产品、项目在系统中按照规范流程执行。研发过程管理模块基于成熟度比较高的JIRA 建立,与测试管理、运维管理模块实现数据互通,将项目管理、需求管理、代码等信息无缝衔接,实现将需求、研发、测试、运维串成一条线。

(3)通过Confluence 建立需求管理和知识管理模块,基于Confluence 专业的企业知识管理与协同能力构建企业Wiki,帮助团队成员之间实现共享信息、文档协作。最终将知识沉淀形成知识库,作为组织过程资产仓库的一部分。

(4)建立了测试管理模块,实现公司测试管理的流程化和标准化。同时,统一了公司的测试工具,包括UI 自动化测试、接口测试、性能测试、安全测试等。

图3:应用案例

(5)运维管理模块,建设内容包括基于Git 的源代码管理、集成Jenkins + Gitlab + SonarQube 的源代码质量自动化检测等,使得软件研发流程更顺畅,并将代码等作为重要的公司资产沉淀到组织过程资产仓库。

(6)基于JIRA Service Desk 建立服务管理模块,为IT 和客户服务部门提供高效、灵活的服务管理解决方案。比如用户请求及反馈的处理,SLA 的追求。

3 应用案例

研发管理体系建设是随着公司规模和业务的快速发展逐步完善和迭代更新的,研发体系建设缓解了公司项目多、时间紧、人力资源紧缺、成本高等问题,已经有效提高了公司对产品、项目、技术研发的管控力度,提高了整体研发效益。截止目前,已经实现了90%以上项目按照研发管理体系框架统一在研发管理系统中进行研发过程管理。如图3 所示,文控管理系统在测试管理模块中的管理界面。

4 结语

研发管理体系的建设需要因地制宜,结合企业的战略、业务方向、产品和技术特点等实际情况来建设。本文重点介绍了体系建设的核心组件,即流程、系统、仓库。一般IT 企业研发体系建设需要以优化研发过程管理为目标,建立符合企业现状的内容,例如研发团队建设、项目管理、成本管理、风险管理、统一技术路线等。建议各企业在体系设计时进行全面的考虑,在体系落地时适当裁剪,以符合企业的实际情况,并在不同发展阶段动态调整、优化。

猜你喜欢

运维管理体系管理系统
对质量管理体系不符合项整改的理解与实施
基于James的院内邮件管理系统的实现
基于KPI的绩效管理体系应用研究
控制系统价格管理体系探索与实践
运维技术研发决策中ITSS运维成熟度模型应用初探
基于LED联动显示的违停管理系统
海盾压载水管理系统
基于ITIL的运维管理创新实践浅析
基于RFID的仓储管理系统实现