什么是基于工程数据的研发管理
当前研发的管理主要体现为过程管理。一般的研发体系的建立过程如下:
过程管理涉及到人员、流程、数据,研发管理一般的方法:
建立过程体系框架,其中说明:角色、工作流、工件,
然后+工程团队执行过程,
然后对过程效果评价,改进过程。
执行工程过程的阶段,一般成为项目实施阶段。主要管理:
项目计划,
项目跟踪与监控,
项目交付。
项目管理一般是任务驱动的,采用WBS的方式分解工作任务。
|
在研发的要素之中,到底哪个是管理的核心呢?
人员:需求工程师->架构师->开发工程师->测试工程师
工程数据:需求模型,设计模型,code,测试模型
我是这么看的:
过程是从管理者的规范视角:强调的是团队作为整体,对外提供有价值的产品和服务。
人员是从执行者的工作视角:什么工作都是人做的,提高能力要以人为本。
工件是产品本身的视角,我们最终要的既不是过程也不是人员,而是对外交付有质量的产品,这需要工程数据的支持:需求从用户角度描述产品,设计从实现角度描述产品,软件和硬件集成为产品,测试验证产品的最终质量。
而实际上以工件为代表的工程数据才是研发管理的核心:
研发的最核心工作内容是首先确定需求,然后在此基础上设计、实现、测试,向用户交付符合需求的产品。
在这个过程中我们更关心的是工件而不是过程。因为所有的同类项目的过程基本都是一样的,因为用户的不同需求而生的工程数据(需求描述、设计模型、code、测试数据、产品数据)却是完全不同的。
做好一个具体的产品或者项目,研发过程的掌控属于基本技能,而工程数据才是工作的核心和最大的挑战。 |
核心内容是什么呢?是工件,都有哪些工件呢:
需求的工件:用户原始请求,需求分析文档,需求模型。
设计的工件:设计模型,设计文档,原型。
Code 的工件:code,代码编写规范,code检查指标,code检查结果。
测试的工件:质量标准,测试用例,bug。
产品的工件:产品本身,产品配置单,产品手册。
所以研发管理的关键是把各种视角面向工件落地:
过程落地到工件:明确活动输入、输出什么工件;
质量落地到工件:什么工件具有什么质量标准,如何评价。
人员的职责落地到工件:什么人具有什么职责,这个职责输出的工件是什么;
工具的功能落地到工件:什么工具输出什么工件,工件存在哪里。
有哪些工程数据
工件的本质是一种工程数据,所以研发管理应该以工件作为核心数据实现数字化管理。研发管理的所有方面(产品、过程、工件、人员、工具)都应该采用数据化方式进行登记、记录、跟踪和管理。作为研发的工程数据,有如下方面:
产品框架、产品配置与产品应用记录;
过程框架、过程定义与过程执行记录;
角色框架、人员定义与工作记录;
工件模板、工件定义与工件实例;
工具框架、工具配置与工具使用记录。
对于这么多个工程数据,应该把工程数据梳理一下,以便明确管理的内容,这是进行有效的工程数据管理的基础。如下是对工程数据的主题、层次、维度的梳理:
说明如下:
数据主题:工程数据的主题按照数据描述的内容来进行划分,可以分为如下主题:
产品数据,描述产品的组织:产品线、产品、版本,以及支持产品的平台和组件。
过程数据,描述研发过程的组织:过程、过程的活动、活动的执行者和活动输入输出的工件。
工件数据,描述研发的交付物:需求交付物、设计交付物、实现交付物、测试交付物等。
人员数据,描述人员的组织:部门、岗位、角色、职责和分配的人员。
工具数据,描述工具:工具的功能,实现功能需要的参数,参数的配置。
数据层次:工程数据从定义到应用一般分为3个层次:
数据定义:对数据对象的结构,结构包含的属性,属性的数据类型以及数据结构之间的关系进行定义。
质量标准:对数据对象的质量建立评价标准,包括:结构质量、属性质量、类型质量以及数据对象的关系质量。
数据实例:是具体研发项目中产生和记录的工程数据,按照数据定义存储,支持具体的研发工作,并可以按照质量标准进行评价。
数据维度:数据从内容处理的方法一般分为 模型、文档和条目化结构数据。各自有应用的用途:
模型,适合描述逻辑复杂的关系,适合专业分析设计工作。
文档,采用自然语言为主,以日常化的文档来描述工程数据。
条目,采用结构化数据列表的方式,适合管理和跟踪。
基于数据的研发管理都有什么
既然工程数据是研发管理的基础,那么如何进行基于数据的研发管理呢?
首先确定基于数据的研发管理的工作模型:
工作流程:把以活动驱动的工作过程视图切换为以数据驱动的过程视图。
角色和职责:基于数据驱动的过程视图,描述过程中人员的角色和职责。
工件和质量:基于数据驱动的过程视图,描述过程中处理的工件及其质量要求。
然后在此基础上建立相应的支撑系统:
工程数据定义:采用建模工具作为工程数据定义工具,可以建立工程数据模型,描述工程数据对象、属性和关系。并可以根据模型生成工程数据定义的程序脚本。可以:
面向模型创建模型框
面向数据库创建工程数据结构。
面向文档创建文档模板。
工程数据的应用实例:在工程数据定义建立的数据结构基础上,进行具体的工程项目实施。可以:
基于模型框架添加具体的模型内容;
基于工程数据结构编辑和管理相关的工程数据;
基于文档模板填写具体的文档内容。
工程数据的统计分析:对工程数据实例进行统计分析,指导未来的改进:
产品改进:基于产品数据,分析产品的用户满意度,指导未来的产品设计。
过程改进:基于过程数据,分析过程的效率,指导未来的过程优化。
工件改进:基于工件数据,分析工件模板的指导性和有效性,知道未来的工件模板优化。
人员能力提升:基于人员的工作数据,评价人员的能力,指导未来的能力培养。
工具改进:基于工具的应用数据,评价工具的有效性,指导未来的工具优化。
质量提升:把产品质量、过程质量、工件质量、人员能力、工具能力进行联合分析,发现质量短板,给出质量优化方案。
|
如何进行基于数据的研发管理
要实现基于数据的研发管理,应该:
首先建立工程数据规范,并提供工程数据应用范例;
在此基础上在进行工程数据的服务,基于工程数据进行产品研发与交付。
建立工程数据规范是为企业建立工程的基础设施,所以是一个充满挑战的工作,应该有独立的专家团队,以专门的项目方式进行实施。
而工程数据服务则使用基于工程数据规范,为每个研发项目提供工程数据的支持,所以应该有很多项目,这些项目也应该有独立的管理。
下面分别介绍这2种工程的实施方法。
建立工程数据规范
《建立工程数据规范》工作的目标是建立能够支持未来研发项目的工程数据规范。是基于数据的研发管理的基础。下面分别介绍
建立工程数据规范 的工作的目标、范围、角色、流程和工件。
目标
建立工程数据规范,
建立工程数据应用范例,
以工程数据规范支持未来的工程项目。
建立工程数据中心,积累数据资产。
以数据驱动工程的实施,提高质量和效率。
范围
对已已有的工程数据梳理,
建立工程数据规范,
应用工程数据规范进行工程实践,评估工程数据规范的有效性,优化工程方法,
对外发布有效的工程数据规范。
角色
建立工程数据规范一般需要如下角色:
角色 |
职责 |
能力要求 |
数据架构师 |
梳理工程数据资源,
逆向工程数据模型,
划分工程数据主题,
提炼数据类型,
指导工程数据规范的建立。
|
熟悉数据治理工程方法,
熟悉数据架构设计和建模,
了解如何管理复杂的数据资产。
|
工程规范专家 |
熟悉某一特定的工程实施,可以对该特定工程梳理工程规范: 识别数据资源,
建立数据资源目录,
指定该领域的工程数据规范。 |
对某一特定领域的工程具有实施和管理经验,例如熟悉 系统工程、软件工程、硬件工程。
|
数据分析者 |
对已有的工程数据进行分析,指导决策和优化:
提出分析需,
设计数据分析模型,
进行数据分析。 |
熟悉数据决策分析方法
了解如何进行数据挖掘,
能够基于数据分析进行决策。 |
工程示范团队:
需求分析师,
设计师,
开发工程师,
测试工程师。
|
对制定的工程数据规范进行应用实践,并提供应用效果评估与反馈。
|
具有工程实践的成功实施经验,
了解如何评价工程的有效性。
|
流程
建立工程数据规范的整体流程如下:
说明:首先对已有的工程数据资源进行梳理,然后建立工程数据规范,在此基础上应用工程数据规范进行实践验证,最后对工程数据规范的应用进行分析,进入下一次的工程数据规范循环。直到输出符合工作需要的工程数据规范。
如下分别是数据资源梳理、建立数据规范、工程数据项目示范、数据应用效果分析的二级流程图:
工程规范专家负责提供工程的数据资源, |
数据架构师负责整理数据资源目录。 |
|
数据架构师负责建立工程数据架构模型框架, |
工程规范专家负责具体的工程数据建模。 |
|
示范团队负责对示范工程进行实施,在项目进行各种工作,参考工程数据规范创建工程数据。 |
|
|
数据分析者可能是研发管理者或工程规范制定者, |
他们可以通过数据分析获得决策或者改进的依据。 |
|
工件
在如上的建立工程数据规范的过程中,有如下工件:
数据资源:历史积累下来的各种工程数据资源,例如:需求文档,架构模型,code,测试报告等等。
数据规范:未来数据为中心的研发管理的数据规范,包括:数据结构框架,元数据,数据类型定义。
工程数据范例:基于工程数据规范的示范项目的具体的工程数据实例,例如:需求数据,设计数据等等。
数据分析需求:对工程数据的各种分析需求,例如:产品质量分析需求,过程效率分析需求,人员能力分析需求。
数据分析结果:基于各种分析需求,选择合适的数据和算法,执行分析后的结果,例如:产品质量分析报告,过程效率分析报告,人员能力分析报告。
工程数据服务
《工程数据服务》工作的目标是基于已经建立的工程数据规范和工程数据资产,对工程团队提供工程数据服务,以便让工程团队能够高质量、高效率的交付用户满意的产品。下面分别介绍
建立工程数据规范 的工作的目标、范围、角色、流程和工件。
目标
为工程团队提供工程数据服务,
通过工程数据理清,对工程团队形成指南,
提高工程的质量和效率。
范围
对用户提出的工程数据需求分析
设计工程数据方案
执行工程数据评估
工程数据应用效果分析。
角色
角色 |
职责 |
能力要求 |
数据服务团队 |
分析数据需求
设计数据服务方案
实现数据服务
对数据应用效果进行分析
|
熟悉工程数据规范和资源,具有数据服务的意识,能够为用户根据需求配置工程数据。
|
工程团队 |
对制定的工程数据规范进行应用实践,并提供应用效果评估与反馈。典型的角色有:需求分析师,设计师,开发工程师,测试工程师。 |
具有工程实践的能力,了解工程实践过程、工件和工具,了解团队的各种的角色和职责。
|
工作流程
工程数据的真正价值是把工程数据作为一种服务,面向用户团队提供支持。所以工程数据服务流程是理清数据面向用户价值的关键流程,具体定义如下:
|
工程团队希望提高产品质量和项目实施效率,通过数据服务目录,了解到数据服务团队能够提供相关的支持,所以提出数据服务需求。数据服务团队对工程团队特定的数据需求进行分析,然后基于已有的数据规范和数据资源设计数据服务方案,然后定制相关的数据服务实现,向工程团队发布数据服务,工程团队进行数据应用,进行基于数据的工程实践,数据服务团队对数据应用记录进行分析,改进数据服务方案。 |
|
如下是工程数据服务的二级流程,逐一做简要说明:
工程团队对要实施的工程进行工作流建模和工程数据建模,根据建立的工作流模型和工程数据模型,提出数据服务请求。
工作流建模示例:需求->设计->开发->测试
数据模型示例:需求工件-设计工件-code-测试工件 |
|
数据服务团队接收到数据服务请求后,进行数据需求分析:结构分析、数据类型分析、状态分析、数据关联分析,形成正式的数据需求。
数据需求示例:需求数据,设计数据,code数据,测试数据。 |
|
数据服务团队基于数据需求进行数据服务设计,包括:数据结构设计、数据类型设计、数据状态设计、数据关联设计,形成数据设计模型。
数据设计模型示例:
模型框架:需求模型,设计模型,code模型,测试模型
文档模板:需求文档,设计文档,code文件,测试文档
条目框架:需求目录,设计目录,code目录,测试目录
|
|
数据服务团队基于数据设计模型进行数据服务实现,包括:数据结构配置、数据类型配置、数据状态配置、数据关联配置。生成可以提供的数据服务。
数据服务示例:
模型库服务
文档库服务
条目库服务。
|
|
|
工程团队负进行具体的项目实施,在项目进行各种工作,参考工程数据规范创建工程数据。例如:
参考需求模型框架创建需求模型,
参考设计模型框架建立设计模型,
参考code规范编写代码,
参考bug规范提交bug。
| |
|
工程团队在实施项目中积累的工程数据,会集中存放在工程数据库,这些工程数据是工程的真实历史记录,可以帮助规范制定者改进规范,管理者改进管理制度,工程师了解自己的产品和质量,进而提高能力。可以针对各种角色定义分析目标,然后选择合理的数据范围,定义分析指标和分析模型,执行数据分析,提供客观真实的报告,指导过程改进、管理决策和产品质量、人员能力的改进依据。
| |
工件
工程数据服务的过程中处理的工件如下图所示:
下面逐一说明:
工件 |
说明 |
数据服务请求 |
工程团队要进行工程实践,对工程实践中需要而数据服务提出请求。例如:希望提供要编写的文档模板、模型框架、和表单的结构。 |
数据需求 |
数据服务团队针对工程团队提出的服务请求,进行数据需求分析,理清他们需要的哪些数据、这些数据之间存在什么关系、有哪些数据规范可以支持。例如:需求模型框架的请求对应到
系统需求模型框架和软件需求模型框架。需求文档模板的请求对应到系统需求文档模板和软件需求文档模板。同时为了支持这些模型框架和文档模板,还需要相应的关联数据。 |
数据服务方案 |
数据服务团队基于数据需求进行数据服务设计,定义数据结构、数据类型、数据状态、数据关联。例如:
模型框架:需求模型,设计模型,code模型,测试模型。
文档模板:需求文档,设计文档,code文件,测试文档。
条目框架:需求目录,设计目录,code目录,测试目标。 |
数据服务 |
数据服务团队经过基于工程数据规范,进行配置实现后,可以对外提供的数据服务。例如:模型框架和模型库服务,文档模板和文档库服务,数据表单和数据库服务。 |
应用记录 |
工程团队进行具体的工程实践,基于数据规范创建各种具体的数据实例:产品数据、工件数据、过程数据、人员数据、工具数据。 |
应用分析报告 |
数据服务团队对工程实践记录的数据进行分析,提供可以作为决策和优化客观依据的分析结果:产品质量报告、工件质量报告、过程效率报告、人员能力报告、工具效能报告。 |
本文提出的基于数据的研发管理,是一个关注研发核心内容的复杂话题,单独一篇文章不足以了解全貌。
如下是本人的一些相关的文章和讲座视频,欢迎参考:
讲座:模型驱动的三维研发管理
文章:MBSE 过程建模(附:视频 )
视频:使用iSpace实现需求跟踪
文章:关联模型与文档,实现需求跟踪 (附:视频 )
文章:基于模型的需求管理 (附:视频 )
文章:基于模型的质量评测 (附:视频 )
作者简介:
俎涛,火龙果软件工程创始人,2001年创立了火龙果软件工程,2004年创立了IBM Rational用户组。1998年,曾作为骨干参与国家重点研究课题《面向特定领域基于组件的软件复用》,有幸比较深入的学习和使用的UML进行领域建模、提炼可复用组件和架构。在后来的研发项目中,一直采用模型进行分析设计,积累了一些心得和经验。20年来一直专注于MBSE,熟悉
UML、Sys ML、ArchiMate、BPMN、UPDM、DataModel等建模语言和规范,在以往的经历中,最大的感触是汇聚了很多精英人才的软件工程和系统工程领域居然几十年都是一种凌乱迷蒙的状态,从自己的经历所得,觉得清晰的模型,才是拨开工程迷雾的关键所在,所以不断研究和应用各种建模技术,并从自己的工程实践中提炼经验,形成对于自己可持续的方法论,例如《MBSE
从方法到实践指南》 《基于模型的三维研发管理》 《基于模型的需求管理》 《模型驱动的架构设计》
《基于模型的质量管理》 《基于模型的人员能力管理》 《iProcess过程改进方法》,目前正在作为产品经理和架构师,进行MBSE(基于模型的系统工程)平台的研发,希望建立要给基于模型的工程解决方案,后续会不断写些文章,希望能给同行一些借鉴。 |
如果您希望了解更多信息:
下载 pdf版:
基于工程数据的研发管理
本文使用的建模工具为EA,可以下载试用版http://tool.uml.com.cn/ToolsEA/download.asp
后记
希望您读了此文后有所受益。
如果您有经验乐于分享,欢迎投稿给我们。
如果您对我们的培训、咨询和工具感兴趣:
|