目录
基于模型的项目管理
什么是基于模型的项目管理
为什么基于模型进行项目管理
基于模型的项目管理和传统项目管理有何不同
基于模型的项目管理需要什么工具
如何基于模型进行项目管理
操作演示
后记
什么是基于模型的项目管理
对于复杂系统的分析设计,一般采用MBSE工程方法,建立相应的模型:业务模型、系统模型、数据模型、软件模型、部署模型等等。这些模型和文档相比,大大提高描述的清晰度和完整性。基于模型的项目管理就是基于这些工程模型制定项目计划、进行进度跟踪、质量控制和变更管理。
为什么基于模型进行项目管理
项目管理的内容涉及到很多,常见的要素有:
需求:用户需求,系统需求,软件需求
需求跟踪:需求-设计-实现-测试 人员:角色、工作职责
工作任务:任务分配
工作质量:质量标准,质量评审
工作进度:制定计划,跟踪进度 有必要对项目的各种管理要素基于模型进行整理,理清它们之间的关系,这样才能为项目管理打下了良好的基础。如下的图示,说明了项目管理中各个要素的关系:
这就需要建立 2 种模型:
1. 工程模型,包括:
1)需求模型 : 描述有哪些功能和非功能需求
2)设计模型:描述有哪些逻辑模块或者子系统实现了需求。
3)实现模型:描述需要开发哪些组件,这些组件如何装配为子系统。
4)测试模型:描述了验证需求对应的测试场景,以及发现的 bug 。
2. 项目模型,包括:
1)人员模型:描述有哪些人员,承担了什么角色,具有什么职责。
2)过程模型:描述整个开发过程的角色分工和工作流顺序。
3)任务模型:描述了需求被分配给了哪些人员,成为什么工作任务。
这 2 种模型应该能够互相关联,如下是基于建模工具 EA 建立的 2 种工作模型以及二者之间的关联。
基于模型的项目管理和传统项目管理有何不同
从管理的角度来看,项目管理可以有两种方式 :
基于需求的项目管理:基于需求制定计划、跟踪进度。
基于任务的项目管理:基于任务制定计划、跟踪进度。
二者的区别如下:
这 2 种管理模式看起来很像,其实管理的核心有本质的区别:
基于需求的项目管理:管理的核心是项目的目标——需求。
基于任务的项目管理:管理的核心是工作者的行为—任务。
这两种管理的模式哪个更好呢?
需求是工作的目标本身,所以基于需求的简单而直接,让工作者时刻铭记自己在做什么。
任务是基于工作者对目标的分解得到的行为,并不是目标本身,所以很容易造成为了执行任务而工作,丢失目标本身。
可能有人会说,即使基于需求进行管理,工作的时候还不是要形成任务吗,这样才知道要怎么做。没错,任务可以告诉工作者怎么工作,但是这其实是刚开始工作的时候的人才想广而告之的事情,真正的工程师,都是领到需求,把需求分析清楚,然后把需求当作跟踪管理的焦点,而为了实现需求而分解出来的进一步的工作属于下一级别的事情。即使对于重大项目,有些任务非常重要,它也不可能比它的来源需求更重要。
由此可见:
那自然基于需求的项目管理才是更好的项目管理。
基于模型的项目管理支持这 2 种项目管理模式,但是更擅长基于需求的项目管理,因为在模型中记录了完整的需求以及需求 - 设计 - 实现 - 测试的跟踪关系。
如下是我们基于建模工具 EA 和 WebEA 进行 2 种项目管理模式的具体方法:
1. 基于任务的项目管理方法如下:
1)首先确定项目人员、其承担的角色和职责。
2)然后基于需求模型中的需求列表为人员分配承担的需求。
3)然后基于需求为人员创建对应的工作任务。
4)基于工作任务制定时间计划。
5)基于工作任务进行进度跟踪。 |
基于需求的项目管理方法如下:
1)首先确定项目人员、其承担的角色和职责。
2)然后基于需求模型中的需求列表为人员分配承担的需求。
3)这些人员根据自己的职责自动对应到需求关联的设计、实现和测试,但是并不显式的创建任务,而是把任务作为自己执行的一个内在机制。
4)基于需求制定时间计划,然后基于需求进行进度跟踪。
提示:比基于任务的项目管理少了一步! |
可以把 2 种项目管理的模式并列对比一下:
很明显:基于需求的基于与跟踪更加简洁、切中要点。
基于模型的项目管理需要什么工具
作为一种更先进的项目管理模式,基于模型的项目管理需要强大的工具支持:
模型库:应该建立一个团队共享的模型库,其中存放工程模型和项目模型。
建模工具:应该有能够同时支持工程建模(需求、设计、实现、测试)和项目建模(人员、过程、任务)的工具。目前我们采用建模工具 EA 。
管理工具:应该能够支持 web 形式的管理,这样访问方便、便于大规模部署,目前我们采用 WebEA 。
支持工具:应该能够建立过程指南、建立各个阶段的模型的跟踪关系,目前我们采用 iSpace 。
下面主要就 WebEA 的项目管理功能做一个简要介绍。
Web EA 支持以 web 浏览器方式对 模型进行浏览、管理和分析。可以把模型转换为易于管理的形式—— 列表视图,对需求进行排序、分组、分配、变更管理、质量评审。还支持对需求 - 设计 - 实现 - 测试多种形式的跟踪,并对需求进行统计分析。
如何基于模型进行项目管理
下面就如下专题介绍 EA 和 WebEA 的项目管理功能:
1. 需求跟踪
2. 工作任务分配
3. 进度跟踪
4. 变更管理
5. 质量管理
6. 问题管理
7. 跨项目工作台
1. 需求跟踪:
在 WebEA 中可以支持 4 种需求跟踪视图:
1) 跟踪图:可以浏览需求 - 设计 - 实现 - 测试之间的跟踪关系图。
2) 脉络图:可以基于跟踪关系图生成树形脉络图,具有更好的容纳力和扩展能力。
3) 跟踪表:可以以列表的形式描述多级跟踪关系,具有更严谨的管理形式。
4) 跟踪矩阵:以行列的方式描述 2 种类型的需求 - 设计 - 实现 - 测试之间的跟踪关系。
2. 工作任务分配
可以通过建模的方式进行工作任务分配:
首先建模角色承担的职责模型
然后建立人员和角色的映射模型
然后基于需求模型为人员分配工作任务
最后确定人员的工作任务模型
3. 进度跟踪
在 WebEA 中同时支持 2 种需求管理模式:
1)基于需求的项目管理:基于需求制定计划、跟踪进度。
2)基于任务的项目管理:基于任务制定计划、跟踪进度。
对基于需求的进度跟踪,提供 2 种跟踪模式:
时间进度跟踪:每个工作对象(需求、设计、实现、测试)都可以制定时间计划,并提供甘特图跟踪进度。
状态跟踪:每个工作对象(需求、设计、实现、测试)都提供状态配置,可以自定义不同的状态路径,然后对每个工作对象设置状态,跟踪进度。
4. 质量管理
对工作对象(需求、设计、实现、测试)提供质量管理功能:
为不同的工作对象设置不同的评审指标,
然后针对其进行质量评审,记录相关的问题和结论。
5. 变更管理
支持基于模型的变更管理,可以为需求对象关联相关的变更对象,然后提供多种变更浏览视图:
从需求看相关的变更:便于需求的跟踪。
从变更看相关的来源:便于变更的影响分析。
所有变更的集成列表:便于变更的处理与跟踪。
6. 问题管理
基于模型的问题管理,可以在模型元素上提交问题,然后提供提供多种浏览视图:
从需求看相关的问题:便于需求的跟踪。
从问题看相关的来源:便于问题的影响分析。
所有问题的集成列表:便于问题的处理与跟踪。
7. 跨项目的工作台
一个人常常参与不同的项目,所以还提供了一个人的工作台,可以查看这个人负责的所有项目的相关的需求、设计、实现、测试、变更、 Bug 、问题、任务。
操作演示
基于模型的项目管理-原理部分
基于模型的项目管理-操作部分
后记
希望您读了此文后有所受益.
如果您有经验乐于分享,欢迎投稿给我们,如果您对我们的培训、咨询和工具感兴趣,欢迎了解:
建模工具: EA
MBSE 平台: iSpace
模型 web 浏览工具: WebEA
课程: 基于SysML和EA进行系统设计与建模
课程: 基于UML和EA进行系统分析设计
咨询方案: MBSE( 基于模型的系统工程 )
咨询方案: 基于 UML 的模型驱动的开发
所有建模有关的课程: http://www.modeler.org.cn/course/index.asp
咨询方案: 基于模型的工程管理
如果您希望了解更多信息:
作者简介:
俎涛,火龙果软件工程创始人, 2001 年创立了火龙果软件工程, 2004 年创立了 IBM Rational 用户组. 1998 年,曾作为骨干参与国家重点研究课题《面向特定领域基于组件的软件复用》,有幸比较深入的学习和使用的 UML 进行领域建模、提炼可复用组件和架构.在后来的研发项目中,一直采用模型进行分析设计,积累了一些心得和经验.在以往的经历中,最大的感触是汇聚了很多精英人才的软件工程和系统工程领域居然几十年都是一种凌乱迷蒙的状态,从自己的经历所得,觉得清晰的模型,才是拨开工程迷雾的关键所在,所以不断研究和应用各种建模技术,并从自己的工程实践中提炼经验,形成对于自己可持续的方法论,例如《 Nature Model Language- 自然建模语言》《基于模型的三维研发管理》《 iProcess 过程改进方法》《基于模型的需求管理》《模型驱动的架构设计》《基于模型的质量管理》《基于模型的人员能力管理》,目前正在作为产品经理和架构师,进行 MBSE (基于模型的系统工程)平台的研发,希望建立要给基于模型的工程解决方案,后续会不断写些文章,希望能给同行一些借鉴. |
|